Xojo Changelog

What's new in Xojo 2024 Release 1

Mar 27, 2024
  • Highlights:
  • Building for Linux is now included in the free IDE
  • Lite licenses can now save in Version Control format
  • Popovers for iOS, Desktop, and Web projects
  • Creating / scanning Barcodes for macOS, Windows and iOS projects
  • SQLite updated to 3.45.1
  • Updated iOS SDK to 17.2
  • Zip now includes standard password support
  • Font and Font Size can now be set independently for the debugger
  • Plugins can now include external shared library dependencies
  • IDE:
  • New Features:
  • Added PasswordField to the Library on iOS and Android, so it is consistent with Desktop and Web. (74821)
  • Deprecated interfaces are no longer listed in the Interfaces dialog list, unless already implemented. (70522)
  • Added a new Preference so the user can set the Font / Font Size used by the Debugger panel. (75103)
  • Removed various unused iOS related resources from the Windows/Linux IDE. (44669)
  • Resolved Issues
  • Help text area background color properly updates when changing Dark/Light mode. (75932)
  • Duplicating a GroupBox on a TabPanel now properly duplicates its child controls. (75821)
  • Allow controls on a panel of TabPanel/PagePanel to be copied and then pasted onto a different panel, instead of being copied onto the same panel they were copied from. (75751)
  • Now it is possible to set the name of a control instance to the same name of a class created in the project. (75726)
  • Prevent an IllegalCastException that could occur in some situations when copying a database project item to another project. (75703)
  • Debugger variable listbox columns can no longer be resized to 0 width. (54033)
  • Added a new check when adding new enum items, so they can't start with a number or sign, or contain non alphanumeric characters when the previous rules are meet. (74849)
  • Prevent code block selection from changing in some situations when expanding/collapsing the block. (67693)
  • Avoid an OutOfBoundsException that could occur when adding blocks to existing code. (75596)
  • Unified ColorGroup editor in the Inspector Panel for iOS projects, so it is the same used in Desktop / Web projects. (65922)
  • The code editor autocomplete no longer mistakenly colors object property/method names that start with REM. (75468)
  • Brought back the limit to display only last 1500 messages in the Messages Panel. Also added an option in the Messages Panel to save the full list of messages to a file, not just the last 1500 ones. (75423)
  • ProjectConsole, ProjectDesktop, ProjectWeb, ProjectiOS methods for use with Code Asssistants now work properly. Added ProjectAndroid and ProjectMobile now returns True for iOS or Android. (74950)
  • To better match standard macOS behavior, on Ventura and later the Settings window title bar text now reflects the name of the setting group that is selected. (72711)
  • Fixed a NilObjectException when trying to paste other content than a picture from the Clipboard in the Icon Editor. (75262)
  • Avoid an OutOfBoundsException when double-clicking in an empty area of the Inspector Behavior property list. (68586)
  • Avoid an OutOfBoundsException that could possibly occur when changing signatures of overloaded methods. (67458)
  • Fixed an OutOfBoundsException that could occur when processing doc entries for some properties on nested modules. (68826)
  • Fixed a OutOfBoundsException that could possibly occur when dragging code in the code editor. (71672)
  • Fixed a possible exception that could occur during IDE searching with Match Case selected. (74582)
  • Fixed an OutOfBoundsException that could possibly occur when reordering Structure fields. (75114)
  • Debug runs now always use Default optimization level (aka no optimization). This prevents odd debugging behavior. The Optimization Level setting will now only be used when Building. (75212)
  • Fixed an OutOfBoundsException that could occur when typing (or pasting) unusual text into the Constant Editor name field. (74660)
  • Reduced the time it takes to duplicate controls in a large control set. (66961)
  • Avoid a NilObjectException that could occur when stopping the debug run of an app while things are still starting up. (71679)
  • Attempt to avoid a NilObjectException that could occur when adding a control from the Library to a layout. (75097)
  • Avoid a NilObjectException that could occur when there is a startup/connection error when launching an iOS app. (70514)
  • Attempt to avoid a NilObjectException that could occur when drawing resize handles in the layout editor. (74786)
  • Attempt to avoid a NilObjectException that could occur when adding an event handler. (74801)
  • The contrast has been increased in the Add item icon from the Toolbar editor in the IDE, so it doesn't look like disabled. (75150)
  • Fixed a possible exception that could occur when the IDE (or a project window) is closed while debugging. (71602)
  • Fixed an issue where some changes made to a control, for Web projects, did not get saved properly. (75030)
  • We now clear out all the Plugin cache if just one of them has changed, since this one change may also affect other related Plugins too. (75158)
  • Prevent NilObjectExceptions from occurring in certain situations where the Navigator tries to display an item that does not exist. (72379)
  • Attempt to fix an exception that could sometimes occur when shutting down the IDE while debugging. (74758)
  • Attempt to fix an unreproducible exception that occurs for some when switching to show a layout editor. (74185)
  • In the Layout Editor, when dragging or resizing controls these keyboard keys are now ignored: Enter/Return, Tab, arrows. Previously these were processed leading to odd behavior and the occasional exception (particularly with pressing tab). (75159)
  • Fixed a NilObjectException that could occur when entering an invalid Xojo Cloud app name. (66929)
  • Prevent a desktop menu bar from being dragged to a non-desktop project. Prevent a Color Group from being dragged to an Android project. (75016)
  • Autocomplete no longer shows Delegate methods that are marked as Hidden. (74797)
  • The Code Editor doesn't display cropped the last line of a long method when the code is displayed while debugging. (74942)
  • Debugger no longer crashes when viewing the contents of an object that is going out of scope. (54447)
  • Android: Code signing an Android app on Windows for the Google Play Store is now working again. (75884)
  • Android: Debugger is now better able to display information about some end-user classes. (75374)
  • Android: Android Debug Device list no longer shows a useless INFO entry when newer versions of Android Studio are installed. (75799)
  • Android: Fixed regression on iOS projects that was impedding to set the super of a ContainerControl to another ContainerControl class. (75723)
  • Android: Fixed an issue with resizing Android container controls that could cause an IDE exception. (75624)
  • Android: MobileScreen in the Android Library now has a contextual menu to create a subclass. (75579)
  • Android: Stopping the Android debugger while it is in the processing of starting up no longer causes an IDE exception. (75440)
  • Android: Dragging the resize handles of a MobileScreen (which does not change the screen's size) no longer adjusts the size of controls that are locked to the screen's edges. (74962)
  • Android: Fixed an exception that could occur with some Android compilation errors when building a standalone app. (75125)
  • Android: Now display a better compile error if the Java version needed for Android is incorrect. Clearing the cache (from Preferences) also clears additional Android cache folders which can sometimes cause odd compile errors when they get stale. (75146)
  • Android: Non-UI controls added to a screen now display a standard compile error if there is no public constructor. (74926)
  • Android: Prevent pasting of desktop controls, web controls and unsupported controllers onto a MobileScreen. (75017)
  • Android: Attempt to avoid a possible NilObjectException that might occur when terminating an Android debug session as it is starting up. (75270)
  • Android: iOS launch image can no longer be pasted into an Android project. (75011)
  • Android: An iOS Icon project item can no longer be pasted into an Android project. (75012)
  • Android: iOS Notification Center can no longer be pasted into an Android project. (75009)
  • Android: An iOS Layout can no longer be pasted into an Android project. (75010)
  • Android: Desktop toolbars can no longer be pasted into Android projects. (75014)
  • Android: A desktop report project item can no longer be pasted into an Android project. (75015)
  • Android: Worker project items can no longer be pasted into Android projects. (75013)
  • Android: Debugger tracks variable scope better and no longer attempts to show a variable value that is out of scope, which would sometimes result in the wrong value being shown or the debugger crashing. (75108)
  • Android: The running app no longer crashes when the debugger tries to display a value for a computed property that has raised an exception. (74987)
  • iOS: Now the LayoutEditor displays the text as hidden for MobileTextField on iOS when the Password property is set to True. (75743)
  • iOS: Within the Library on iOS, creating a new subclass using the contextual menu from the Screen icon now sets the correct superclass of MobileScreen. (75582)
  • iOS: Fixed misspelled TextArea/TextField.SelectionLength on iOS. (75217)
  • Linux: Prevent a NilObjectException that could sometimes occur when the layout editor is resized. (74369)
  • macOS: Fixed DesktopButton with Round style being displayed clipped on macOS (layout and runtime). (75327)
  • macOS: Improved the response to edit the entries of the Segmented and TabPanel controls in the Inspector Panel via double-clicking the listbox cells in their respective Editors. (75417)
  • macOS: Fixed the Inspector tip crashing the IDE when it is shown under macOS Sonoma 14.3. (75351)
  • Web: For Web projects, changing the Super of a control now properly updates the inspector to reflect this new change. (75787)
  • Web: Fixed an issue causing Unparented controls to be assigned to the closest WebView, when re-loading the project. (60161)
  • Web: Fixed an IDE issue happening when saving and loading Web projects with nested controls. Some properties weren't working after reloading, affecting also these controls at runtime. (75719)
  • Web: Fixed a compilation issue happening when using Localized String Constants in the WebRadioGroup.InitialValue property. (75174)
  • Web: Fixed an IDE issue causing an unneeded high CPU usage, when working on Web Projects. (75216)
  • Web: Fixed a bug when previewing some type of buttons in the IDE, when the Enabled property was set to False. (74418)
  • Web: The WebButton preview in the IDE will display an ellipsis, if the button is too narrow, to match what will happen at runtime. (70812)
  • Windows: Remote Debugger CheckBox label is now readable when in Dark Mode. (75761)
  • Windows: Windows IDE: the label heading on the Copy Files Build step editor is now readable in dark mode. (67728)
  • Windows: Fixed an unhandled NilObjectException that was raised in Document.GetScratchDir (75590)
  • Windows: Reduced the amount of file access that occurred when moving controls and typing in the code editor. This should help improve the overall experience while performing these tasks. (70571)
  • Windows: IDE no longer crashes depending on what controls are on the layout and when tabs/windows are closed. (74049)
  • Windows: Adding a double ampersand (i.e. &&) to a multiline label now renders correctly to a single ampersand in the layout editor. This also affects calls to Label.DrawInto (75028)
  • Framework:
  • New Features:
  • Deprecated all the numeric (Double, Integer, etc.) FromText functions in favor of FromString. (75458)
  • TextShape: deprecated Value in favor of Text. (74594)
  • Added a wait for silence time to Barcode scan on iOS, so code reads are not sent in a row when scanning the same code. (75613)
  • Added DatasetLastIndex and LabelLastIndex properties to Desktop/MobileChart. (75550)
  • Added Datasets and Labels methods to Desktop / Mobile Chart to iterate over all the Datasets and Labels of a Desktop / Mobile Chart instance. (75537)
  • Reduce PDF file size when the same File Attached annotation is used more than once in the same document. (75475)
  • Updated SQLite library to 3.45.1. (75479)
  • EncodeBase64 now returns a string whose text encoding is set to UTF8 instead of ASCII. (74883)
  • FolderItem.Zip/Unzip now supports the standard (ZipCrypto/PKWARE) Zip/Unzip password encryption. (74399)
  • Desktop: Added RemoveControl(control As DesktopUIControl/DesktopContainer) to DesktopWindow and DesktopContainer. (69462)
  • Desktop: Removed unused DesktopMoviePlayer.PlayerType property. (68913)
  • Every OS: Added FolderItem.RemoveFolderAndContents. Unlike FolderItem.Remove, this function will recursively remove the folder and all of its contents. (75388)
  • Every OS: Added FolderItem.Extension property to get/set the file extension of a file. (75378)
  • Every OS: Added String.ToBoolean extension method. This will return True if the string contains 1 or True and False otherwise. (75377)
  • iOS: Constraints added automatically to a MobileContainer shown as Popover. (75807)
  • iOS: Overloaded ShowPopover method on iOS so it accepts a MobileToolbarButton as its parent control. (75573)
  • iOS: Fix in MobileChart to deal with NaN values in Datasets (Line, Bar, Scattered, Bubble). (73141)
  • iOS: Added Barcode class to iOS. (74788)
  • macOS: Now the user can mirror the video stream of the Barcode scan UI on macOS. (75639)
  • macOS: Added Barcode class support to macOS (creating QR / Bar128 codes, and scanning images). (75225)
  • Web: Added WebMenuItem.PopUp to display a contextual menu programmatically, like in DesktopMenuItem. (75509)
  • Web: Added WebChart.Datasets and WebChart.Labels iterators, and the WebChart.LabelCount read-only computed property. (75539)
  • Web: Added RemoveControl(control As WebUIControl) to WebView. (69463)
  • Web: WebResponse will attempt to use a memory buffer now, if possible, instead of temporary files. (75208)
  • Web: Added WebContainer.ShowPopover, to display custom popovers. (18355)
  • Resolved Issues
  • The deprecated Variant.TypeDate and TypeText no longer shows up in auto-complete. (75862)
  • Assigning a DateTime object, to a subclass of a DateTime, now correctly preserves the nanoseconds. (73474)
  • Fixed DesktopChart in Line mode leaving a blank area to the right. (73774)
  • MySQLCommunityServer: ExecuteSQL/SelectSQL now returns a more useful error code on failure (instead of always -1), especially if the connection to the database server was lost. (73351)
  • ODBCDatabase.BeginTransaction no longer prevents table creation. (75156)
  • Fixed getting TextHeight with additional WrapWidth paramenter in PDFDocument graphic context. (75136)
  • Android: MobileContainer now resizes properly when locked to bottom of screen. (75452)
  • Android: Column names accessed on RowSet or DatabaseRow are now case-insensitive. (75709)
  • Android: TabPanel contents are now shown for tab panels that are on containers. (75176)
  • Android: Prevent an exception when attempting to display large images in MobileImageViewer. (75223)
  • Android: MobileImagePicker.Show now better matches iOS. Removed unused Constructor from autocomplete. Note that the Show parameter is not actually used on Android. (75299)
  • Android: Fixed a runtime exception that could sometimes occur when an Object variable becomes Nil. (75574)
  • Android: Fixed a startup crash that could occur when using System.DebugLog in the constructor of a container. (75580)
  • Android: Introspection no longer reports doubled method and properties on MobileScreens. (75437)
  • Android: MobileScreen.Size and ContentSize now more accurately exclude the status bar size. (75205)
  • Android: Introspection.TypeInfo.BaseType property now reports correct values for mobile classes and controls. (75058)
  • Android: Force MobileHTMLViewer to ask for focus when page loads to avoid possible issues with software keyboard not allowing input on some web sites. (75076)
  • Android: MobileTabPanel animations now run after the PanelChanged event has completed. (75204)
  • Android: Introspection.PropertyInfo.Value now properly uses the base parameter. (75424)
  • Android: MobileLocation requires Google Play Services (GPS). Added more checks to ensure that location access via GPS will work. Failure results in the state being set to AuthorizationStates.Restricted. (75081)
  • Android: Fixed an issue with calling certain Methods that have the same name as a Property on a class. (75320)
  • Android: Added MemoryBlock.Operator_Add to match other platforms. (74955)
  • Android: When URLConnection.AllowCertificateValidation is False, also skip checking host verification to match how other platforms work. (75344)
  • Android: Attempting to create a New MobileToolbar now displays a standard compile error instead of an internal Android compile error. (75362)
  • Android: Fixed an issue when using a For Each loop with certain ParamArray parameters. (75123)
  • Android: To match behavior on other platforms, Variant math operations using Nil no longer cause an Android compile error and instead raise NilObjectExceptions at runtime. (74808)
  • Android: TypeInfo.Name and FullName are now correct for MobileScreens. (75338)
  • Android: Multi-dimensional arrays now return the correct value with VarType. (74429)
  • Android: VarType on a currency array now returns the correct value. (75335)
  • Android: Fixed an issue where DatabaseColumn.NativeValue/BlobValue could have the wrong number of bytes. (74989)
  • Android: JSONItem.IndentSpacing now defaults to 2. (75298)
  • Android: With a DatabaseRow that is not connected to a RowSet, column value changes are now properly retained and retrieved. (74994)
  • Android: DatabaseRow.ColumnCount and LastColumnIndex are now correct for rows that are created manually. (74991)
  • Android: RowSet.ColumnType now returns 5 for SQLite TEXT/STRING/VARCHAR columns to match behavior on other platforms. (74995)
  • Android: BinaryStream.ReadCurrency now turns correct currency value. (75026)
  • Android: BinaryStream.ReadPString method no longer causes a compile error, but it does raise an AndroidException at runtime since PString is not a supported type. (75023)
  • Android: BinaryStream.BytePosition is now properly updated when reading data. (75024)
  • Android: BinaryStream.ReadUInt8 now returns the correct value. (75025)
  • Android: TextInputStream.BytePosition is now updated after calling ReadAll. (75027)
  • Android: MobileApplication.Actived and Deactivating events now work on Android. (75317)
  • Android: To match behavior on other platforms, added MemoryBlock.Long, Short and UShort methods. (74956)
  • Android: To match behavior on other platforms, adding two Nil values to a Variant now raises a NilObjectException. (75036)
  • Android: FolderItem.Locked return value is no longer reversed. (75068)
  • Android: Screen startup event order is more consistent across devices. (75227)
  • Android: Calling SQLiteDatabase.CreateDatabase with a file in an invalid location now properly raises a DatabaseException. (75201)
  • Android: Removing controls from MobileContainers now works properly. (75257)
  • Android: To match desktop behavior, added MobileTabPanel.AddPanelAt() method. (75179)
  • Android: To match other platforms, calling SQLiteDatabase.ExecuteSQL with an empty SQL string now does nothing instead of raising a DatabaseException. (75202)
  • Android: Added MobileContainer.Objects iterator. (75235)
  • Android: Encodings.DOSGreek1/MacDevanagari/MacEthiopic/MacExtArabic/MacGaelic/MacGeorgian/MacGujarati/MacGurmukhi no longer cause compile errors. (75084)
  • Android: Locale.CurrencySymbol has been updated to better match what is returned on other platforms. (75069)
  • Android: GenerateJSON now handles dictionaries with nested arrays properly. (75144)
  • Android: Fixed a compile error when using Point.DistanceTo. (75031)
  • Android: Fixed a compile error when using Encodings.MacDingbats. (75093)
  • Android: Fixed a compile error when using Encodings.MacRomanian property. (75095)
  • Android: Exceptions that occur within the framework now generate a more useful stack trace. Also fixed an unhandled internal SQL exception that could occur when trying to commit without a transaction. (75126)
  • Android: Internal RowSet properties no longer are shown in the Xojo debugger. (75106)
  • Android: URLConnection.SendSync() now works better with binary data. Send() now handles some text data better. (75082)
  • Android: Fixed a runtime exception that would occur when trying to get the value of a shared property. (75019)
  • Desktop: DesktopMenuItems now correctly honors the AutoEnabled state, especially when set to False. (75180)
  • Desktop: To match docs, DesktopListBox.CellTextAt() now accepts -1 to refer to an entire row, column or both. (72152)
  • Desktop: DesktopListBox: dragging an already selected row that contains an TextField/CheckBox CellType now works, instead of entering editable mode. (74882)
  • Desktop: Tabbing into a DesktopTextField that has a format applied to the Format property has the same behavior than when Format is empty. (74951)
  • Every OS: DateTime.FromString no longer throws an InvalidArgumentException when the date (without a time specified) falls within the DST transition period. (71555)
  • Every OS: The Pressed event has been renamed to ValueChanged on DesktopDisclosure to keep consistency with other controls. You will need to manually move your event code to the new event. (67597)
  • Every OS: DesktopContainer: no longer raises a Resized event before the Opening event is fired. Note: this change does not affect ContainerControls. (55578)
  • Every OS: Updated Integer ToHex/ToBinary/ToOctal to return String instead of Text. (65120)
  • iOS: Fixed an odd behavior taking place under certain circumstances when executing JavaScript on an HTMLViewer instance on iOS. (75837)
  • iOS: The iOS Layout honors the Dark Mode / Light Mode set on macOS, so the ColorGroups assigned to the iOS controls are correctly displayed in the Layout Editor. (75384)
  • Linux: Playing sounds no longer crashes on newer versions of Linux (like Ubuntu 23.10), or Raspberry Pi5. (75775)
  • Linux: MoviePlayer no longer crashes on newer versions of Linux (like Ubuntu 23.10 or Raspberry Pi5). However, Wayland is not supported so you will need to disable Wayland to play movies using our MoviePlayer. As an alternative you may be able to play movies using our HTMLViewer instead. (75722)
  • Linux: Rotated StringShape, on a Canvas/Windows Graphics, no longer draws at the wrong position. (75651)
  • Linux: Threads no longer eat up 100% CPU, unless the thread Priority is set to 9 or higher. (74976)
  • Linux: The default System font no longer looks condensed on Ubuntu 23.x (75040)
  • Linux: MySQLCommunityServer can now connect to servers that require versions of TLS that is greater than 1.0 (69197)
  • macOS: macOS/iOS: String functions (Left/Mid/Right/etc.) no longer uses the system encoding to do its calculations when the String.Encoding is Nil. (54638)
  • macOS: Calling DesktopWindow.Minimize no longer raises the Minimized event twice. (56933)
  • macOS: For exceptions that are triggered from a Plugin (like RegEx), the IDE now properly shows the function call stack on M1 Macs. (67923)
  • macOS: Assigning new Text to a DesktopTextField now maintains the current selection on Windows/Linux. This now mimics the same behavior as macOS. (74954)
  • Web: Fixed some reported memory leaks in the Web Framework. (75604)
  • Web: Fixed a WebView.Controls issue causing this iterator to return also non-visual WebSDK controls. (75768)
  • Web: Fixed some WebView issues causing Controls, ControlAt, ControlCount and LastControlIndex to ignore controls inside other views, like tab panels or rectangles. (75737)
  • Web: Fixed a WebFileUploader issue preventing the Caption property to be updated at runtime. (75664)
  • Web: Fixed a WebMenuItem issue causing empty row height to be much smaller than others. (75641)
  • Web: Fixed a WebFileUploader issue preventing the end user to drop a file into the browser control, at runtime. (75297)
  • Web: The Web framework won't cut the connection too early anymore, when the user is uploading a file with WebFileUploader. (75447)
  • Web: Fixed a WebPopupMenu issue that was causing the focus to jump into another dropdown menu, when navigating using the keyboard. (75467)
  • Web: The Web SDK won't discard duplicated events anymore, when using triggerServerEvent method. (75466)
  • Web: When navigating the layout using the keyboard, hidden WebViews won't receive the focus anymore. (75455)
  • Web: Fixed a WebTimer issue causing the control to ignore its Enabled property from the inspector. (75229)
  • Web: The web framework will prevent displaying multiple WebMessageBox above each other, when quickly pressing Enter/Esc key repeatedly. (64278)
  • Web: Fixed an issue causing some Web SDK controls to not appear inside WebTabPanel or WebPagePanel views. (75389)
  • Web: WebPopupMenu will display the focus ring now, when it receives the focus. (75380)
  • Web: Fixed a WebStyle bug causing AddTransition with a delay to use a wrong value. (75372)
  • Web: Calling SetFocus on a WebControl will wait the control to be rendered, if needed, before trying to set the focus. (75358)
  • Web: WebSearchField will raise TextChanged and Pressed events when the user clears the field with the clear button. (75316)
  • Web: Fixed a few tab engine issues that wasn't detecting the focused control, in some kind of Web SDK controls. (75263)
  • Web: Setting WebListBox.SelectedRowColor at runtime won't make the whole control to refresh, it will just set the new color. (75313)
  • Web: Fixed a WebFile issue that was raising a NilObjectException, when trying to get the underlying file from an unknown Session. (75314)
  • Web: Fixed an issue causing WebMapViewer.LocationSelected to pass a wrong WebMapLocation object. (75305)
  • Web: Fixed an issue causing the web framework to unnecessary keep in memory a temporary file path for 2 hours in some places, like in the WebApplication.HandleURL event. (75302)
  • Web: WebCanvas inside a WebTabPanel will be rendered faster now, when switching between tabs. (71288)
  • Web: Fixed an issue that could cause WebResponse.Write to raise a NilObjectException in some situations. (75189)
  • Web: Fixed an issue causing WebView children, like a WebDialog, to raise the Shown event before it was actually visible. (74412)
  • Web: Fixed the WebRequest.MIMEType issue where the value was always returning text/html, instead of the actual value. (69842)
  • Web: Fixed a WebListBoxImageRenderer issue that was causing HiDPI images to be shown larger than it should. (74937)
  • Web: WebLink.TextAlignment will also be applied when the WebLink button style is used. (71183)
  • Web: Fixed a WebView issue causing subclassed items to position their controls based on their super class dimensions. (73006)
  • Web: Fixed a WebCheckbox vertical alignment issue, causing the checkbox to appear far above than we want, when embedding the control at runtime. (74877)
  • Web: WebContextualMenu arrow indicator for submenus are vertically centered now. (69215)
  • Web: Fixed a WebSegmentedButton issue causing Enabled to not be applied at runtime. The whole control or individual segments can be disabled now. (75089)
  • Web: WebPopupMenu can now make use of localized constants when using the Initial Value property. (71971)
  • Web: Fixed a WebMessageDialog issue causing the event handlers to not be properly configured when being created with code at runtime. (75060)
  • Web: Modified the WebMessageDialog look and feel to match the current Bootstrap 5 guidelines. (69575)
  • Web: WebMapViewer can be disabled now, allowing the developer to disable user interactions on the map. (75006)
  • Web: Fixed a WebImageViewer issue causing updating the URL parameter to be ignored when the Image property wasn't empty. (74747)
  • Web: Fixed an issue causing WebUIControl to not be able to update the original Tooltip at runtime. (74748)
  • Web: Fixed an issue causing every new web app session to be leaking some memory. (74998)
  • Windows: Graphics.DrawText with Outline enabled, now properly outlines the text using fonts that are weighted (i.e. the boldness level) more heavily, like Arial Black. (73748)
  • Windows: Iterating through the SerialDevice list no longer causes the serial ports to be temporarily open. (75740)
  • Windows: Prevented multiple instances of a Popover window to show before one is completely closed. (75741)
  • Windows: Windows/Linux: a RuntimeException is now raised (instead of an assertion), if the Resources folder cannot be found while attempting to load up all the picture resources that were added to your project. (73630)
  • Windows: The DesktopUIControl.ConstructContextualMenu event no longer incorrectly fires a second time immediately after the first on various controls, like the DesktopTextArea, DesktopPushButton, etc. (75449)
  • Windows: DesktopChart.DrawInto no longer throws an UnsupportedOperationException on Windows/Linux. (75382)
  • Windows: A TextArea, that's hidden behind a non-visible page/tab of a PagePanel/TabPanel, no longer reveals itself when retrieving the StyledText.RTFData (75405)
  • Windows: ODBCDatabase: storing and retrieving large BLOB values now works properly instead of raising errors or being truncated. (75322)
  • Windows: Window is now resized/positioned correctly when entering fullscreen mode, instead of being offset at the top and leaving visible gaps near the bottom. (67168)
  • Windows: DesktopNotePlayer: the Drum Kit instrument now works correctly, instead of sounding like a piano. (16466)
  • Windows: DateTimePicker.DrawInto now renders the control instead of drawing nothing. (75213)
  • Windows: TabPanel.DrawInto no longer fails to draw all controls when a DisclosureTriangle exists on the current tab. (75210)
  • Windows: Implemented support for TabPanel in Dark Mode. (66629)
  • Windows: App no longer locks up when a modal dialog is displayed while a drag is in-progress. (62434)
  • Windows: Passing in an (X, Y) offset to DesktopWindow.DrawInto now offsets Canvas drawing correctly. (75003)
  • Compiler:
  • New Features:
  • Updated iOS SDK to 17.2. (75720)
  • Plugins: additional library dependencies can now be included along with your plugin shared library. This allows you to include external shared library dependencies without having to build it into your main library. Refer to the Plugin Package Format in the Plugins SDK documentation for more details. (75143)
  • Resolved Issues:
  • The deprecated Variant.DateValue no longer shows up in auto-complete. (75101)
  • The deprecated Variant.TextValue no longer shows up in auto-complete. (75102)
  • Windows app name that contains an ampersand can now be built/run properly, instead of the app not being able to launch at all. (67743)
  • The DateTimePicker plugin is no longer included for all built apps, unless of course it's being used. (75589)
  • Compiler now raises an error when it encounters enumerations that share the same name, but with different types, while rendering Windows/Controls for Desktop apps, instead of running into failed assertions at runtime. (56486)
  • A compile error is now raised (instead of an assertion) if we were unable to create a build folder during the compilation process. (75373)
  • Calling Array.Pop, on an array of Structures, no longer returns the wrong data or throws an OutOfBoundsExceptions incorrectly for ARM64 builds. (75286)
  • Assigning an Array of Structures (using the Array keyword) now populates the Array correctly for ARM64 builds. (68517)
  • Android: Fixed a compile error that could occur with some expressions within a single-line If. (75858)
  • Android: Fixed a compile error that can occur when overriding a method from a superclass that is not the immediate superclass. (75840)
  • Android: Clarified the Android duplicate method overload compiler error message and fixed an issue where arrays where not being treated as separate types when checking for duplicate method overloads. (75804)
  • Android: Fixed an issue when using the Array function while casting the first value. (75789)
  • Android: Fixed a compilation issue where some methods named like operator overloads didn't match the expected signature. (75453)
  • Android: Fixed an issue where certain Kotlin declares could require an unnecessary extra parenthesis. (75439)
  • Android: Fixed an issue when assigning certain variables initialized with Global to other values. (75425)
  • Android: Fixed an issue when defining certain Constants while using Global. (75400)
  • Android: Fixed an issue with certain uses of Global with Constructors that have parameters passed in. (75399)
  • Android: Fixed an issue with certain Classes that have a ParamArray in their Constructor. (75386)
  • Android: Fixed an issue when calling a MobileScreen Constructor from within that MobileScreen, and fixed an issue when accessing certain Class Constants from outside the Class. (75331)
  • Android: Fixed an issue when using an empty enumeration as a method parameter type. (75198)
  • Android: Fixed an issue with method parameters that use Global.Variant/Object. (75197)
  • Android: Fixed an issue when calling certain methods with a Variant/Object ParamArray type. (75196)
  • Android: Fixed an issue when using other Array methods on a ParamArray parameter. (75194)
  • Android: Fixed an issue when using certain Array methods on a ParamArray parameter. (75192)
  • Android: Fixed an issue when using certain expressions when defining constant values in code. (75155)
  • Android: Fixed an issue with using class constants from a shared method. (75339)
  • Android: Fixed certain uses of Object arrays when used as parameters. (75140)
  • Android: Fixed an issue when comparing certain String properties with explicit Variant.StringValue calls. (75127)
  • Android: Fixed an issue with using some Operator overload names in a module, as well as using App as a name of a parameter. (75066)
  • Android: Project Item Number Constants no longer cause a compile error if they don't have a specified default value. (75352)
  • Android: Fixed an issue when declaring certain Arrays with &b/&h/&o literals. (75048)
  • Android: Fixed an issue when declaring a single dimension array after a multi dimensional array in the same line. (75046)
  • Android: Fixed an issue when using Me/Self as a value during certain variable initialization. (74887)
  • Android: Give a clearer error message if you try to use Object with GetTypeInfo. (75021)
  • Android: Fixed an issue with certain multiple uses of IsA inside of a single If expression. (75018)
  • Android: Fixed an issue when using Raise with an Event that returns an exception. (74135)
  • Android: Prevent duplicate compile errors from being shown. (75145)
  • Android: Display a friendlier error message when there is an unknown/unresolved reference, which can happen with object Declares. (75120)
  • Android: Verify that the first part of the bundle ID is not the same as the App name as that can cause an Android compile error. (75238)
  • Android: Variables used inside or with certain for loops are now visible in the debugger. (73394)
  • Web: Fixed a WebListboxCellRenderer bug causing the project to refuse to compile when creating subclasses inside a Module. (75356)
  • Documentation:
  • Resolved Issues:
  • The Use WinUI (experimental) build option has been documented. (75277)
  • The code samples on the various Object2D subclass pages have been made more clear. (75330)
  • Added a note to Mutex.Constructor to make it clear that the name passed will be used to create a file and therefore must be a valid filename for the host OS. (75368)
  • MobileApplication.CurrentScreen is now documented. (75763)
  • Examples:
  • Resolved Issues:
  • Passing an empty Value to Barcode.Image now raises an InvalidArgumentException instead of crashing on Windows. (75876)

New in Xojo 2023 Release 4 (Dec 12, 2023)

  • Highlights:
  • A more responsive IDE
  • Reduced build times
  • Debug and built apps run faster
  • Xojo web framework optimized for speed
  • Plugins load more quickly
  • Android Barcode Scanner Class
  • Example projects now feature descriptions and new search functionality
  • Statistics:
  • Bugs fixed: 200
  • Features added: 38
  • Documentation changes: 12
  • Examples changed: 1
  • IDE:
  • New Features:
  • Added 'Path' entry to the information displayed when an Example Project is selected in the 'Choose a Project' panel. (74471)
  • Increased the Debugger by default font size to 11 points. (74646)
  • Now the IDE's Messages panel only displays the items matching the text typed in the Search control for better clarity. (74434)
  • Changes to the IDE's Debugger panel so it uses the same font size set for the Code Editor; and accesing the String debugger panel double clicking on the value row. Also other have been made to the String Debugger panel, removing the Edit Tab because now it is possible to set a new value for the string directly in the Text Tab, plus reorganizing the controls under the Text tab for a better use of the available space. (74437)
  • Added AllowPopover property to the Inspector Panel on DesktopChart to unify with WebChart. (74231)
  • Web: Layout editor preview won't render dark mode anymore in Web Projects, if the Supports Dark Mode option is turned off. (74807)
  • Web: Reduced the compile time when building Web projects. (71544)
  • Windows: Windows/Linux IDE: the default shortcut key for the Edit->Delete menu is now Del instead of Ctrl+Bksp on Windows and Bksp on Linux. (70398)
  • Resolved Issues:
  • Plugin declared Delegates now have their compatibility flags setup properly. (74944)
  • For consistency, we no longer dim the layout editor when bringing up the XAML Chooser window since we're not editing the XAML content in place, only bringing up a dialog. (74823)
  • Changes to Plugins are now more accurately tracked so that our Plugin caches are cleared when they need to be. We also do a bit less caching when Plugins are loaded, with the side benefit being slightly faster Plugin loading times. (74726)
  • Fixed alignment of the Clear button in the Messages panel on macOS. (74769)
  • Code Editor Context Menu Go To scrolls the code editor to the matching line. (66260)
  • The Pragma reminder to implement interface methods no longer has an extra space and the #Pragma Error part honors the coding preference for Applies Standard Case. (74718)
  • Running a project remotely, by using the menu shortcut, no longer adds extraneous characters to the code editor. (74679)
  • Restored the ability to filter Window controls by name in the debugger. (74666)
  • We no longer include extraneous HTMLViewer resources when a Window, that contains an HTMLViewer, is not being used/referenced (i.e. when the linker has dead stripped the Window) for Windows/Linux builds. (74568)
  • The deprecated MSSQLServerDatabase plugin is no longer packaged in the Plugins folder. If your project still depends on this class, the plugin still exists in the Database Plugin Resources folder, found in the Extras folder. (74446)
  • Fixed an OutOfBoundException when adding an image to the IDE Navigator via drag & drop. (74602)
  • Debugger now displays generic Object variables again. (74548)
  • Selecting a recent search item in the IDE's Search Panel Recent Searchs menu offers the expected behavior, even if the user's preferences is set to Find/Filter Results appear After Pressing Enter or Return. (74532)
  • Avoid an OutOfBoundsException that can occur when pasting into the code editor when the paste buffer contains an empty string. (74504)
  • Fixed creating a new iOS project being marked as dirty. (74392)
  • Fixed: Minimum width set for the Tab Order Editor Window in the IDE. (74368)
  • Fixed loading user defined defaults for controls added to the IDE (74348)
  • Fixed Listbox Inspector Properties bleeding through Under Inspector Header in the IDE on macOS when DarkMode is enabled. (74252)
  • Fix so the Enumeration editor does numbering elements correctly. (74171)
  • Android: Fixed an Android app crash that would occur when viewing the App object in the debugger. (74816)
  • Android: On macOS when debugging with an Android emulator, bring the emulator to the front when resuming. (73517)
  • Android: Android apps no longer show DebugLog messages from prior app runs. (74661)
  • Android: Fixed an internal exception that could occur when calling Timer.CancelCallLater. (74378)
  • Android: If an app icon cannot be converted to PNG during the Run/Build process, an error message is now displayed. (74476)
  • Android: NewAndroidProject is now used with IDE Scripting to create an Android project. (74478)
  • Every OS: Removed duplicate database plugins found in the Database Plugin Resources folder. (74629)
  • macOS: Fixed an intermittent code-signing issue with macOS Sonoma and when iCloud Document+Desktop sync is turned on. (74601)
  • Web: Fixed some IDE issues causing web project controls to not be displayed properly in the layout editor. (68671)
  • Web: WebChart.HasLegend will be True by default now, like in Desktop projects. (74213)
  • Web: Removed WebHTMLViewer URL and HTML properties from the IDE inspector, as they no longer exists. (72076)
  • Windows: Copying from the Documentation window, using the short-cut key combination, no longer throws a ThreadAccessingUIException. (74638)
  • Windows: Forcibly ending a debug session for a Desktop app, that contains DesktopHTMLViewers, no longer leaves cefsubproc.exe background processes around. (74755)
  • Windows: Having a Separator control, along with a TabPanel, no longer causes the TabPanel to misdraw in the layout editor. (74609)
  • Windows: Unselected items in the Tray area are now more distinguishable in dark mode. (74229)
  • Windows: Windows dark mode menubar is no longer white if Windows 8.1 support is turned off. (74113)
  • Framework:
  • New Features:
  • String.IndexOf returns -1 instead of raising an OutOfBoundsException when the starting position is greater or equal than the string length. (74791)
  • The Variant.TypeDelegate constant is now documented. (74302)
  • CLong and String.ToInt64 no longer performs an additional string conversion to ASCII if the string is already in UTF-8. (68962)
  • Added new LinearGradientBrush and RadialGradientBrush constructors for convenience/simplify code. Note: these constructors will make a copy of the Point/Pair.- LinearGradientBrush.Constructor(startPoint As Point, endPoint As Point, stops() As Pair)- LinearGradientBrush.Constructor(startPoint As Point, endPoint As Point, ParamArray stops As Pair)- RadialGradientBrush.Constructor(startPoint As Point, endPoint As Point, startRadius As Double, endRadius As Double, stops() As Pair)- RadialGradientBrush.Constructor(startPoint As Point, endPoint As Point, startRadius As Double, endRadius As Double, ParamArray stops As Pair) (74521)
  • Added new PictureBrush constructor that accepts a Picture and optional PictureBrush.Modes as parameters: Constructor(image As Picture, mode As PictureBrush.Modes = PictureBrush.Modes.Default) (74510)
  • Android: Added System.DismissKeyboard() method. (74633)
  • Android: Can now use Ptr type to pass handles to Declares for Kotlin Library projects. (74562)
  • Android: Added an addition constructor to Font to allow it to load a font from a FolderItem. (74550)
  • Android: Added Barcode class (for Android) with StartScan() method and ScanCompleted, ScanCancelled and ScanFailed events. (71213)
  • Android: Added MobileHTMLViewer.Cancel() method. (74330)
  • Every OS: String.IsEmpty now checks the string byte count instead of calculating the actual String.Length before it returns. (74611)
  • Every OS: Improved stack overflow checking to minimize the amount of time it takes to check for a StackOverflowException every time a function is called. (63667)
  • iOS: Added the Pressed event handler to MobileMapViewer on iOS, so the user can add new LocationMap pins to it using a long press gesture. Also adding DistanceTo, LookupAddress, MoveTo and PointsOfInterest to MapLocation. (74055)
  • iOS: Implemented global functions Asc(), Bin(), CDbl(), Encoding(), Hex(), IsNumeric(), IsNull and Oct() so they are available also on iOS. (74441)
  • iOS: Added global Chr() method to iOS for consistency with other platforms. (74278)
  • iOS: Removed throwing an unnecessary exception from iOS Graphics when using DrawRoundRectangle / FillRoundRectangle and the CornerSize is equal or greater than the width / height of the rectangle. (74238)
  • macOS: Calling System.Ticks is now 20% faster on macOS/iOS. This also affects background tasks that are running. (74649)
  • macOS: Removed throwing an unnecessary exception from GraphicsPath on macOS when using AddRoundRectangle and the CornerSize is equal or greater than the width / height of the rectangle. (74274)
  • Web: Added an experimental opt-in feature for WebSession, Send Events In Batches, aiming to improve performance. (73570)
  • Web: Improved the web framework static asset cache control, to take advantage of browser's cache. (73982)
  • Web: Updated Bootstrap icon set to v1.11.1 for Web Projects. (74449)
  • Web: Improved WebListBox rendering performance. (74237)
  • Web: Added StackOverflowChecking Pragma to several framework methods to improve its performance. (71960)
  • Web: Added WebSegmentedButton.LastSegmentIndex as a ready-only property. (74124)
  • Web: Improved the way some controls are sending their events to the server, to avoid under-firing or over-firing them. (71381)
  • Windows: DesktopXAMLContainer: PointerEntered, PointerExited, PointerMoved, PointerPressed, and PointerReleased events can now be handled in the EventTriggered event. (74563)
  • Windows: DesktopHTMLViewer: updated to CEF build 118.0.5993.96. Note: this build no longer supports non-HiDPI aware apps. Enable the Supports Hi-DPI build option for best results. This build also removes the swiftshader folder. (74522)
  • Resolved Issues:
  • DatabaseRow: repeatedly assigning a value to the same Column name no longer leaks memory. (74733)
  • Restored some of the lost behavior of JSONItem (since 2021r1). DecimalFormat now works like it used to (instead of being ignored), and doubles are no longer formatted in the user's locale. (74416)
  • PictureBrush offers now the same behavior in PDFDocument than on Desktop when its mode is set to Default. (74517)
  • String.IndexOf will raise an OutOfBoundsException if the received startPosition parameter is equal or greater than the text lenght. (74346)
  • Getting the Line/Node from an XmlException no longer crashes. (74184)
  • The number ToString functions, that pass in Locale.Raw, now matches the same behavior as calling ToString without specifying a Locale. (72807)
  • Android: Added Variant.TypeWindowPtr for platform compatibility. It will never match anything on Android, of course. (74677)
  • Android: Fixed a crash that would occur when viewing TypeInfo properties in the debugger. (75020)
  • Android: Fixed an internal exception that could occur when changing a container's Visible property during its Opening event. (73793)
  • Android: Improved URLConnection error handling. (74932)
  • Android: AndroidMobileTable.SelectedRowText now returns if there are no rows or no selected row instead of raising an OutOfBoundsException. (74949)
  • Android: Accessing HTTPStatusCode before URLConnection has initialized no longer causes the app to crash with an internal exception. (74886)
  • Android: MobileApplication.UnhandledException event now better captures the user runtime call stack for Stack() and StackFrame(). (74743)
  • Android: Controls are resized if necessary when a bottom toolbar is added at runtime. (74258)
  • Android: To match behavior on other platforms, EncodeBase64 now sets the resulting string encoding to US-ASCII. (74878)
  • Android: Integer.ToBinary() now works with large integer values. (74014)
  • Android: MobilePopupMenu.SelectedRowText should return when there are no rows, not raise an OutOfBoundsException. MobileSegmentedButton.SelectedSegment should return null when there are no segments instead of raising an OutOfBoundsException. (74856)
  • Android: Fixed some internal exceptions that could occur when accessing some screen properties from the App.Opening event. (74855)
  • Android: Controls that are locked to top/bottom or left/right now report more accurate height and width. (74257)
  • Android: Hex strings (via Hex or Integer.ToHex) are returned with uppercase letters to better match behavior on other platforms. (74426)
  • Android: To better match other platforms, EncodeBase64 result no longer has a trailing LF. (74428)
  • Android: Nil + String when assigned to a Variant no longer has null prefixed to the beginning of the string. (74809)
  • Android: String + Nil when assigned to a Variant no longer has null appended to the end of the string. (74810)
  • Android: IsNumeric() returns True for enums to match behavior of other platforms. (74713)
  • Android: Locale.Identifier now uses ISO-2 IDS, matching behavior on other platforms. (74775)
  • Android: Fixed a compile error when subclassing TypeInfo. (74276)
  • Android: URLConnection binary request content data is now sent correctly. (74763)
  • Android: Fixed a drawing oddity with MobileOval, MobileRectangle and MobileSeparator if they had focus. (74730)
  • Android: MobileSeparator thickness is now 1pt and gray to match other platforms. (74731)
  • Android: Returning False from MobileTextField.ReturnPressed event now dismisses the keyboard. (74626)
  • Android: To match behavior on other platforms, VarType() and Variant.Type now return TypeInt64 (3) for an enum. (74714)
  • Android: Fixed some compiler error when using Crypto enumerations. (74233)
  • Android: Fixed an exception that occurred when using MobileSharingPanel.SharePicture(). (74671)
  • Android: HTMLViewer.NewWindow() event now contains correct url in the url parameter. (74706)
  • Android: To match behavior on other platforms, Bin() function should use 4 minimum digits, not 8. (74423)
  • Android: To match behavior on other platforms, JSONItem.LastRowIndex now returns a value based on the key count. (74422)
  • Android: It is not possible for introspection to know an array's type and size just from its declaration, but we can at least prevent an exception when requesting that information. (74634)
  • Android: On Android 14, avoid a situation where containers could sometimes be added to the screen more than once. (74579)
  • Android: Str() method now works with Boolean, Color and DateTime. (74595)
  • Android: Fixed an internal exception that would occur when there was only 1 tab on a MobileTabPanel. (74603)
  • Android: Fixed an internal exception that could occur with a MobileContainer on a screen after the app is re-opened. (74596)
  • Android: Invalid objects added to JSONItem now raise an InvalidArgumentException (like other platforms) instead of adding silently as a string. (74552)
  • Android: Fixed compile errors when overriding members of Graphics in a subclass. (74551)
  • Android: An empty array is added to the JSON when converted from a dictionary. (74535)
  • Android: MemoryBlock.StringValue() now returns a string using the specified encoding. (74523)
  • Android: MobileScreen Activated/Deactivated event behavior better matches iOS behavior. (74263)
  • Android: The behavior of CDbl now better matches other platforms. (74451)
  • Android: Fixed a problem with some equality checks to Currency values. (74481)
  • Android: URLConnection Request Content is now sent using the specified character set. (74360)
  • Android: Improved DateTime math results for a variety of edge cases. (74350)
  • Android: A Dictionary is now first converted to a JSONItem before adding it to a JSONItem. (74467)
  • Android: Added IsNull(value As Variant) As Boolean global function to match other platforms. (74470)
  • Android: For MobileTextField, only enable the keyboard done button change if the ReturnPressed event is implemented. (74290)
  • Android: MobilePopupMenu.RowTagAt() can now be assigned a value. (74374)
  • Android: Removed JSONItem.EscapeSlashes and DecimalFormat from Android as those have been deprecated in the main framework. (74421)
  • Android: Sign() now returns Integer instead of Double to match other platforms. (74425)
  • Desktop: Fixed memory leak in DesktopSearchField for Windows. (71870)
  • Desktop: DesktopMenuItem: enabling/disabling the menu item, outside of the MenuBarSelected event, now works. (72446)
  • Every OS: For consistency and to match naming standards, Semaphore.Constructor parameter name standardized to resourceCount. (73761)
  • Every OS: Deprecated HSV, use Color.HSV as replacement. (74598)
  • Every OS: A value that is represented as a Single type, that is stored in a Variant, no longer emits an extraneous e+ at the end when retrieving the StringValue. (74268)
  • Every OS: JSONItem.ToString no longer uses the decimal character based on locale to format doubles. (71351)
  • iOS: Added default event handler to MobileApplication on iOS. (69257)
  • iOS: Thread.DebugIdentifier is now supported for iOS. (72676)
  • iOS: Fixed Graphics.DrawText drawing multi-line strings on iOS. (74162)
  • Linux: ListBox: checkboxes are no longer drawn outside the bounds of the ListBox. (74580)
  • Linux: A clipped graphics from a Picture, whose scale factor is greater than 1, no longer incorrectly offsets the clipping. This fixes an issue with the Linux IDE, for Web Projects, that did not draw any controls on the layout editor when the display scale was greater than 100%. (66226)
  • macOS: DateTime.ToString/SQLDateTime no longer waits for the OS to garbage collect these string instances before freeing up memory. (67558)
  • macOS: GraphicsPath.Bounds no longer returns a Nil Rect if the width or height is 0. This fixes the behavior on macOS, iOS, and Linux to match the behavior on Windows. (74625)
  • macOS: Fixed setting the text on DesktopCombobox (macOS) when SelectedRowIndex <> -1 and the control still has the focus. (74556)
  • macOS: Fixed DateTimePicker receiving key events on macOS when the control is disabled. (74540)
  • Web: WebListBox won't reload its data unnecessary anymore when the browser has been resized, unless its height has changed. (74818)
  • Web: Fixed an issue causing large file downloads to be closed too early sometimes, before the browser finished the download. (74784)
  • Web: WebTabPanel.PanelCount will report the correct amount of panels now, it was always returning 2. (74782)
  • Web: Fixed an issue when doing a WebMapLocation.LookupAddress with the default provider. (74691)
  • Web: Fixed a WebUIControl issue causing the Tooltip placement to be always set to auto. (74725)
  • Web: Fixed a ColorGroup issue causing a NilObjectException to be raised in some situations. It was affecting Web projects. (74686)
  • Web: Fixed the issue causing hovering over a WebMapLocation marker in WebMapViewer to throw console errors, when Title wasn't filled. (74543)
  • Web: Fixed a WebMapViewer issue causing the LocationSelected event wasn't being fired, unless Pressed event handler was present. (74249)
  • Web: Fixed a WebChart issue causing the Pressed event to raise an internal exception. (74462)
  • Web: Fixed Web Framework methods and events to match Xojo coding guidelines. (74400)
  • Web: Fixed an issue causing connections being closed too early under some circumstances. (74442)
  • Web: Fixed an issue causing tooltips to not be shown on disabled web controls. (74136)
  • Web: Fixed an issue in WebTextField and WebTextArea causing loss of data when typing while changing its settings. (74107)
  • Windows: Projects using DesktopHTMLViewer no longer leave cefsubproc.exe processes laying around when the app unexpectedly crashes. (75079)
  • Windows: DesktopDateTimePicker no longer leaks GDI objects. (74985)
  • Windows: Closing a ContainerControl that has a TabPanel on another ContainerControl/Canvas, no longer crashes. (74871)
  • Windows: TCPSocket: sending data is now much faster on Windows/Linux. (74813)
  • Windows: DesktopDateTimePicker control gets the focus on Windows when the Mode is set to TimeOnly. (74767)
  • Windows: DesktopHTMLViewer: ZoomTextIn and ZoomTextOut now zooms in/out to more than one level. (74498)
  • Windows: Fixed an issue due to a bad format string when the DesktopChart is set to Scatter/Bubble and the app is ran on Windows / Linux. (74474)
  • Windows: Fixed DrawInto for ListBox, GroupBox, BevelButton, DisclosureTriangle, PopupArrow, and Separator controls that did not draw correctly when drawing into a Graphics whose scale factor differed from the OS scale factor. (74432)
  • Windows: DesktopWindow/DesktopContainer DrawInto now correctly draws all the controls on the Window/Container. (74430)
  • Windows: Assigned menu icons, with Picture sets, now re-calculates the best representation when the scale factor changes. (62436)
  • Windows: Switching between high contrast themes now triggers the App's AppearanceChanged event. (71505)
  • Windows: Controls, that do not have the Top locked, are now refreshed properly when the window is restored from its maximized state. (72310)
  • Windows: DesktopTextArea: getting the StyledText.Paragraph no longer scrolls the TextArea contents, which caused the text to appear to jump up and down. (72496)
  • Windows: Canvas.DrawInto no longer offsets the Backdrop image incorrectly when drawing into a Picture Graphics. (74382)
  • Windows: Fixed mouse cursor flickering when moving over SearchField control on Windows. (74308)
  • Compiler:
  • New Features:
  • Android: Updated to newer Android/Kotlin toolchain. (74447)
  • Android: Added Dependencies property to the Android advanced build settings. This can be used with Declares and Libraries to load any external dependencies they need. Put one dependency per line, an example would be: io.github.bitstorm:tinyzip-core:1.0.0 (74658)
  • Android: Added support for Ptr type, allowing declares to custom libraries to pass along Android/Kotlin types that do not have an equivalent Xojo type. (74555)
  • Resolved Issues
  • Fixed an occasional issue when compiling on very high core count Windows machines. (74153)
  • Android: Fixed an issue where accessing certain controls by name in events of certain mobilescreen subclasses could fail. (74885)
  • Android: Fixed an unexpected exception when comparing a WeakRef.Value to Nil. (75041)
  • Android: Fixed an issue when referencing certain controls via the screen name in certain events from that same screen. (74960)
  • Android: Fixed an issue with Objects and IsA. (74953)
  • Android: Fixed an issue with certain JSONItem casts that could result in an unexpected exception. (74879)
  • Android: Fixed an issue when using a constant as the lib name in a declare. (74820)
  • Android: Fixed an issue when setting a constant to the value of another constant in certain circumstances. (74817)
  • Android: Fixed an issue when declaring a constant with a nil value. (74814)
  • Android: Fixed a compilation issue with certain events on mobilescreens that use paramarray. (74804)
  • Android: Fixed an issue with using CurrentMethodName inside certain computed properties. (74796)
  • Android: Fixed an issue with AddressOf and methods from Class properties on App. (74749)
  • Android: Fixed an issue when using CType to convert an Enum to an Integer. (74712)
  • Android: Fixed an issue when using CType to convert an Integer to a Boolean. (74711)
  • Android: Fixed an issue with declares that have certain parameters and expect a cstring return value. (74704)
  • Android: Fixed an issue when initializing certain variables of different types following a New and method call on the same line. (74674)
  • Android: Fixed an issue when initializing a Pair variable on the same line that initializes another variable of another type using a method. (74673)
  • Android: Fixed an incompatibility with using modal screens on Android 8 (APK 26). (75000)
  • Android: Fixed an issue when using the Array function to initialize a variable on the same line as other types. (74672)
  • Android: Fixed an issue with conditional compilation that could cause odd issues between certain runs/builds. (74663)
  • Android: Fixed an issue when referencing certain controls on a screen during variable initialization. (74662)
  • Android: Fixed an issue when initializing certain variables with a dotted module/class reference. (74616)
  • Android: Fixed an issue when using multiple IsA in a single Case. (74584)
  • Android: Fixed an issue with certain class enumeration references. (74559)
  • Android: Fixed an issue with calling a conversion on certain framework properties like System.Version.BuildVersion. (74538)
  • Android: Fixed an issue with certain combinations of #ElseIf and #Else. (74509)
  • Android: Fixed an issue that sometimes occurred when returning an object with a nil value from a method. (74496)
  • Android: Fixed an issue with nested/multiple #Ifs in certain circumstances. (74495)
  • Android: Fixed an issue with #ElseIf and nested #Ifs. (74486)
  • Android: Fixed an issue with Not in combination with IsA in parenthesis. (74463)
  • Android: Fixed an issue when accessing a shared property on a MobileScreen via Self. (74454)
  • Android: Fixed an issue when accessing a computed shared property on a MobileScreen. (74452)
  • Android: Fixed an issue when using certain multi-parameter methods with Case. (74415)
  • Android: Fixed an issue with certain methods that have a multi-dimension array parameter. (74390)
  • Android: Fixed an issue where an error state between run/build with conditional compilation in the same session could persist. (74387)
  • Android: Fixed an issue with conditional compilation and TargetMobileSimulator. (74384)
  • Android: Fixed an issue when calling a method with an optional parameter before a required parameter could fail when passing only a required type. (74372)
  • Android: Fixed an issue when calling a method with an optional parameter before a required parameter could fail when passing nil. (74370)
  • Android: Don't allow non-default screens to be opened directly from outside the app. (74794)
  • Android: Fixed an issue with certain whitespace at the end of a line, and fixed an issue with evaluating a pair value as a boolean. (74359)
  • Android: Fixed an issue when using the inspector to set the value of an enumeration on a class. (74351)
  • Android: Fixed an issue when using Timer.CallLater with a method on a container. (74314)
  • Android: Fixed an issue when calling MemoryBlock.StringValue in certain circumstances. (74311)
  • Android: Fixed an issue when accessing an element of a protected shared array property. (74310)
  • Android: Fixed an issue when comparing an object to nil when that object is a variant. (74304)
  • Android: Fixed an issue with conditional compilation and constants. (74300)
  • Android: Fixed an issue when calling certain overloaded methods with different parameter sets. (74297)
  • Android: Fixed an issue with some uses of Try that use End (rather than End Try). (74283)
  • Android: Fixed an issue with accessing/comparing certain MobileScreen inherited properties, and an issue with properties that have underscores in the name. (74259)
  • Android: Location app permission is now only added if MobileLocation is used on a layout. Camera app permission is now only added if MobileImagePicker is used on a layout. If those permissions is needed for other reasons they can be manually added using the Permissions field on the Android Build Settings advanced tab. (74698)
  • Android: When the bundle ID is changed, the app gets fully rebuilt on the next run. (74632)
  • Android: Fixed an issue when using two - in a row. (74250)
  • Android: Fixed an issue where certain classes within modules weren't being checked for invalid names. (74226)
  • Android: Fixed the error message when there are too many modules within other modules for the Android platform. (74224)
  • Android: Fixed an issue when using Optional in a Delegate. (74222)
  • Android: Fixed an issue when using Optional in an event definition. (74221)
  • Android: Fixed an issue when comparing certain types against an element of a variant array. (74201)
  • Android: MobileApplication version properties are now shown with introspection. (74621)
  • Android: Fixed an issue with testing a condition inside of parenthesis made up of certain framework shared methods. (74196)
  • Android: Fixed a compilation error with certain methods that have a multi-dimensional array as the return type. (74180)
  • Android: Fixed an issue when initializing a MobileScreen with a Constructor that has parameters. (74151)
  • Android: Fixed an issue that could cause Android compilation to fail on some Windows installations. (74427)
  • Android: Building an Android app now always clears any prior builds to ensure that a proper rebuild is done. (74512)
  • Android: Fixed an issue with AddHandler and certain controls on a container. (74168)
  • Android: Improved Android temporary build folder creation process. (74448)
  • Android: Fixed an issue where MobileScreen constructors weren't always called. (74150)
  • Documentation:
  • Resolved Issues:
  • WebPicture.Height and Width are now correctly documented as methods rather than properties. (74409)
  • DesktopPopMenu now has a note to explain that when using the & character in a row, you must double it for it to appear. (74513)
  • WebPicture.Height and Width are both now correctly documented as methods rather than properties. (74525)
  • WebFile.Data is now correctly documented as a method rather than as a property. (74526)
  • WebApplication.SessionCount is now correctly documented as a method rather than as a property. (74530)
  • Webpagination.Style is now correctly documented as a method rather than as a property. (74536)
  • Fixed several places in example code on various pages where Object2D subclasses were using Fill rather than FillOpacity. (74587)
  • Fixed bugs in various code samples on the Group2D page. (74590)
  • Improved the description of DesktopWindow.DrawInto. (75004)
  • WebSession LanguageCode, ConfirmDisconnectMessage, DisconnectMessage, InterruptionMessage and UserPrefersDarkMode are now all better documented. (75053)
  • Android: System.GotoMap is now documented. (74285)
  • Android: Added information about the UnhandledException event on Android to the Getting Started > Debugging page. (74516)

New in Xojo 2023 Release 3 (Oct 10, 2023)

  • Highlights
  • Zip/Unzip methods for FolderItem - You can now compress and decompress with built-in Zip support.
  • Additional WebMapViewer Map Providers - You can use use map providers other than Google to render your maps.
  • Set class - Compare and test case-sensitive data.
  • MobilePopupMenu control for Android
  • Android OS Permissions support - Ask Android for permission to access OS services for use with declares.
  • Improved MobileHTMLViewer for Android.
  • XAML improvements for Windows.
  • MobileLocation now supports GeoFencing and Visits for iOS.
  • IDE:
  • New Features:
  • Modified the look of ColorGroup property icons displayed in the autocomplete popup so they are unified with the rest of property datatypes (circle-enclosed). (73687)
  • Now the IDE deletes the encapsulation code (Function / Sub - End Function / End Sub) when pasting a previously copied method directly inside the Code Editor for another method. (63282)
  • Added Zoom In and Zoom Out buttons to the Documentation Window in the IDE. (73424)
  • Android: Added Shared Build Settings Destination property for Android projects. (66602)
  • Android: Advanced Android Build Settings Inspector now has a new Manifest Permissions property where the user can manually enter the name of Android permissions constants need by the app. These would generally be for permissions required by a Declare or Library and will be added to the AndroidManifest.xml file when the project is built. (71594)
  • Android: On Windows, Xojo now checks the Registry to find the location of Android Studio. If not found, the user is prompted to locate it. (73620)
  • Every OS: ColorGroup properties will display both colors now in the inspector selector. (69648)
  • Windows: The Content of the XAML Control Chooser window list has been updated to use single quotes instead of double quotes, for the convenience when copying/pasting and concatenating strings. (73656)
  • Windows: Updated the XAML Control Chooser Window for the Windows IDE. You can now preview XAML controls from this dialog and modify control properties. (73181)
  • Resolved Issues:
  • The Interface Choose button again displays on the Inspector for the web Session object. Name and Super also appear, but are disabled. (66465)
  • Fix so the Insert toolbar button looks right again in the IDE under macOS Sonoma. (73172)
  • Fixed Run On Device bug for iOS when Xcode 15 is installed. (74073)
  • Fix. The Object icon is shown at an appropiate size in the Autocomplete popup menu. (74094)
  • Fixed an issue where right click Help in the code editor for items like ParseJSON and some others would go to the wrong page. (72372)
  • Build Step menu options will be displayed, and thus added, only when any target is selected under Build Settings section in the IDE's Navigator (this includes the contextual menu options and the Insert menu available in the Toolbar and in the main menu). (73674)
  • Fixed an IDE assertion that would occur if a ColorGroup did not have a valid representation for the project type. (73698)
  • The Color Group Editor Add button displays now all the target entries in its menu. (65750)
  • Fixed minor typo for the Tab Order Editor in the IDE. (73995)
  • When moving/duplicating lines in the Code Editor, if an entire line is selected (via triple-click or drag) then don't also move/duplicate the line below it. (73941)
  • Building for Windows ARM64 no longer incorrectly compiles methods marked as 32-bit only. (73879)
  • Fixed regression so the Company Name field is keept in the Project Chooser window. (73898)
  • Fixed disabling the Remove Color Group button in the toolbar when a representation is removed using the contextual menu option in the Color Group editor. (73836)
  • Forces the IDE theme switching for the Layout Editor on macOS. (73835)
  • Duplicating an item is now properly displayed in the Navigator when a filter is also used. (73766)
  • Avoid a NilObjectException that can occur in certain situations when using the debugger and the navigator. (73814)
  • Skip older Feedback-related prompts that could appear when selecting Help->Feature Request & Bug Reports. (72324)
  • Attempt to avoid a NilObjectException that possibly could occur when removing enum elements. (73373)
  • Attempt to avoid a very weird NilObjectException that sometimes occurs when using the Color Picker and the code editor in certain situations. (70243)
  • Attempt to avoid a NilObjectException that could occur in certain situations when closing a folder. (73428)
  • Attempt to avoid a NilObjectException that might occur in certain situations when clicking in the Navigator. (73438)
  • Attempt to avoid an OutOfBoundException that could sometimes happen when moving rows in the Navigator. (73458)
  • Fixed a bug in the IDE when entering // as the label for a new item in an Enumeration. (73587)
  • Attempt to avoid a NilObjectException that might occur when closing project windows in some situations. (73558)
  • Prevent an exception that could sometimes occur when looking up a short description from the docs. (73492)
  • Selecting a new project type in Project Chooser doesn't reset the entered values anymore for the App Name, Company and Application Identifier. (73537)
  • Android: Don't include Database project items as available to add to Android projects. (74223)
  • Android: Attempt to avoid a NilObjectException that perhaps could occur when the debugger UI was closing down while waiting to connect to the debugger. (74219)
  • Android: System.DebugLog now works in the Opening event when Android Ignore Breakpoints is turned on. (73607)
  • Android: System.DebugLog() for Android now displays its output in the IDE Messages panel on Windows. (74167)
  • Android: Multiline Label text now draws in the Layout editor more like it does at runtime. (74166)
  • Android: Prevent copying of iOS MobileScreen, MobileContainer and MobileTableCustomCell to Android projects. Prevent copying WebPage, WebDialog, WebSession and WebToolbar to Android projects. (73974)
  • Android: Turning on Ignore All Breakpoints while an Android project is running in the debugger (and has breakpoints set) no longer crashes. The Ignore setting stops the debugger from launching so turning it on takes effect the next time the project is run. (73514)
  • Android: Display a message before Android Studio folder selector appears on Windows and Linux. (73592)
  • iOS: Updated iOS Device models in the Layout Editor to include iPhone 15. (74165)
  • iOS: Now it is possible to import a previously exported MobileScreen item as text into an iOS project. (73934)
  • iOS: iOS App Icon no longer shows Android icons. Loading App Store icon from a saved project, now properly loads it back into the App Store entry instead of creating a new entry for it. (73921)
  • iOS: Now the IDE displays the proper icon for MobileDateTimePicker subclasses, both in the Navigator and when using the Edit Superclass panel. (73867)
  • iOS: Now the IDE displays the proper icon for MobilePDFViewer subclasses, both in the Navigator and when using the Edit Superclass panel. (73869)
  • iOS: Now the IDE displays the proper icon for iOSCountDownPicker subclasses, both in the Navigator and when using the Edit Superclass panel. (73870)
  • Linux: SearchField control now renders correctly in the layout editor when the control is resized. (73343)
  • Linux: Closing the GoTo Location dialog, when the autocomplete popup list is still presented, no longer crashes. (73699)
  • Linux: Guard against an OutOfBoundsException that could happen on Linux when removing a newly added Structure element. (73796)
  • macOS: The IDE doesn't hides itself under Sonoma when running the project in the debugger and the user switches to other active app before the debugged executable becomes active. (74192)
  • macOS: With Include PDB enabled, we now copy the PDB file to the build destination immediately after the Windows app is built instead of waiting on all the build steps to finish running. (73777)
  • Web: Fixed an issue that could cause the IDE to crash when working on a Web Project and closing one of the workspaces. (74170)
  • Web: Fixed a NilObjectException causing the IDE to crash on Windows, when working with Web projects, under certain circumstances. (73729)
  • Web: Only when debugging, Web applications won't close connections after a few seconds anymore, to improve the development experience. (73844)
  • Web: Fixed an issue in Linux causing the library panel to be unresponsive on Web projects. (73741)
  • Web: Fixed a WebLink issue causing the IDE to draw the preview displaying always the default color, instead of selected one. (73579)
  • Web: Web projects Library will show the SerialConnection object now, instead of the deprecated Serial one. (73707)
  • Web: Fixed an issue causing non visual Web controls to show a Left and Top property in the inspector. (73586)
  • Windows: Scrolling the Examples list in the IDE on Windows before expanding a folder does honors the correct folder. (73917)
  • Windows: The Windows Input Method Editor (IME) now appears again when activated. (73880)
  • Windows: Holding the Ctrl key, to turn off snapping in the layout editor, no longer also copies the control. To make a copy of the control you can now hold down the Alt key instead while dragging. (72971)
  • Windows: Avoid a NilobjectException that could possibly occur when pasting code into the Code Editor. (73789)
  • Windows: Activating the Ctrl+N shortcut, to present a new project dialog, while in the code editor no longer incorrectly inserts the character N in the source code. Same with any keyboard combination that is bounds to an IDE Script menu. (73706)
  • Windows: IDE no longer crashes at startup on Windows Server 2019 (or Windows 10 Enterprise LTSC). Also, using DesktopXAMLContainer will now raise a PlatformNotSupportedException on this version of Windows. (73673)
  • Framework:
  • New Features:
  • Added SelectedRowText property and deprecated SelectedRowValue for PDFComboBox, PDFListBox and PDFPopupMenu. (73401)
  • Added Set class. (71119)
  • Added AutoCalculateYAxis As Boolean property to DesktopChart and MobileChart (True by default) so the user can decide if the Y axis start at 0 or not when the chart is set to Line or Bar modes. (72389)
  • Added Ed25519 algorithm to Crypto module. (68012)
  • Android: Added Boolean.FromString(). (73653)
  • Android: Color.FillColor and TextColor now adjust their color based on dark mode or light mode, but only if SupportsDarkMode is turned on. (72838)
  • Android: Added MobileTextField.ReturnPressed event. (70111)
  • Android: Added new MobileScreen.HasBackButton as Boolean property (design-time only). When True, a back button appears in the left of the top toolbar for the screen. (73316)
  • Android: Added MobileHTMLViewer events for Android: DocumentBegin, DocumentComplete, CancelLoad, Error, NewWindow, DocumentProgressChanged, TitleChanged. (71804)
  • Android: For Android, added MobileHTMLViewer.ExecuteJavaScript() method, JavaScriptResult event and JavaScriptRequest event. ExecuteJavaScript is asynchronous and its result appear in the JavaScriptResult event. To call the JavaScriptRequest event, use xojo.execute() in the JavaScript code. A method name and up to 5 parameters can be passed back to Xojo. (70949)
  • Android: Added MobileHTMLViewer.CanGoBack, CanGoForward properties and GoBack, GoForward methods for Android. (68385)
  • Android: Added MobilePopupMenu control for Android. (71507)
  • Android: Added AllowSpellChecking property to MobileTextArea and MobileTextField on Android. (69130)
  • Desktop: Added SelectedRowText property and deprecated SelectedRowValue for DesktopListBox and DesktopPopupMenu. (73398)
  • Every OS: Added new FolderItem methods for zipping and unzipping archives:``` * Zip(contentsOnly As Boolean = False, compression As ZipCompressions = ZipCompressions.Normal) As FolderItem * Zip(destination As FolderItem, contentsOnly As Boolean = False, compression As ZipCompressions = ZipCompressions.Normal) As FolderItem * Unzip() * Unzip(destinationFolder As FolderItem)```Zipping with contentsOnly (True) will compress all files in the folder without adding the root folder into the Zip file. Zipping to a destination file will create/overwrite the destination file, otherwise if the destination is a folder then the compressed zip file will be created in the destination folder. (71276)
  • Every OS: You can now iterate through all the DatabaseColumns in a DatabaseRow using For Each. (73811)
  • Every OS: DesktopLabel: adding a new Event handler now defaults to Opening instead of AcceleratorKey. (73692)
  • Every OS: Added LastColumnIndex property to DatabaseRow, which returns the zero-based index of the last column in the row. (73810)
  • iOS: Fixed MobileScreen.TabIcon on iOS so it is working properly when the Picture is set at runtime. (73924)
  • iOS: Added GeoFencing feature to MobileLocation on iOS. (73768)
  • iOS: Added Visits feature to iOSLocation. (73769)
  • iOS: Added TargetMobile directive that is True for both iOS and Android. (72998)
  • iOS: Added FocusReceived and FocusLost Event Handlers to MobileTextField and MobileTextArea on iOS. (45577)
  • iOS: Now it is possible to retrieve a PDF document page as a Picture from MobilePDFViewer control on iOS. (73581)
  • iOS: Added 'DateTime.AddInterval(interval As DateInterval) As DateTime' method so it is available on Desktop, iOS and Web; so it is unified with Android. (73651)
  • Web: Added Objects iterator to DesktopWindow, WebPage, MobileScreen. (73762)
  • Web: Added LocationSelected event and RemoveLocation method. Pressed event won't have a location parameter anymore. (74063)
  • Web: Added WebImageViewer.DisplayMode to control how the image will be rendered at runtime. (72856)
  • Web: Deprecated SelectedRowValue in WebComboBox and WebPopupMenu in favor of SelectedRowText. (73400)
  • Web: Deprecated WebListBox.SelectedRowValue in favor of WebListBox.SelectedRowText. (73399)
  • Web: WebMapViewer supports more map tile providers now. Raster and vector tiles are supported. (23589)
  • Windows: Updated to use ICU 73.2 (73193)
  • Windows: DesktopXAMLContainer: localized string constants can now be used when binding a property using {XojoBinding} (73591)
  • Windows: DesktopXAMLContainer: the Date property of a CalendarDatePicker is now settable, instead of it being read-only. (73576)
  • Resolved Issues:
  • DesktopCanvas: the MouseUp event now fires consistently, behaving like it did before with the deprecated Canvas control. (74066)
  • Fixed JSONItem throwing an exception when using Lookup method after emptying all its contents with RemoveAll. (73787)
  • Deprecated RowValueAt for PDFComboBox and PDFPopupMenu in favor of RowTextAt (for consistency among platforms). (73780)
  • Avoid internal BinaryStream exceptions. (70993)
  • Fixed PDFGraphics.DrawPicture honoring the destination Width / destination Height when all the possible parameters are provided for the method. (73455)
  • Android: GenerateJSON no longer skips over items with nil/null values. (74307)
  • Android: Fixed an issue when overriding certain mobilescreen framework properties. (74149)
  • Android: Controls are resized if necessary when a bottom toolbar is added at runtime. (74258)
  • Android: Fixed an exception that could occur when using a container returned with ContainerAt() from within the MobileTabPanel.PanelChanged event when not on the first panel. (73743)
  • Android: Introspection.TypeInfo.Name and BaseType properties now return correct information for objects within a Variant. (74130)
  • Android: String.NthField() and String.ToArray() are now case-insensitive to match other platform behavior. (74006)
  • Android: To match behavior on other platforms, strip off trailing ; from the number format string as that is not valid syntax for ICU formatting. (74182)
  • Android: Calling MobileScreen/MobileContainer.RemoveControl with a MobileUIControl no longer causes an Android compile error. (74141)
  • Android: MobileToolbarButton.Types.Search now uses a more traditional looking icon. (74156)
  • Android: Calling MobileMessageBox.Show(String) shared method from an instance no longer causes an Android compile error. (74159)
  • Android: MobileTabPanel.AddPanel() now properly adds the container when provided. (73738)
  • Android: Variant.ArrayElementType now returns the correct values. (74103)
  • Android: Variant.Equals() now works with Boolean and Color types. (74101)
  • Android: Using Variant.Equals with incompatible types now returns False instead of crashing with an internal exception. (74102)
  • Android: A variant containing a date string will now convert using DateTimeValue. (74097)
  • Android: To match behavior on other platforms, Variant.DateTimeValue will treat a number as the SecondsFrom1970 to convert it to a DateTime. (69310)
  • Android: To match behavior on other platforms, the encoding of a number converted to a string using Variant.StringValue is now set to ASCII. (74038)
  • Android: Fixed an issue when using Introspection.GetType on Size. (74021)
  • Android: ParseJSON() now uses and returns a case-sensitive Dictionary. (74079)
  • Android: Fixed an issue with Variant.IsNull not returning true when used with data that was created using ParseJSON. (74076)
  • Android: Controls at the bottom of a screen no longer get covered by the bottom toolbar when present. (73923)
  • Android: Variant.BooleanValue now returns True when it contains the string true regardless of its case. (74007)
  • Android: Attempting to use design-only properties for ThemeDarkColor, ThemeLightColor and ThemeMediumColor no longer cause a compiler error, but do raise an AndroidException. (73563)
  • Android: URLConnection response headers are now available when using SendSync(). (73609)
  • Android: MobileDatePicker button now works better with z-order. (74005)
  • Android: String *Bytes method now return a string with the same encoding as the source string. (74020)
  • Android: Calling MobileScreen.Close (or other MobileScreen framework methods) for a different screen no longer causes a compile error. (73829)
  • Android: JSONItem.IsArray is now a method on Android to match other platforms and prevent an Android compile error. (73904)
  • Android: MemoryBlock equality on Android now properly compares byte contents. (73994)
  • Android: Fixed a compile error that would occur when using MobileLabel.Alignments, MobileTextArea.Alignments and MobileTextField.Alignments enums instead of MobileTextControl.Alignments enum. (73951)
  • Android: PopupMessage is better positioned at bottom of screen and no longer overlaps navigation controls. (73990)
  • Android: Methods called via introspection invoke will now properly raise exceptions. (73989)
  • Android: String.ReplaceBytes and ReplaceAllBytes now properly handle case sensitivity. (73964)
  • Android: Fixed an issue when calling Dictionary.HasKey from an Extension method. (73949)
  • Android: System.Device.Name should now return values on more devices. (73955)
  • Android: Global Ubound function now works on Android for better compatibility with code from other project types. (73956)
  • Android: If URLConnection result has no content type, the error event is no longer called. Instead the data is treated as binary. (73943)
  • Android: For Each on an empty RowSet no longer causes an infinite loop. (73726)
  • Android: URLConnection now properly processes results for all HTTP status codes, not just 200. (73919)
  • Android: System.Device.Name should now return a result on more Android devices. (73843)
  • Android: Calling shared framework methods from instances no longer causes a compile error. (73734)
  • Android: URLConnection on Android now properly recognizes the encoding on incoming textual data. (73669)
  • Android: Fixed an issue when using the Introspection.AttributeInfo.Value property. (73686)
  • Android: Fixed an issue with certain calls to Introspection.PropertyInfo.Value. (73683)
  • Android: AndroidMobileTable.SelectedRowIndex now matches similar behavior on DesktopListBox. (73657)
  • Android: Changed MobileToolbar.AddButton() parameter from item to button to match iOS. (73649)
  • Android: Added missing MobileToolbarButton.Type property. (73650)
  • Android: JSON.Compact property now shows that it defaults to True in the syntax help. (73661)
  • Android: Added Str(value As Currency) method to match other platforms. (73680)
  • Android: Added Str(value As Single) method to match other platforms. Keep in mind that Xojo Android does not use Single internally. (73681)
  • Desktop: Deprecated DesktopPopupMenu.SelectRowWithValue and added DesktopPopupMenu.SelectRowWithText for API consistency. (73873)
  • Desktop: Deprecated RowValueAt for DesktopPopupMenu in favor of RowTextAt (for consistency among platforms). (73779)
  • Every OS: SQLiteDatabase: adding a new DatabaseRow, with a DatabaseColumn that is assigned a PictureValue, now correctly treats Pictures as binary data and stores it properly. (73996)
  • iOS: Fixed MobileChart exposing KeyDown and TextReceived events from its parent class. (73688)
  • macOS: Selecting an item from a ComboBox using the Enter key on macOS does work properly now, updating the text as it does when using the Return key. (73696)
  • macOS: Fixed using ColorGroup(currentControlTint) so it doesn't crashes the app, returning the expected color instead on macOS. (73723)
  • Mobile: Changed Page parameter name to File on overloaded DesktopHTMLViewer.LoadPage method for consistency with Mobile. (73568)
  • Web: Fixed a ContextualMenu issue causing some menus to not be able to be displayed once another contextual menu was closed. (74253)
  • Web: Fixed a WebListBox performance regression affecting tables with a large amount of columns. (73575)
  • Web: We've reviewed web control and views to enforce our text casing code style in methods and events signatures. (73985)
  • Web: WebSession.HashTag and WebSession.HashTagChanged were renamed to WebSession.Hashtag and WebSession.HashtagChanged respectively. (67280)
  • Web: WebListBox.Indicator property is now supported. (64025)
  • Web: Fixed a WebSegmentedButton issue causing some styles, like font size and color, to be ignored. (62727)
  • Web: Fixed WebTabPanel and WebPagePanel issues that were causing their children to not be redrawn when making them visible. (73152)
  • Web: WebMenuItem.Enabled will work now, when being used as part of a WebToolbarButton.Menu. (64607)
  • Web: Adapted WebToolbar internally to the latest Bootstrap 5 HTML syntax. (73980)
  • Web: Added missing CompatibilityFlags in some Web specific classes that shouldn't appear in other project types. (73643)
  • Web: Fixed WebMessageDialog alternate button style, it will appear as a button now. (73850)
  • Web: Assigning a WebStyle also supports removing attributes now. (73445)
  • Web: WebDialogs can be resized at runtime now. (66829)
  • Web: Fixed a WebUIControl causing Shown and Hidden events to not be fired if the control was also being resized. (73742)
  • Web: Fixed a WebChart issue causing circular charts to display the scales grid. (73730)
  • Web: Fixed a WebButton issue when updating any property, causing its WebMenuItem to not be shown anymore. (73727)
  • Web: Fixed a WebToolbar issue causing buttons to fire the Pressed event, even when they were disabled. (73700)
  • Web: It's possible to set a 100% black color on WebLabel now. Also, the default color can be selected now from the color picker on web controls. (73583)
  • Web: Fixed a WebFileUploader issue preventing the control from being enabled again, once disabled. (73601)
  • Web: WebPopupMenu elements won't be draggable anymore. Those links aren't supposed to be dragged. (73573)
  • Web: WebMessageDialog.Show won't display a null on the page anymore, when being called on a page instance. (73572)
  • Web: WebListBox.SearchCriteria will no longer throw exceptions after removing data. (73469)
  • Web: WebMapViewer can now display multiple locations (markers) (61706)
  • Web: Deprecated RowValueAt in WebCombobox and WebPopupMenu, please use RowTextAt. Also deprecated WebPopupMenu.SelectRowWithValue in favor of SelectRowWithText. (73782)
  • Windows: Enabling the MDI Windows build option now works properly when app is built for Windows ARM64. (74120)
  • Windows: Fixed a potential crash when a window is closing and the main event loop gets triggered again (typically by a call to DoEvents) before the window is finally closed. (70821)
  • Windows: Fixed encoding issues for DesktopSearchField control on Windows. (73916)
  • Windows: Fixed DesktopSearchField clearing the text under certain circumstanceson Windows when clicking on the control. (73246)
  • Windows: DesktopListBox at 225% DPI scale no longer exhibits areas (in between rows/columns) that require repainting. (73708)
  • Windows: URLConnection: assigning a new value to an existing RequestHeader now replaces the value on Windows/Linux, matching the behavior on other platforms. (73705)
  • Windows: GroupBox caption now updates properly when switching themes. (70866)
  • Windows: DateTime no longer incorrectly reports Mexico City timezone as UTC/GMT -5 instead of the correct -6, since it it stopped using daylight savings time. (73143)
  • Compiler:
  • New Features:
  • Android: Added the ability for declares to call direct Kotlin in certain cases when needed. (73987)
  • Resolved Issues:
  • Android: Fixed an issue where code following a #ElseIf and certain #If conditions may not be properly included. (74324)
  • Android: Fixed issues with multiple/simultaneous IsA comparisons, and certain subclassed mobilescreen properties. (74305)
  • Android: Fixed an issue where in certain cases a method-ending finally (without try) would not get called. (74161)
  • Android: Fixed an issue when evaluating certain conditions containing multiple IsA. (74146)
  • Android: Fixed a spurious exception when calling GetType on a control parent. (73624)
  • Android: Fixed an issue with certain variant/object iterators and setting values to nil. (74142)
  • Android: Fixed an issue when comparing object parameter values to certain array types. (74140)
  • Android: Fixed an issue with certain expressions and inline If. (74138)
  • Android: Fixed an issue when using a boolean operator with certain variants. (74133)
  • Android: Fixed an issue when casting certain control/container properties on a mobilescreen. (74121)
  • Android: Fixed an issue with a method of a same name on a subclass with only a default value as a difference. (74118)
  • Android: Fixed an issue when shadowing a property of the same name in a subclass. (74117)
  • Android: Framework property/variable names are now shown correctly in the debugger. (73608)
  • Android: Fixed an issue when casting certain objects to interfaces. (74106)
  • Android: Fixed an issue when assigning to certain properties of a container subclass using me. (74100)
  • Android: Fixed an issue with certain embedded #If/#Else combinations. (74092)
  • Android: Build setting for optimization for Android now only changes the number of optimization passes that are done: 1 for Default, 3 for Moderate, 5 for Aggressive. (73617)
  • Android: Fixed an issue when using Assigns/Extends/ByRef/ByVal in a Delegate. (74089)
  • Android: Fixed an issue when using Assigns/ParamArray/Extends/ByRef/ByVal in an Event definition. (74084)
  • Android: Fixed an issue with classes that use global as part of the super. (74083)
  • Android: Fixed an issue when assigning nil from a variant objectvalue. (74082)
  • Android: Fixed an issue when comparing certain variant values against numeric literals. (74080)
  • Android: Fixed an issue when calling a shared method from a class instance. (74071)
  • Android: Fixed an issue when overloading certain methods with an Object then Variant parameter. (74067)
  • Android: Fixed an issue with certain Protected Extension methods on a module when used from the same module. (74065)
  • Android: Fixed an issue when Catch was used in certain situations without Try. (74060)
  • Android: Fixed an issue when passing Nil to a CString method parameter. (74047)
  • Android: Fixed an issue where a Global Method could cause a compilation error with a Protected Method of the same name in a nested module. (74046)
  • Android: Fixed an issue where a Global Constant could cause a compilation error with a Protected Constant of the same name in a nested module. (74045)
  • Android: Fixed an issue where an Enumeration with the same name/same scope as a Constant did not display the appropriate message. (74044)
  • Android: Fixed an issue where a Module contains a Constant and Method of the same name. (74043)
  • Android: Fixed an issue when calling a shared method from a class within a module via Self. (74041)
  • Android: Fixed an issue with dotted delegate references as parameter types, and with certain references to enumerations in global classes within a module. (74037)
  • Android: Fixed some areas where a compilation error could persist even if the delegate/static involved was deleted from the project. (74036)
  • Android: Fixed an issue where an invalid type in a Constructor may not show the appropriate message. (74035)
  • Android: Fixed an issue where certain methods with an Assigns overload may not be called correctly. (74030)
  • Android: Fixed an issue when initializing certain variables with a New Global type. (74023)
  • Android: Fixed an issue where an out of range numeric literal that isn't valid on Android/JVM did not display an appropriate message. (73998)
  • Android: Fixed an issue when initializing a variable of a Class type where that Class has the same name as a Method. (73997)
  • Android: Fixed an issue where directly accessing certain controls on MobileScreen subclasses could cause a compilation error. (74028)
  • Android: Fixed an issue when comparing two nil objects with Is. (73988)
  • Android: Fixed an issue with certain uses of nested #Else. (73986)
  • Android: Fixed an issue when casting certain Introspection Objects to certain user classes. (73984)
  • Android: Fixed an issue when assigning a Variant to an Introspection type. (73981)
  • Android: Fixed an issue with evaluating IsA in a parenthesis for assignment. (73979)
  • Android: Fixed an issue when using IsA with an Object and a Boolean operator. (73977)
  • Android: Fixed an issue with Objects/Variants and Boolean operators while using Is. (73976)
  • Android: Fixed a compilation error when a value might change in a For Each loop. (73958)
  • Android: Fixed an issue when using a Variant variable in a For Each with an Array of a different type. (73957)
  • Android: Fixed an issue where an appropriate error would not be displayed when accessing a control from a non-layout MobileScreen. (73918)
  • Android: Fixed an issue where trying to immediately assign a value to a Nil Dictionary may not throw the appropriate exception. (73937)
  • Android: Fixed an issue when using a Boolean comparison with certain methods that return a Variant and use BooleanValue. (73930)
  • Android: Fixed an issue where an error was unclear about the re-use of a Global computed property name. (73929)
  • Android: Fixed an issue when calling certain methods with a ParamArray Variant parameter. (73925)
  • Android: Fixed an issue when using Global with Introspection. (73837)
  • Android: Fixed an issue with Redim and using another Array value as the new size, certain Event Definitions that return a Boolean, the use of Array function when initializing a variable and calling certain constructors inside, evaluating the Boolean return value of certain Event Definitions, using Return with a comparison of two Variants from certain methods, using the Array function with a constructor and other types while setting a Variant array, certain methods with a Variant parameter that return a Boolean, and comparing numerical values against certain methods that return a Variant. (73812)
  • Android: Fixed an issue when subclassing certain framework classes with a constructor with no parameters, fixed an issue when calling certain methods that have more than 2 overloads with Variant parameters, and updated the reserved word list for enums. (73809)
  • Android: Fixed an issue with certain Event definitions that have parameters with default values. (73783)
  • Android: Shows a clearer message when trying to define a Delegate with a ParamArray. (73806)
  • Android: Fixed an issue when creating an Extension Method for Object. (73805)
  • Android: Fixed an issue with IsA and Global references. (73803)
  • Android: Fixed an issue with certain Delegates that have Object type parameters. (73802)
  • Android: Fixed some issues with the use of multi-dimensional Variant arrays. (73792)
  • Android: Fixed an issue with certain delegates that define default parameter values. (73784)
  • Android: Fixed an issue when returning a private Class from a Module Method that has the same name as a Class defined up the chain. (73775)
  • Android: Fixed an issue when passing a Nil value to a CString Declare parameter. (73578)
  • Android: Fixed a compilation issue with an empty Select Case. (73720)
  • Android: Fixed an issue with certain constants that have no defined type but a String default value. (73716)
  • Android: Fixed an issue when creating a Module method that Extends an Object Array. (73685)
  • Android: Fixed an issue when using a Variant-returning function during variable initialization with certain types. (73684)
  • Android: Fixed an issue with certain String properties that contain default values with certain quote characters. (73676)
  • Android: Fixed an issue with RaiseEvent and event definitions that are a single character. (73670)
  • Android: Fixed an issue when casting certain MobileControls to a MobileContainer. (73626)
  • Android: Added additional logging and messaging to help identify the Could not find outputs folder error that occurs on some Windows installations. If you continue to run into this, please create a new Issue with the details. (73619)
  • Android: Fixed an issue with the Global keyword when used inside of a GetTypeInfo call. (73623)
  • Android: Fixed an issue with AddHandler and certain framework classes on MobileScreens. (73614)
  • Android: Fixed an issue with certain uses of Exit For. (73598)
  • Android: Fixed an issue when initializing a Variant array variable with the Array function while passing in certain methods. (73590)
  • Android: Fixed an issue with certain methods with Variant parameters that include a description. (73574)
  • Web: Fixed compiling Web projects when optimization is set to Aggressive. (69100)
  • Windows: Windows IDE: no longer throws a failed assertion when quitting the IDE after many debug runs. (73732)
  • Documentation:
  • Resolved Issues:
  • ServiceApplication now correctly indicates that it's only compatible with Windows. (72928)
  • Web: WebSDK Documentation.pdf includes the render method that was missing in Browser Side Code section. (63379)
  • Examples:
  • Resolved Issues:
  • Plugins SDK: updated EyeControl plugin example project to be API 2.0 compatible. (73593)

New in Xojo 2023 Release 2 (Aug 9, 2023)

  • Highlights:
  • DesktopXAMLContainer - Add any Windows control with the modern Windows 10/11 look and feel to your desktop app.
  • Web Dark Mode Support - Your web apps can now look great in dark mode!
  • PDFViewer control for iOS - View PDF documents directly in your iOS apps.
  • Stack chart type for desktop and mobile - Present stack charts in your desktop and mobile apps.
  • IDE:
  • New Features:
  • Now, when an image is dropped in the Navigator the IDE detects if there are other resolution files available for the same picture, so they are automatically imported too into the asset. (54343)
  • Added Search box for Xojo Examples in the IDE. (72388)
  • Added MobileTableCustomCell to the Insert menu and Insert toolbar in the IDE for iOS Projects. (44600)
  • Now the modal dialog displays on Windows the already in use name for Methods and Properties declared in the Inspector Panel. (71932)
  • Web: WebApplication and WebSession will now have a default event selected on the list, Opening. (73113)
  • Resolved Issues:
  • Fixed some inconsistencies in the Behavior Inspector, as for example enabling/disabling the minus button when a Group Header is selected / not selected, also bringing the additional options in the contextual menu for the aforementioned cases, and enabling again the ability to double click on a Group Header row in order to rename it. (73300)
  • Attempt to fix a sporadic and not reproducible exception that sometimes occurs when saving a project with external project items. (72594)
  • Fixed a bug when saving / opening an iOS project in XML format containing a Notification Center class. (65218)
  • Fixed an underlying bug in setting the Compatibility Flags when a class is created using as its Super class a data type from a different project type. (73320)
  • Fixed a bug when unchecking an Include In checkbox, for a class copied from a different target, resulting in an endless loop for the IDE. (73229)
  • Pasting text into an Inspector text field now properly commits it when you mouse click elsewhere. (73203)
  • Attempt to avoid an IDE hang that could occur when trying to update Code Editor code block lines in certain specific (and so far not reproducible) situations. (73184)
  • A class whose Super has been changed is now displayed on the Navigator when using the Filter field in the IDE. (72441)
  • Include In section of the IDE was setting incorrect inclusion for some project items. (73047)
  • Controls embedded on a PagePanel, and laid out on top of the PagePanel gadgets in the layout editor, no longer block the view of the gadgets. Particularly with more complex layouts where controls are embedded on a TabPanel that is then placed on a PagePanel on top of the gadgets. (72974)
  • Fixed Description dialog for Attributes panel getting a bit more longer every time it was opened. (71637)
  • Fixed a bug in ColorGroup Editor displaying the options in the popupmenu even when it is disabled. (63508)
  • Debugger: inspecting properties on a Module contained within Module(s) now works properly instead of crashing. (63867)
  • Fixed ColorGroup Editor changing the color set when using the Goto Location command. (72943)
  • Removed Metal Window enum from the DesktopWindow.Type in the inspector since this no longer exists for DesktopWindow.Types. (72563)
  • For consistency, DesktopHTMLViewer uses now the same rendering in the Layout Editor than Web and iOS projects. (72771)
  • Reduced CPU usage when code editor is not being used. (72493)
  • DesktopTextField is correctly displayed in the Layout Editor and at runtime under Ventura when the Password and Italic properties are both set to True. (72504)
  • Fixed visual glitch in the Picture Contents Viewer debugger panel on the IDE. (72648)
  • Breakpoints and Bookmarks are now retained when swapping lines in the Code Editor. (72264)
  • Debugger: Classes containing shared properties now shows up in the Global variables list under a new Classes item. (16259)
  • Thread.Run event handler is now added automatically when the control is dragged from the Library into a Desktop window, unifying thus how it behaves on Web and Mobile projects. (72235)
  • Improved offline documentation messaging. (72142)
  • Fixed a bug in the IDE search panel excluding some matches when Case Sensitive was selected. (72054)
  • Every OS: DesktopDateTimePicker is now drawn as disabled in the Layout Editor on macOS when Enabled is set to False in the Inspector Panel. (72720)
  • Windows: Windows IDE: no longer fails to compile with an error about a missing CONCRT140.DLL. This is only seen when running a pre-release build of Xojo, and when no other version of Xojo is already installed. (73118)
  • Windows: Windows IDE: when selecting Windows (x86_64) and This Computer as build targets, we no longer build the target twice. (69106)
  • Framework:
  • New Features:
  • Added Stacked Chart type to DesktopChart and MobileChart. (72580)
  • New additions/improvements to Chart control on Desktop. (72683)
  • Color.FromString now accepts color string values that are prefixed with &c. (71868)
  • Windows: DesktopHTMLViewer: no longer makes requests to download/update components, like Widevine, when the HTMLViewer is initialized. (73309)
  • Windows: DesktopXAMLContainer: Provides a way to use modern Windows 10/11 controls in Xojo via this new control. A DesktopXAMLContainer can represent a variety of different controls by clicking on its Edit button in the Layout Editor. (73119)
  • Resolved Issues:
  • Fixed a bug when removing an item in ChartCircularDataset using RemoveRowAt and where there is not an associated color for that index position. (73255)
  • Fixed a bug for AddColor and AddColorPair on ColorGroup class, resulting in not getting the proper/assigned colors for a given Platform (that also was impacting getting the right Mode for the Color Group instance). (73050)
  • Fixed Desktop/MobileChart fill color transparency for the Dataset legends. (73036)
  • Fixed a bug in PDFGraphics where Rotate wasn't working with more than 4 significant figures to right of decimal point. (72921)
  • ODBCDatabase.Drivers no longer incorrectly returns the same set of information as DataSources. (72889)
  • RuntimeException.Stack is now correctly populated for exceptions that are thrown from a modal dialog. (71386)
  • Bug fixed for PDFGraphics.TextHeight with WrapWidth parameter. (72847)
  • PrepredSQLStatement.BindType(types() As Integer) no longer throws an exception incorrectly claiming that one less type was bound. This affected SQLiteDatabase, MSSQLServerDatabase, MySQLCommunityServer, PostgreSQLDatabase, OracleDatabase and MySQLDatabase. (72706)
  • Fix for VersionData when it is used on macOS with security update installed and the language of the app is set to any with non-roman character set based one (for example, Japanese). (72654)
  • Desktop: DesktopContainer.DrawInto now works instead of raising a compile error. (73321)
  • Desktop: Fixed a bug on X axis values overlapping under some circumstances when using the Scatter chart type on DesktopChart. (73150)
  • Desktop: DesktopMoviePlayer: renamed MovieStarted to PlaybackStarted and MovieStopped to PlaybackStopped for consistency with the MobileMoviePlayer. (69018)
  • Desktop: ListBox: using the Edit menu's Select All now correctly selects all the items in a multiple selection ListBox, and in particular, when only two items exist and the first is selected already. (72909)
  • Desktop: DesktopImageViewer defaults to proportionally scale down the image on Windows. (72891)
  • Desktop: Fixed Desktop/MobileChart extending the drawing of the X axis beyond the last value when the chart is set to Linear mode. (72794)
  • Desktop: Fixed a bug in DesktopChart where the Y lines of the grid are drawn past the last available value for the X axis, and the X axis tick ines are too long when the mode is set to Scatter/bubble. (72742)
  • Desktop: Fixed aligning Y labels when Desktop/MobileChart is set to Scatter / Bubble modes. (72741)
  • Desktop: Fixed the Title overlapping the axis values in Desktop/MobileChart when the mode is set to Radial. (72739)
  • Desktop: Fixed a bug in DesktopChart for displaying rotated labels when the Chart mode is set to Bar to represent ChartLinearDataset data and the labels text is wider than the available column width. (72435)
  • Desktop: DesktopCanvas: now raises a MouseUp event before DoublePressed is triggered. (72007)
  • Every OS: GenerateJSON and JSONItem.ToString now treats/validates strings with unknown encodings as UTF-8 strings, and only raises an InvalidArgumentException if the string failed UTF-8 validation. (64982)
  • Every OS: XojoScript: String.Contains is now accessible, instead of giving a compile error. (72993)
  • Every OS: SSLSocket: setting the SSLEnabled to True no longer leaks an object when disconnected. (71365)
  • Every OS: DesktopTextArea: setting up the StyleText attributes like TextColor, etc. now works correctly when UnicodeMode = Characters, particularly when encoutering emoji modifiers. (66842)
  • Every OS: Deprecated ToText methods for Integer(s), Double, Single, Currency and String. (68983)
  • Every OS: SQLiteDatabase: retrieving the BooleanValue of a DatabaseRow.Column now interprets the Boolean value consistently with the BooleanValue of a RowSet.Column. (68894)
  • Every OS: Assigning a UInt32 or Single value type to a DatabaseRow.Column now works. (72032)
  • mobile devices. (69753)
  • data. They will appear in UnhandledException events. (65202)
  • Windows: The DesktopTextField.Hint text is now displayed at the layout editor, instead of only at runtime. (72976)
  • Windows: Drawing with a LinearGradientBrush, RadialGradientBrush or PictureBrush now works correctly when the Graphics (from a Canvas/ContainerControl) is clipped. (73350)
  • Windows: Fixed a bug in DateTimePicker on Windows when the control is set to Time Only and a new DateTime is assigned (72955)
  • Windows: Graphics: Width/Height are no longer calculated incorrectly depending on the DPI scale factor. This mainly affected Graphics that originated from controls on a window. (71881)
  • Windows: Windows/Linux: Encodings.InternetName now correctly returns UTF-8 when the encoding is UTF-8, instead of returning an empty string. (64905)
  • Windows: TextField/TextArea: KeyDown event now fires if CTRL+H or CTRL+M key combinations are detected. (72945)
  • Windows: WebApplication: Args() parameter in Opening event no longer contains duplicate entries when the app is not being run as a service. (64760)
  • Windows: DesktopTextArea.StyledTextPrinter now raises an UnsupportedOperationException for Windows/Linux. (72474)
  • Windows: Canvas.DrawInto no longer incorrectly clips and offsets the drawing on Windows/Linux. (71908)
  • Compiler:
  • Resolved Issues:
  • Windows: If IncludeFunctionNames is checked, we now include function symbols in Windows 64-bit builds so that RuntimeException stack traces are more useful in built apps. (71308)
  • Documentation:
  • Resolved Issues:
  • Updated Plugins SDK documentation with notes on the new Build Resources required to support WinUI based control plugins. (73349)
  • Fixed various code examples that indicated DesktopRadioButton as having a constructor when in fact it does not. (72722)
  • Examples:
  • New Features:
  • Updated EyeControl example in the Plugins SDK. (72629)

New in Xojo 2023 Release 1 (Mar 28, 2023)

  • Fixed regression on Debugger Filter showing duplicates first time a break point is hit when the project is run on Windows.
  • Controls are now refreshed properly when the App is being run inside a remote desktop session with different screen sizes.
  • PrinterSetup.OpenPrinter (or OpenPrinter) no longer raises a failed assertion if the user cancels the open printer dialog.
  • Windows IDE: code editor no longer flickers in certain edge cases when moving the text cursor or moving the mouse over particular source code items.
  • You can now choose an ActiveX Control to embed on the DesktopOLEContainer by contextual clicking on the control in the Windows IDE and selecting Choose ActiveX Control.
  • Locked controls now properly re-adjust when the monitor scale factor changes, including when the monitor wakes up from slumber on a multi-monitor setup.
  • DesktopTabPanel: no longer raises a failed assertion when returning True from MouseDown event.
  • TabPanel no longer overdraws its empty tab region area past the TabPanel bounds.
  • When a new project is created, center the Workspace window and size things to fit the display better.

New in Xojo 2022 Release 4.1 (Dec 21, 2022)

  • Fixed regression geting the TextHeight when using a wrapping value and the text to wrap is just raw data (that is, without spaces on it or such).

New in Xojo 2022 Release 3.2 (Nov 8, 2022)

  • Fixed:
  • Fixed an issue causing nested controls to be drawn in the IDE layout editor mixing old properties, until they were moved around.
  • Better handling of drawing DesktopTabPanel in LayoutEditor (macOS) while not impacting CPU usage.
  • Crash reports are no longer prompted to be sent at IDE startup.
  • Fixed a regression that prevented the Add Method code editor contextual menu from appearing.
  • Currency to string conversion no longer potentially adds an additional negative character in the string.
  • MySQLCommunityServer: iterating through the TableColumns no longer iterates infinitely.

New in Xojo 2022 Release 3 (Oct 12, 2022)

  • Converting controls that have an unknown baseclass (typically when that baseclass doesn't exist in the project, for example when an external item isn't located), no longer throws an exception.
  • A DesktopCanvas, that’s embedded on a Container, now fires the DoublePressed event correctly.
  • DesktopListBox now fires CellFocusReceived and CellFocusLost events.
  • 6Built apps with Workers no longer raise an IllegalCastException on Windows/Linux when running projects that use DesktopApplication.
  • The last parameter for DesktopUIControl.Refresh with x,y,width,height,immediately is now optional as documented.
  • Weblistbox sorts properly again.
  • Web applications should no longer disconnect after 140 seconds.
  • Fix an issue with our EventSource implementation which WebImageViewer pressed event fires again when placed on a TabPanel or PagePanel.
  • Fixed a bug in the retrieval of data from a Weblistbox datasource.
  • WebImageViewer again fires its Pressed event on touch enabled devices that also accept mouse input.
  • HTMLViewer.ExecuteJavaScriptSync can now return booleans, integers and doubles correctly, instead of returning back Nil.
  • DesktopPopupMenu.SelectionChanged event no longer fires needlessly when the SelectedRowIndex doesn't change.
  • Locked position badge no longer bleeds through TabPanels/PagePanels.
  • Assigning a ColorGroup to plugin controls (DesktopBevelButton for example) now reflects the change in the layout editor.
  • IDE now picks up initial ColorGroup property values that are defined for plugin controls.
  • Removing all items from a menubar and then adding a new item now chooses the right super based on the super of the App class.
  • Fixed Desktop control conversion of Color properties (most likely seen when loading up XML projects).
  • Running iOS projects on M1 Macs with Extensions Visible now works.

New in Xojo 2022 Release 2 (Jul 26, 2022)

  • 136 bugs were fixed, 72 doc items were addressed, and 42 features were added.

New in Xojo 2021 Release 3 (Nov 18, 2021)

  • Desktop API 2.0.
  • Dark mode support on Windows.
  • Building Mac apps from Windows and Linux.
  • New encryption features: SHA3, BlowFish, TwoFish and CRC32.
  • iOS now uses iOS 15 SDK
  • SQLite 3.36.0 with support for RETURNING on DELETE, INSERT, UPDATE statements.
  • Desktop project icon resources are saved as compressed PNGs, helping to significantly reduce project file sizes.
  • Lots of improvements and bug fixes.

New in Xojo 2021 Release 2.1 (Sep 18, 2021)

  • Build Pipeline (IDE): Post-build build steps run before the ad-hoc code signature step on macOS builds again.
  • Build Pipeline (IDE): The Linux IDE can build 64-Bit Windows apps again.
  • Crashes & Assertions » IDE Unhandled Exception: Trying to go to a line number from the Go To Location dialog on an item that doesn’t have line numbers no longer crashes the IDE.
  • Crashes & Assertions » IDE Unhandled Exception: Fix a nilobjectException in autocomplete
  • Framework » Web: Fixed a regression which caused WebListbox selected rows to have the original unsorted values regardless of how the list was sorted.
  • Framework » macOS: Fixed a regression which caused the Slider control on macOS Big Sur to be positioned incorrectly and not visible when placed within another control.
  • IDE » Auto Complete: Picture.Graphics autocompletes properly again.
  • IDE » Auto Complete: Autocomplete handles more situations where properties have the same name as classes.
  • IDE » Auto Complete: Implicit instances of WebPages autocomplete properly again.
  • IDE » Build Automation: Fixed a regression which prevented the Copy File Steps in macOS Universal Console apps from working properly.
  • IDE » Build Automation: Fixed a regression which caused post-build build steps from running for macOS Universal builds.
  • IDE » Code Editor: Code folding indicators now scale with font size and the hit area is accurate with large font sizes.
  • IDE » Code Editor: Fixed several regressions regarding block matching of for-next loops.
  • IDE » Code Editor: Improved handling of up/down arrows when code is selected, particular when code has been selected with the keyboard. When selection was extended (with the keyboard) to the left, up/down arrow moves to line above/below positioning near the start of the selection. If selection was extended to the right (with the keyboard), up/down arrow moves to the line above/below positioning near the end of the selection. Moving back to the original line should also position the cursor better.
  • IDE » Code Editor: Display standard mouse pointer when the cursor is over the code editor gutter area.
  • IDE » Find & Replace: Pressing the DELETE key in the find field no longer clears the field.
  • Bug Fixes
  • Changes:
  • Database Plugins » PostgreSQL: PostgreSQLDatabase: updated libpq client library to version 13.2 on Linux to match Windows/macOS.

New in Xojo 2021 Release 2 (Jul 22, 2021)

  • iOS PDFDocument support.
  • Xojo Cloud Remote Notification server for iOS notifications.
  • Binary Enumeration Editor
  • ColorGroups in desktop and web projects.
  • Faster text project saving with fewer files marked as having changes.
  • PDFDocument additions: Rotate, Translate, Scale.
  • Code Editor improvements, including IDE line number settings, better row highlighting and improved drawing and performance.
  • Linux IDE layout improvements.
  • Lots of bug fixes.

New in Xojo 2021 Release 1 (Apr 1, 2021)

  • Xojo IDE is now native on Apple Silicon Macs.
  • XojoScript now supported on Apple Silicon Macs.
  • MacOS 11 SDK now used for both Intel and Apple Silicon builds.
  • IOS apps now use iOS SDK 14.
  • SF Symbol toolbar icons on Big Sur.
  • Graphics.Translate, Rotate, SaveState and RestoreState available in Desktop projects.
  • New WebLocation class.
  • New iOS UserAuthentication class.
  • Much faster JSON processing.
  • Many IDE improvements.
  • Worker improvements, including native Apple Silicon helper apps.
  • WebFileUploader optimized to improve speed, memory and CPU usage.
  • PDFGraphics improvements.
  • Numerous Code Editor and Autocomplete improvements.
  • SQLite updated to 3.34.1.
  • 172 bug fixes!

New in Xojo 2020 Release 2.1 (Mar 12, 2021)

  • Bug Fixes:
  • If main app tries to start a worker without the required Helpers folder (that contains the workers) then it sends a message to the Error event instead of causing a NilObjectException:
  • At end of build process, the entire build folder is removed if any worker had a build error.
  • When Show Build Folder is enabled, only the primary build folder is shown.
  • Universal builds that include separate x86_64 and arm64 plugins parts are now correctly merged/structured to be able to work on older macOS versions.
  • Building a Universal app without Builds Folder enabled now correctly replaces the old App.
  • Building a Universal console app now correctly merges the plugin parts (if the plugin included a separate x86-64 and arm64 part).
  • Removed the macOS photos entitlement from iOS projects.
  • Resizing an Array of Structures no longer crashes for macOS ARM builds.
  • Linux: Color.SelectedFromDialog no longer raises a failed assertion on if the prompt supplied is an empty string.
  • Fixed a NilObjectException that could occur when attempting to identify build errors in the Worker Console project.
  • Display a rendering error if the MobileApplication.DefaultiPhoneLayout or DefaultiPadLayout is blank (instead of causing an IDE NilObjectException).
  • Changing the super of a control to a control type that is not compatible with the current project type no longer crashes the IDE.
  • ODBCDatabase no longer fails to connect (with Actual Technologies ODBC drivers for example).
  • Ptr method offsets are now capable of addressing values larger than Int32 for 64-bit builds, instead of crashing.
  • Fixed an iOS Introspection issue to allow changing a property value, invoking a Constructor with parameters and invoking a method with parameters.
  • ParseJSON no longer raises a Failed Assertion when passed an empty string.
  • Fixed TextHeight / TextAscent returning wrong values in PDFGraphics when a new Font is set.
  • ReplaceB/String.ReplaceBytes no longer raises failed assertion when the replacement string is an empty string.
  • Now the DateTimePicker control uses the standard border width under Windows.
  • DateTimePicker control Height changed to 22 points on Windows.
  • Now it is possible to set a new DateTime object to the SelectedDate property on macOS; no matter the Regional settings the user may be using.
  • Now the DateTimePicker control honors the Top value when displayed in Text mode on macOS
  • Now the DateSelected property returns a valid/updated DateTime object on Windows.
  • TabPanel.RemovePanelAt no longer throws an OutOfBoundsException if the Tab to be removed actually exists.
  • Do not call Worker Error event when Worker Helper quits normally.
  • Fixed a bug in PDF where Rectangles/Ovals wheren't drawn if origin at 0,0 and/or size equals the size of the page.
  • Listbox border is no longer cut-off on the right/bottom edges.
  • No longer leaks objects/memory when Gtk related objects (like Controls, Windows, MenuItems, etc.) are destructed with Normalized Control Sizes enabled.
  • WebDatePicker week start day is now Sunday for the en-US locale.
  • Fixed an issue which caused debugged web apps to stop in the debugger multiple times during startup.
  • WebListbox.RemoveRowAt now throws an OutOfBoundsException if the row parameter is after the last row in the list.
  • Adding non-UI controls to iOS project no longer crashes on run.
  • Global.Speak is now System.Speak.
  • UDPSocket usage no longer causes app to terminate after unlocking phone.
  • Runtime module methods (like ObjectCount, MemoryUsed, etc.) are now accessible for iOS.
  • Graphics.Font now returns a Font object instead of iOSFont.
  • Graphics FontSize, Bold and Italic have been removed. Please use the equivalent functionality found in the Font class instead.
  • Fixed an issue where MobileScreen.Closing was firing incorrectly for non-modal views.
  • Brush/gradient offsets are now control relative.
  • Fix a regression which caused autocomplete to omit project items after IsA.
  • Fixed an autocomplete regression which caused the code editor to only suggest event definition names on lines that began with RaiseEvent regardless of where you were on the line.
  • Enumeration and Attribute editor add/remove buttons now transition properly between OS light and dark modes.
  • WebSDK controls now use the correct icon in the library.
  • MacOS Universal builds no longer fails when the App name is a constant.
  • XojoScript no longer crashes due to incorrectly generating AVX instruction code for CPUs that don’t support it.
  • Changes:
  • Fixed a bug were PDFDocument rendered lines with half the pen size in the x or y coordinates when those values were set to zero, this is because half of the line is drawn outside the page bounds.
  • Fix: Now the SearchField control selects all the text when it gets the focus (on Windows).
  • Fix: The control height is set to the by default 22 points.
  • A link to view all Controls embedded on a MobileScreen is now available when debugging the MobileScreen object.
  • Global variables list now supports viewing all MobileScreens when debugging iOS projects.
  • New Items:
  • CopyFilesSteps can now be specified by architecture.
  • Build steps now have an Architecture option which allows you to specify if they should run for Intel or ARM builds. Make it possible to intercept the build process with an IDE script with the name "XojoBuildPressed.xojo_script".
  • Windows IDE: error messages for plugins that fail to load now contain the actual DLL file that failed. This can be seen in the debug log or in the Loaded Plugins section in the About Box.
  • Docs and Examples:
  • Added missing Render method from the XojoVisualControl documentation section of the WebSDK.
  • Updated GradientExample to use Graphics.Brush and ShadowBrush properties along with ShadowBrush, LinearGradientBrush and RadialGradientBrush classes.
  • Fixed compile errors in iOS ShortcutExample, iOS Tabs, Notification Categories and Simple Notification example projects.
  • DataSourceNames and DriverNames methods have been deprecated. DataSources and Drivers methods have been added.

New in Xojo 2020 Release 2 (Nov 24, 2020)

  • Major changes include:
  • iOS API 2.0:
  • The new iOS API 2.0 framework uses String and Variant and greatly improves code compatibility with Desktop and Web.
  • There are many updated Mobile controls, including all-new MobileMoviePlayer and MobileMapViewer.
  • New iOS features such as Notifications, URL schemes, app shortcuts, modal screens, badges and more.
  • Many common framework features are now available including URLConnection, XMLDocument, RegEx, UDPSocket and more.
  • Plugin support.
  • Apple Silicon (M1) Native Compilation:
  • You can now build both Universal Binary and Native Apple Silicon apps for Mac to support the latest M1 Macs that were recently released.
  • Desktop:
  • Worker:
  • Take advantage of your multiple CPU cores with the Worker class.
  • SearchField control
  • DateTimePicker control
  • ColorGroups
  • Graphics enhancements:
  • LineCap, LineJoin properties
  • Brush property with support for LinearGradientBrush, RadialGradientBrush, ShadowBrush and PictureBrush.
  • ShadowBrush property and ShadowBrush class for applying shadow effects.

New in Xojo 2020 Release 1.1 (Sep 29, 2020)

  • Bug Fixes:
  • 61797 WebTimers created in code work again.
  • 61613 Crashes & Assertions » Failed Assertion Windows: Loading URLs before the WebKit based HTMLViewer was initialized potentially caused failed assertions in REALstring.cpp because code was not being safely executed in the main UI thread, but now it is.
  • 61272 Framework » All ServerSocket: remove unused SocketRequested event.
  • 61384 Framework » All Fixed an assertion in REALstring.cpp that could occur when converting a string from one encoding to another depending on what active thread is doing the conversion.
  • 61636 Framework » All Boolean values are now returned correctly when Iterating rows in a RowSet.
  • 61805 Framework » All Double.IsNotANumber was incorrectly implemented as Double.IsInfinite and vice versa, this is now fixed.
  • 61370 Framework » Web WebSegmentedControl.Pressed event now fires on every click when SelectionStyle = None.
  • 61395 Framework » Web WebToolbar buttons and titles which contain elements that are html encoded now render properly at runtime.
  • 61430 Framework » Web WebCheckbox caption is now correctly encoded.
  • 61476 Framework » Web Fixed a potential NilObjectException when calling WebDialog.Close.
  • 61486 Framework » Web WebPage.Title is now property encoded.
  • 61489 Framework » Web WebViews whose display type is set to Flex now obey the value of their Visible property.
  • 61496 Framework » Web WebButton indicator colors can be set back to Default at runtime again.
  • 61497 Framework » Web UpdateBrowser sends control changes to the browser immediately again.
  • 61509 Framework » Web WebTextField.LostFocus events now fire if the control is last in the tab order.
  • 61531 Framework » Web Style values which are empty or end with a semicolon no longer cause javascript errors at runtime.
  • 61565 Framework » Web WebTextField (and subclasses thereof) properly encode text again.
  • 61576 Framework » Web WebSDKControl.BrowserCompatibility no longer breaks into a blank debugger window if the requested item doesn't exist.
  • 61583 Framework » Web WebToolbarItems of type Menu no longer have two icons and they are now the correct size.
  • 61589 Framework » Web Web apps no longer completely lock up in TCPSocket.Flush when the CPU is otherwise starved by a tight loop.
  • 61608 Framework » Web Setting a WebSegmentedButton's title to an empty string works now.
  • 61622 Framework » Web WebListbox.LastAddedRowIndex is now correct after calling AddRowAt.
  • 61624 Framework » Web WebListbox.CellValueAt now pulls from the correct row after rows have been inserted before the selected row.
  • 61625 Framework » Web Weblistbox rows are now added in the correct order.
  • 61629 Framework » Web Rows inserted with WebListbox.AddRowAt are now added at the correct location in the backing data.
  • 61632 Framework » Web WebMenuItems.Icons are now WebPictures instead of just plain Pictures.
  • 61654 Framework » Web Fixed a bug which caused WebListbox.SelectedRowIndex to be relative to the most recently loaded block of data instead of the entire list of items.
  • 61662 Framework » Web WebSDK controls no longer send the same JavaScript and CSS files to the same browser multiple times.
  • 61668 Framework » Web WebSegmentedButton titles can now be set in code.
  • 61685 Framework » Web WebDialog.Dismissed is no longer when it was never shown.
  • 61688 Framework » Web WebListbox headers set at runtime are no longer invisible.
  • 61704 Framework » Web Calling MessageBox in a Web project with an empty string no longer raises an OutOfBoundsException.
  • 61728 Framework » Web Setting the value of a WebTextField at runtime no longer HTML-encodes the value.
  • 61732 Framework » Web The WebComboBox value when the control is first created is correct again.
  • 61746 Framework » Web Having HandleURL implemented, and not returning True or setting the status to something other than 404 when the URL passed in is an empty string no longer raises an OutOfBoundsException in App.UnhandledException.
  • 61784 Framework » Web WebTextFields of type Telephone now show the correct keyboard on iOS.
  • 61786 Framework » Web WebComboBox.RemoveAllRows works now.
  • 61794 Framework » Web WebTimer.Enabled now works for WebTimers whose Location is set to Server.
  • 61804 Framework » Windows URLConnection: populated request error exception's ErrorNumber with a more meaningful value.
  • 61752 Framework » macOS HTMLViewer: floating-point values received by a Javascript request (via executeInXojo) no longer truncates the fractional part.
  • 61796 IDE » Language Reference Linux IDE: using the Local Language Reference no longer strictly requires libwebkitgtk-3 to be installed.
  • 61618 IDE » Layout Editor The default event for WebDatePicker is now set to ValueChanged.
  • 61407 IDE » Updater Prerelease update dialog now takes users to the correct place on the new forum.
  • 61484 IDE » Web 2.0 Project Converter When converting binary or xml web 1.0 projects, the initial value of PopupMenus are now retained.
  • 44 Bug Fixes
  • Changes:
  • 61463 Framework » Web WebSearchField.ValueChanged now fires whenever the text changes. The new Pressed event fires when the user presses the Enter/Return key or clicks the search or cancel buttons.
  • 61478 Framework » Web WebSessionContexts now throw an UnsupportedOperationException if you try to create one within another Session.
  • 61491 Framework » Web WebToolbarItems with icons now disable the icons when the item itself is disabled.
  • 61584 Framework » Web The deprecated WebFile.OnDownloaded delegate has been removed.
  • 61778 Framework » Web The UpdateBrowser methods on WebSDKControl and WebSDKUIControl have been deprecated and replaced with UpdateControl(sendImmediately as Boolean = False) to cut down on unnecessary traffic when multiple things change in an SDK control.
  • 61473 Framework » macOS Added a patch in System.Version so macOS 10.16 will be reported as 11.0 even on apps running under rosetta 2.
  • 6 Changes
  • New Items:
  • 60101 Framework » Web WebLabel now has a Pressed event.
  • 61502 Framework » Web WebToolbarItem now has a Visible property.
  • 61503 Framework » Web WebToolbar now has an ItemWithTag method to make it easier to modify its contents at runtime.
  • 61573 Framework » Web WebSession now has ClientWidth and ClientHeight properties which are populated before the session Opening event fires so better decisions can be made about which layouts to use. Both of these values are updates when the WebSession.Resized and WebSession.OrientationChanged events fire.
  • 61644 Framework » Web Added WebListBoxRowData.Tag property and updated RowTagAt to allow retrieving this data at runtime.
  • 61646 Framework » Web WebImageViewer and WebCanvas now have a Pressed event which pass the X and Y coordinate of where the user clicked or touched the control.
  • 6 New Items
  • Docs and Examples:
  • 61516 Examples Updated SQLiteExample to make better use of API 2.0.
  • 61588 Examples Updated WebSimpleSendEmail example for Web 2.0.
  • 61312 Language Reference » Documentation The DeleteEntireFolder example in the FolderItem.Remove page of the Language Reference has been updated to API 2.0.
  • 61447 Language Reference » Documentation The example code for WebSessionContext now uses an iterator instead.
  • 61459 Language Reference » Documentation The WebFileUploader.UploadError event now is properly documented to reflect that a RuntimeException is passed to it rather than a status code and message.
  • 61564 Language Reference » Documentation Updated code in WebApplication.HandleURL Notes to use Web 2.0 commands.
  • 61591 Language Reference » Documentation WebListBoxRowData has been documented.
  • 61708 Language Reference » Documentation ListBox.AllColumns and ListBox.AllRows are now documented both on the ListBox page and on various methods where they can be used.

New in Xojo 2019 Release 2 (Oct 10, 2019)

  • 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:
  • SQLite updated to 3.28.0.
  • Database.BeginTransaction method.
  • Simplified prepared statements with Database.ExecuteSQL and Database.SelectSQL methods.
  • Documentation:
  • Examples updated to use API 2.0 features.
  • Language Reference, User Guide and Tutorials updated to use API 2.0 features.

New in Xojo 2019 Release 1.1 (May 22, 2019)

  • Bug Fixes:
  • Framework » AllListbox no longer leaks memory when Paint events are handled.
  • Framework » WindowsSped up URLConnection/Xojo.Net.HTTPSocket requests and decreased CPU usage.
  • Framework » WindowsURLConnection/Xojo.Net.HTTPSocket events are no longer re-entrant.
  • Framework » WindowsUpdating the case of a Label now works.
  • Framework » WindowsURLConnection/Xojo.Net.HTTPSocket authenticating no longer hangs when there is request content present.
  • Framework » WindowsTabPanels embedded within another TabPanel no longer calls the Changed event multiple times.
  • New Items:
  • BuildAdded default plist entries for iOS location services which can be overridden by user plist files. NSLocationWhenInUseUsageDescription, NSLocationAlwaysUsageDescription (for iOS 10) and NSLocationAlwaysAndWhenInUseUsageDescription (for iOS 11+).

New in Xojo 2018 Release 3 (Oct 23, 2018)

  • Bug Fixes:
  • 15507 Build Made it so that nonrelease and stage code are retrieved from bulit-in constants. You can access these as App.NonReleaseVersion and App.StageCode. Note that CFBundleVersion remains unchanged.
  • 53515 Build Fixed an issue where iOS projects couldn't be built on macOS 10.14.
  • 53695 Build A constant in Major Version, Minor Version, Bug Version or Non Release Version no longer causes a compilation error when then compiling for any target. Note there are related issues still to solve noted in case 53709 and 53710.
  • 11079 Build Pipeline (IDE) Missing external scripts are reported like other missing files.
  • 53197 Compiler Currency operations with Integers are now treated as Currency type.
  • 53286 Compiler Addressed an issue where a project with a large number of classes targeting macOS 64-bit could fail with a linker error.
  • 53031 Crashes & Assertions » IDE Unhandled Exception Undoing a delete no longer raises a NilObjectException.
  • 15632 Database Plugins Field schema skips deleted columns when returning the field list on PostgreSQL.
  • 37806 Database Plugins PostgreSQLDatabase no longer blocks other threads while executing a prepared statement, assuming the MultiThreaded property is set of course.
  • 45928 Database Plugins MySQLCommunityServer: TinyInt columns now returns negative values correctly for prepared statements.
  • 53064 Database Plugins MySQLCommunityServer: Getting the StringValue from a DatabaseField no longer returns garbage for unsigned smallints.
  • 23056 Debugger Singles display with more precision in the debugger so small differences in magnitude are shown.
  • 52902 Debugger Ptr's properly shows as 32 or 64-bit depending on the target.
  • 53325 Debugger Debugging static variables for 64-bit Window targets no longer crashes.
  • 41715 Framework » All Picture.RGBSurface no longer leaks a reference in Console apps.
  • 53126 Framework » All Using RectControl.DrawInto while a ContainerControl is being constructed now works again.
  • 49221 Framework » Linux PushButton Action event is now correctly raised on multi-touch touchscreens.
  • 51999 Framework » Linux TextField no longer ignores initial font size and style.
  • 52311 Framework » Linux PopupMenu control no longer automatically resizes to fit content.
  • 53121 Framework » Linux Controls on an initially hidden Groupbox are no longer incorrectly positioned.
  • 53231 Framework » Linux Text color on Labels now honor the initial TextColor property instead of defaulting to the system text color.
  • 53271 Framework » Linux Controls on a TabPanel are now offset correctly on open.
  • 53414 Framework » Linux Drawing Ovals, with a fractional width and/or height, now works correctly.
  • 53509 Framework » Linux TextField’s selected text retains the default selection text color as long as the text remains the default black.
  • 36834 Framework » Macintosh (Cocoa) Fixed a Mac toolbar crash which could occur when removing an item or changing properties around the time of a mouse click.
  • 42025 Framework » Macintosh (Cocoa) On macOS, windows with their FullScreen property set to False can no longer be made full screen by the user.
  • 52409 Framework » Macintosh (Cocoa) Listbox header now uses the correct text color.
  • 53241 Framework » Macintosh (Cocoa) Worked around a crash where macOS sometimes cannot load the print progress window when the application is run from some SMB shares.
  • 53340 Framework » Macintosh (Cocoa) Listbox vertical scrollbar thumb can now extend all the way to the bottom of the Listbox again when the Listbox is embedded within a ContainerControl.
  • 31388 Framework » Windows BevelButton focus ring no longer overlaps the caption.
  • 38198 Framework » Windows Non-transparent ContainerControls now correctly paints their BackColor (if set).
  • 52217 Framework » Windows Optimized Windows UI performance by reducing the use of Direct2D drawing where possible, for example we are now using a native Win32 Label instead of relying on Direct2D.
  • 52917 Framework » Windows Even though an invisible control typically doesn't receive paint events, there are situations that can trigger it but we no longer invoke the Paint event in those situations.
  • 52928 Framework » Windows A Transparent control (like a Canvas) on a GroupBox, no longer flickers when the Transparent control repaints.
  • 52947 Framework » Windows Calling ClearRect on a clipped graphics no longer prevents further drawing.
  • 53179 Framework » Windows Plugin SDK: Draw/FillPolygon graphics functions now correctly respect the REALSetGraphicsOrigin settings on Windows.
  • 53233 Framework » Windows Fixed a DrawString miscalculation when printing at > 96 DPI.
  • 53249 Framework » Windows Dragging a MessageDialog window from one monitor to another with different scale factors no longer shrinks the dialog size to 0.
  • 53273 Framework » Windows A MoviePlayer on a ContainerControl no longer remains hidden on Windows when it should be visible.
  • 53361 Framework » Windows Some controls were not being clipped properly when DrawInto was used. This affected the Windows IDE in that some controls were overdrawing their bounds (like the Label control).
  • 53485 Framework » Windows Listbox.CellBackgroundPaint/CellTextPaint drawing is now offset correctly when DrawInto is used.
  • 53592 Framework » Windows Fixed an issue where editing the name of a method would crash the Windows IDE when the method name field lost focus.
  • 53641 Framework » Windows Listbox: Overwriting the cell content in CellTextPaint no longer ends up in an infinite invalidation/paint loop.
  • 48804 IDE Progress dialogs should be visible again.
  • 52984 IDE External method declarations no longer handle ByVal incorrectly.
  • 52988 IDE Fixed a typo in a connect to IDE debugging error message.
  • 53026 IDE Lower panels for find, errors and messages are visible again. The messages pane was changed to a text area to simplify the code, to make Linux, Windows and MacOs code paths the same, and to gain some speed when users use high volumes of DebugLog calls.
  • 53343 IDE You can now use attribute values that are signed numbers.
  • 38465 IDE » Auto Complete Custom menu item properties are shown in autocomplete.
  • 45400 IDE » Auto Complete Autocomplete properly completes parameters that follows the first one with a default value.
  • 53247 IDE » Code Editor Tick marks and line numbers in the editor gutter are now the same color as the user selected source code color.
  • 53007 IDE » Debugger Removal of the debug app is using the native file manager API on macOS and so should be much quicker on all volume types.
  • 53013 IDE » FileIO Importing an image set saved as text works better, although there are still ways in which there can be issues: 1) the save info is peculiar to the system it is created on - so moving from one machine to another (i.e. Mac to Windows) may result in this not being useful; 2) the fullpath is not cross platform so moving from one machine to another (i.e. mac to windows) may result in this not being useful; 3) the relative path may be different from the project you are importing the item from so it is still possible that image sets may not import the various images that make them up.
  • 52829 IDE » Find & Replace Searching for a property value that’s in a member of a control array behaves properly when you search then select that instance.
  • 53222 IDE » Find & Replace Search and replace of method declarations properly updates the Navigator to avoid exceptions.
  • 53093 IDE » Image Editor Dropping in a 2x or 3x image when you have missing images won’t reset the base sizes unless the 2x or 3x would be of a different base size.
  • 52887 IDE » Inspector Subclasses of PushButtons no long ignore their height as set in the Inspector Behavior.
  • 52945 IDE » Inspector The properties reported as being sometimes misplaced (width, left, top, and height) are in the correct spots in the Inspector.
  • 52948 IDE » Inspector Return values that are arrays - single or multi dimensional - are handled properly.
  • 53236 IDE » Language Reference #If and other directives like it work better in the side bar of the LR and when clicked on in various examples in the LR.
  • 52579 IDE » Layout Editor Control locking changes get undone / redone and are visible in the locking Inspector.
  • 53196 IDE » Layout Editor Caption no longer overlays close button on popovers.
  • 52507 IDE » Library Custom web controls using the Web SDK scale their assigned icon for the large icon view in the Library.
  • 53190 IDE » Menu Editor Converting a menu from being a member of a menu to a top level menu entry shows the right properties.
  • 51835 IDE » Miscellaneous Windows IDE: Adding a new tab (when none exists) no longer causes artifacts to appear temporarily. This was mainly seen when running a project as that would add a new tab.
  • 52486 IDE » Miscellaneous Text selection color is retained as expected.
  • 52589 IDE » Miscellaneous Reloading an iOS project no longer results in a "saving will lose data" warning when saving.
  • 52647 IDE » Miscellaneous LLVM Linking errors now make more sense if more than one is reported at a time.
  • 52700 IDE » Miscellaneous Tooltip shows the location of all kinds of external items not just classes and modules.
  • 52949 IDE » Miscellaneous Windows IDE no longer flickers when switching between tabs.
  • 53341 IDE » Miscellaneous Implement Interface window uses the right text color for the selected row.
  • 53554 IDE » Miscellaneous ActiveX generated code no longer has missing #endif lines.
  • 51892 IDE » Navigator Sharpen up the orb for scope backgrounds on selected row in the Navigator when on HiDPI screens.
  • 51944 IDE » Navigator Drag image in Navigator is HiDPI-aware and draws less fuzzy on HiDPI screens.
  • 53246 IDE » Preferences Inactive text shows up as expected.
  • 52234 IDE » Profiler Profiling 64-bit Console/Web apps now works.
  • 52597 IDE » Report Editor Fixed a Report Editor NilObjectException.
  • 53368 IDE » Scripting FileDescription (and many other app settings) can be set from an IDE script. Refer to the list attached to this case or the IDE Scripting docs for PropertyValue.
  • 52637 Remote Debugger Stub Desktop Remote Debugger Stub correctly deletes the previous app when decompressing a new version again.
  • 79 Bug Fixes
  • Changes:
  • 52891 Database Plugins SQLite plugin has been updated to 3.24.0.
  • 52448 Framework » All Setting a windows bounds using a rectangle no longer circumvents MinWidth and MinHeight.
  • 52534 Framework » All Removed Window.Graphics and Canvas.Graphics properties. Use the Paint event for drawing.
  • 52819 Framework » Macintosh (Cocoa) On macOS Labels, TextFields and TextAreas are now set to the automatic system colors to get the correct appearance on light and dark modes when text is set to opaque black (0,0,0,255) and backgrounds set to opaque white (255, 255, 255, 255).
  • 52845 Framework » Macintosh (Cocoa) On macOS, FillColor, TextColor and FrameColor now map to system colors so custom controls can do the right thing in "dark mode".
  • 53173 IDE Messages panel uses the same font and size as the code editor.
  • 45376 IDE » AutoLayout The IDE tries to make a better guess at which edge to use when you select the relative to item. If you're editing the top constraint then the top of the relative to item will be selected. If you edit the bottom then the bottom will be selected. And so on.
  • 53009 IDE » Code Editor Code editor better supports dark mode and retains its functionality when a user loads a specific color theme.
  • 53136 IDE » Code Editor Clean gremlins also replaces characters like an non-breaking space (Windows = alt+space, macOS = option+space) as gremlins and replace them with the chosen replacement character.
  • 53171 IDE » Code Editor When you select a method from the method popup if it’s derived from a super class the suitable call to "super" will be inserted much like it currently is for constructors and destructors.
  • 53262 IDE » Code Editor IDE font settings take a scale so code measuring text size (height and width) is much more accurate, especially on Windows.
  • 53080 IDE » Error & Warning Panel When showing warnings and errors after analyzing a project the panel its titled "Warnings & Errors”.
  • 52738 IDE » FileIO For the situation for when you don’t have a license installed (but do have licenses) and hit save you can download licenses and hit save again and the project will save as in the right format and where expected.
  • 53226 IDE » FileIO Trying to import a module as external that contains other classes and/or modules will display a dialog saying that this can’t be done and the item will instead be internally added to the project.
  • 5315 IDE » Miscellaneous As you select different colors in the code editor preferences pane the code editors showing are updated so you can see the effect of the color selections right away. Note that they do not change live as you select different colors in the color picker itself - you have to select the color and select OK in the color picker for the change to occur.
  • 15432 IDE » Miscellaneous You can now copy text from Messages panel.
  • 52896 IDE » Miscellaneous You can multiselect several warnings in the bottom Errors panel.
  • 52130 Miscellaneous Console Unhandled exception message now ends with a newline.
  • 18 Changes
  • New Items:
  • 51391 Compiler Session-based incremental compilation is now available for LLVM/64-bit targets. This means each Run after the first only recompiles what has changed, leading to faster debug times.
  • 53144 Compiler Enabled Xcode 10 signing and iOS 12 simulator support.
  • 52391 Framework » Macintosh (Cocoa) Mac Framework now supports macOS 10.14 Mojave Dark Mode.
  • 53015 Framework » Macintosh (Cocoa) Added a new AppearanceChanged event which fires when a user switches between Light and Dark mode on macOS Mojave.
  • 52669 Framework » Web The minimum available sockets are now configurable using the command-line option "--minsockets" for standalone web apps.
  • 51337 Framework » Windows Updated text rendering on Windows to use the GDI-compatible text renderer, which matches the text for Win32 controls for better consistency.
  • 52798 Framework » Windows Label controls on Windows now use the native Win32 control.
  • 52973 Framework » iOS IDE now adds a default plist entry for NSCameraUsageDescription.
  • 53120 IDE » Build Automation IDEs launched with the environment variable XOJO_AUTOMATION set to TRUE will now skip the Feedback Crash dialog and the Restore Previous Project dialog so the build automation process doesn't get paused.
  • 52735 IDE » Code Editor There's a new contextual menu available that will write a single #pragma unused line for each parameter to a method, event or computed property setter.
  • 52912 IDE » Miscellaneous Added SupportsDarkMode desktop project property.
  • 11 New Items
  • Docs and Examples:
  • 1266 Documentation Clarified usage of constants for AddressBookData.
  • 53110 Documentation Updated PostgreSQLDatabase.ReceivedNotification page to indicate the Extra parameter can receive a payload from another system.
  • 53389 Documentation Window.MenuBarVisible notes now correctly describe behavior when False (OFF).
  • 53593 Documentation Added missing EndOfLine.OSX property to EndOfLine docs.
  • 52432 Documentation » User's Guide System.DebugLog pages now note that you can use the Messages panel in the IDE to view the log output.
  • 52366 Examples Set Windows build to x86-64 in ScriptImaging XojoScript project.
  • 52367 Examples Fixed Label size in Interactive Shell example.
  • 52900 Examples Fixed EELogo path location in Eddie’s Electronics web app.
  • 53529 Examples Fixed Declares in Platform-Specific/Windows/SetWindowIcon example for 64-bit.
  • 53696 Examples Fixed transparency for Examples/Desktop/ContainerControls/ContainerControlExample.
  • 51569 Language Reference » Documentation Removed extra “Text” in list of types that work with SortWith.
  • 52697 Language Reference » Documentation BitwiseAnd, BitwiseOr and BitwiseXor pages added since they behave differently than the similar methods in Bitwise module.
  • 53644 Language Reference » Documentation TargetMachO shown in docs.

New in Xojo 2018 Release 2 (Aug 7, 2018)

  • Bug Fixes:
  • 52406 Build Windows/Linux IDE: Building with 64-bit native shared libraries in the Plugins folder now works properly.
  • 5135 Compiler Analyze will report multiple warnings per line if necessary.
  • 52291 Compiler Fixed an issue where Unicode characters in the project path could cause a failure when running or building 64-bit Windows apps.
  • 51957 Crashes & Assertions » Crash Setting the Horizontal or Vertical resolutions of a Picture object before calling its Super.Constructor no longer crashes but instead throws an UnsupportedOperationException.
  • 47238 Crashes & Assertions » Failed Assertion Cancelling an update no longer causes an exception.
  • 50576 Crashes & Assertions » IDE Unhandled Exception No longer get a NilObjectException when navigating back and forth using the forward and backward arrows.
  • 51911 Crashes & Assertions » IDE Unhandled Exception An illegal cast when reading a project ui state file no longer causes the IDE to raise an unhandled exception.
  • 52325 Crashes & Assertions » IDE Unhandled Exception An NilObjectException that can occur when altering the name of a control to be part of a control set has been fixed.
  • 52661 Crashes & Assertions » IDE Unhandled Exception A NilObjectException that could occur when caching plugins has been fixed.
  • 51805 Database Plugins MySQLCommunityServer now maintains its unsigned value when retrieving an unsigned smallest type instead of it being converted to a signed value.
  • 49173 Debugger Viewing the Runtime->Contents in the debugger (for 64-bit debug apps) no longer crashes debug app.
  • 49634 Framework » All Rotated PixmapShapes and StringShapes are now positioned correctly (was incorrectly placed at HiDPI and when printing before).
  • 51965 Framework » All Quitting from a Close event no longer causes the application to crash.
  • 52138 Framework » All JSONItem.Load no longer raises an OutOfBoundsException for an empty string.
  • 52230 Framework » All ContainerControl Moved event now fires again.
  • 41061 Framework » Linux HTMLViewer no longer crashes on Pi.
  • 49844 Framework » Linux Setting the BackColor and TextColor of a TextField or TextArea control now works.
  • 50326 Framework » Linux The text in some of the PopupMenu controls in the Options dialog of the IDE in Ubuntu 17.10 is no longer offset.
  • 51981 Framework » Linux Window bounds now correctly offsets the menu/toolbar from its top/height calculations.
  • 52040 Framework » Linux If there are more Tabs than available space to display them on a TabPanel, scrollable arrows now appear to get to them.
  • 52041 Framework » Linux Listbox headers no longer appear transparent.
  • 52113 Framework » Linux BevelButton no longer ignores the TextSize.
  • 52375 Framework » Linux Web apps no longer hang at startup on Linux ARM builds.
  • 52538 Framework » Linux Controls in GroupBox are no longer incorrectly positioned on Pi.
  • 38278 Framework » Macintosh (Cocoa) Listbox with header and no border no longer leaves drawing artifacts behind.
  • 52453 Framework » Macintosh (Cocoa) Tooltips that are hidden automatically can now show themselves again
  • 34720 Framework » Web WebTextAreas whose text contains line ending characters set in the IDE now sends the correct line ending characters to Internet Explorer.
  • 52368 Framework » Web WebFileUploader properly resets again when a new instance is created.
  • 52395 Framework » Web Auto-Reconnect works on Firefox again.
  • 52419 Framework » Web WebStyle gradient stop points render in the correct order again.
  • 52492 Framework » Web WebFileUploader no longer fails on IE11.
  • 52514 Framework » Web Uploading large files using WebFileUploader will no longer fail with an OutOfBoundsException inside the web framework.
  • 42277 Framework » Windows Console apps that write to StdOut now convert the string to the correct encoding for the console.
  • 45597 Framework » Windows BevelButton.Caption is no longer partially cut off when CaptionAlignment is Flush Left or Flush Right.
  • 49499 Framework » Windows WebKit based HTMLViewer now updates the contents immediately when resizing.
  • 51583 Framework » Windows Now honoring the Serial.RequestToSend property.
  • 51840 Framework » Windows Hiding/Closing a modal dialog no longer activates the wrong window before presenting the correct one. This bug could be seen in the Windows IDE when closing a property editor dialog while multiple windows were present.
  • 51841 Framework » Windows Listbox header no longer lags behind content when scrolling or when resizing columns.
  • 51844 Framework » Windows Xojo.IO.TextOutputStream/BinaryStream can now correctly create and open files that contain unicode characters on Windows.
  • 51847 Framework » Windows Using Xojo.Net.HTTPSocket to send a file that contains Unicode characters in its file path/name now works.
  • 51867 Framework » Windows Now using higher quality anti-aliasing when scaling a Picture.
  • 51897 Framework » Windows Slider controls now update their background correctly when its parent window updates.
  • 52012 Framework » Windows Sliders placed directly on a TabPanel now correctly matches the TabPanel background color.
  • 52087 Framework » Windows Rotating an Object2D on a clipped Graphics now correctly rotates on the relative X, Y delta supplied.
  • 52165 Framework » Windows OpenGLSurface: Calling Render from a Paint event now works again.
  • 52257 Framework » Windows Listbox focus ring is now drawn thin dotted again instead of dashes.
  • 52266 Framework » Windows Embedding ContainerControls on a hidden page of a PagePanel no longer causes redraw artifacts to appear.
  • 52279 Framework » Windows WebKit based HTMLViewer now correctly scales when moving between monitors with different DPI scales.
  • 52289 Framework » Windows Listbox Drag reorder indicator is no longer offset incorrectly.
  • 52312 Framework » Windows Improved ContainerControl scrolling.
  • 52331 Framework » Windows MouseMove, MouseEnter and MouseExit events are now called for MDI child windows.
  • 52402 Framework » Windows Hierarchical Listbox disclosure icon is no longer painted in wrong row and too small.
  • 52410 Framework » Windows A debug app with a Webkit based HTMLViewer on a window can now be closed properly when forcibly stopping the debug app.
  • 52470 Framework » Windows Optimized a case where one would draw a picture to another picture frequently.
  • 52481 Framework » Windows We now smartly cache drawing pictures to use less memory and to draw a bit faster when drawing to another picture object. This potentially fixes some failed assertions at DrawableD2D.cpp that some people have been reporting.
  • 52748 Framework » Windows Changing a ToolButton's caption no longer leaks the icon associated with it.
  • 52851 Framework » Windows TabPanel: removing a tab or changing the tab caption now correctly updates the empty area along the top-right of the TabPanel so it no longer overlaps the tabs and draws the background properly
  • 37969 Framework » iOS A user can manually unparent a control more easily using this process: 1) Select the control, 2) Right click, 3) Select "Unparent" from the contextual menu. Use caution with this as overlapped unparented control can cause display issues.
  • 51920 Framework » iOS Setting the Active property on an iOSLayoutConstraint to False in the IDE now works.
  • 52182 Framework » iOS Xojo.Threading.Thread Priority now defaults to 1, not 0, which resulted in an error. However, this makes NO change to existing instances in existing projects.
  • 52307 Framework » iOS The iOS Framework now return False instead of True to iOS by default in response to the "application didFinishLaunchingWithOptions:" event to match Apple's documented behavior.
  • 8788 IDE MenuHandlers for menu item arrays show the “index as integer” parameters. Note there is a refresh glitch when you remove all menu items from the array. You can collapse the containing row and re-expand it and the item will redraw correctly.
  • 52728 IDE Extract method assistant does a better job of crafting a suitable name and parameters from the selected text making it easier to edit the name right away. The name no longer includes illegal characters that have to be removed before you can edit the name.
  • 52043 IDE » Auto Complete Fixed regression where global methods in external modules would not autocomplete.
  • 52044 IDE » Auto Complete MenuItems autocomplete properly.
  • 52373 IDE » Auto Complete PagePanel.CreatePane and other internal details removed from autocomplete list.
  • 51927 IDE » AutoLayout Constraint editor tries really hard to stop you from setting up constraints that are going to cause crashes. For example, you can’t set something’s LEFT to something else’s TOP as that would cause a crash.
  • 35430 IDE » Code Editor Bare Exception and Catch statements no longer draw extraneous code matching markers.
  • 42366 IDE » Code Editor Selecting "Go to " from the context menu now selects the constant if it is a module.
  • 51279 IDE » Code Editor A Shift-Return on an ElseIf line that has no Then will add the Then as needed and close the ElseIf with an End If.
  • 51683 IDE » Code Editor A super-return on a line being reformatted by a user script no longer has the text from the first line inserted at the end of the closing line.
  • 51774 IDE » Code Editor Clicking on the code folding hot box works properly.
  • 51992 IDE » Code Editor Indents and folding hit box positions are consistent even when using really small or really large font sizes.
  • 52183 IDE » Code Editor Code editor contextual Find does partial word searches not just whole word searches.
  • 52372 IDE » Code Editor Home and End scroll to beginning and ending of line.
  • 51959 IDE » Debugger Viewing properties of a Picture subclass in its Consturctor no longer crashes debugged app.
  • 51880 IDE » FileIO Backslash encoded strings in a note no longer cause issues when loading a project.
  • 52053 IDE » FileIO Subclassed iOS controls reload properly.
  • 52407 IDE » FileIO The IDE now cleans out existing build folders before a target is built. This happens before any pre-build steps.
  • 52426 IDE » FileIO Project opening speed is vastly improved for some projects with incredibly long methods.
  • 52573 IDE » FileTypes Editor Deleting a file type in the File Type Set Editor moves the selection to an appropriate item.
  • 52140 IDE » Find & Replace Search and replace within parameters no longer mishandles ByRef and Optional keywords.
  • 52262 IDE » Find & Replace Search followed by a replace no longer alters the found items list or the search scope.
  • 52795 IDE » Find & Replace Clicking on a breakpoint in the search results, when showing all breakpoints, correctly moves the Navigator focus.
  • 51821 IDE » Inspector Changing the scope of an external Objective-C method no longer drops the Objective-C setting.
  • 51859 IDE » Inspector Inspector Size fields changed via paste now retain the correct value.
  • 51861 IDE » Inspector Inspector labels no longer shift slightly.
  • 51906 IDE » Inspector Labels and switches in Inspector align better on Linux.
  • 52016 IDE » Inspector Constants and other code items cannot have names that end in white space.
  • 52069 IDE » Inspector Make it so extraneous new lines in the column widths multi line editor are trimmed off and newlines between values are turned into commas.
  • 52125 IDE » Inspector Constants assigned to color or booleans show a label that is as wide as possible and not limited to the width of the color selector or switch.
  • 52195 IDE » Inspector The button on the Inspector panel for multiline items no longer has draw through artifacts.
  • 52513 IDE » Inspector Fixed up a bug in the method edit pane that resulted in an exception when adding an overload method to an interface.
  • 52779 IDE » Inspector Formatting is removed when you paste formatted text into the parameters field.
  • 52790 IDE » Inspector When you right click a boolean or color property editor, select an item from the contextual menu and then press ESC when editing the field value that shows up, the property editor reverts back to its normal appearance as a boolean or color editor.
  • 49989 IDE » Layout Editor Windows IDE: The window titlebar icon no longer overlaps the title text in the layout editor.
  • 51277 IDE » Layout Editor Pasting a flex space ToolButton copied from another view no longer causes a hang.
  • 52271 IDE » Layout Editor Container control shows assigned backdrop in its design mode not just when placed on another layout.
  • 51993 IDE » Library Floating Library panel on macOS no longer draw the top popup menu oddly.
  • 52110 IDE » Library Listbox now has a 3x icon in the Library.
  • 7930 IDE » Miscellaneous Searching for a picture by name shows the properties of windows controls that its been used in.
  • 26224 IDE » Miscellaneous Attributes can refer to constants that use fully qualified dotted paths to access them.
  • 45584 IDE » Miscellaneous An issue when adding ActiveX controls that used dates has been fixed so that the generated code is no longer incorrect requiring manual fixing.
  • 51317 IDE » Miscellaneous Go To Location no longer overrides tab locks.
  • 51513 IDE » Miscellaneous Clicking on an iOSView may still add properties that have been added since the project was created but things like autolayout properties won’t be sorted into a different order just by clicking on the view when other parts of the project are changed.
  • 52003 IDE » Miscellaneous Undo of adding a file type to the file type editor removes pane from the UI.
  • 52286 IDE » Miscellaneous Search and replace on the declaration line no longer messes up the declaration when you need to replace many items in the declaration.
  • 52490 IDE » Miscellaneous There should be no longer be any overlapping controls in the bottom Find/Errors/Messages panel.
  • 52720 IDE » Miscellaneous An exception that could occur when an error that referred to an item that had been deleted no longer occurs.
  • 42060 IDE » Navigator Items from search panel are now properly highlighted in the Navigator.
  • 42458 IDE » Navigator Icons of items in modules now show the correct icon.
  • 52255 IDE » Navigator When changing the name of a method it remains selected in the Navigator.
  • 52275 IDE » Navigator Scope settings in the Navigator contextual menu for a class in a module behave properly.
  • 51725 IDE » Preferences Can edit color scheme and export immediately without having to first close the Preferences.
  • 52437 IDE » Profiler Warning dialog about building with profiling on now displays properly.
  • 52733 IDE » Profiler The dialog warning about compiling with profiling on no longer appears oddly on macOS.
  • 51166 IDE » Rendering An issue where the IDE would create the wrong code has been corrected and now remote debugging from a 64-bit IDE to a 32-bit target is working.
  • 51950 IDE » Updater Update panel no longer draws left pane in shocking green.
  • 13376 IDE » Web Page Editor Naming an image / picture the same as a property on a web page no longer causes compilation errors.
  • 51972 Plugin SDK Plugin SDK prototypes are as expected and don’t generate warnings if you turn on strict prototypes.
  • 52387 Plugin SDK Updated REALGetPropValue to be more consistent when dealing with Variants.
  • 121 Bug Fixes
  • Changes:
  • 51695 Build On Windows, when a non-Admin user tries to debug a 64-bit app with its security level set to Admin, a warning is now displayed.
  • 50249 Build Process (GoCD) Debian packages now include high rez icons @ 16, 32, 36, 48, 64, 72, 96, 128, 256, 512.
  • 52272 Database Plugins SQLiteDatabase plugin has been updated to version 3.23.1.
  • 51771 Framework » All There is a version of REALBasic.Rect that takes x and y instead of a point.
  • 52180 Framework » Web App.SessionTimeout can no longer be set lower than 30 seconds.
  • 52126 Framework » Windows Optimized Pseudo-transparency using a different drawing model. Instead of caching pictures we now call additional Paint events on the Parent windows to help draw the background of child controls.
  • 52568 IDE Issue resolution window default width is 600 or 75% of the opened project window, whichever is greater.
  • 52085 IDE » Debugger The debugger tab now has a bug icon to make it distinct from the others.
  • 52757 IDE » Scripting Since iterating a folder is no longer assured to do so in alphabetical order we impose that ordering now so IDE scripts load in alphabetical oder.
  • 52853 Installer Windows Installer has been updated with the Windows 7 SP1 minimum requirement.
  • 51949 Lingua Lingua and iOSImageMaker are now 64-bit on macOS.
  • 11 Changes
  • New Items:
  • 37170 Database Plugins SQLiteDatabase now allows up to 30 attached databases.
  • 23441 Framework » All Graphics API now takes Doubles instead of Integers for better precision.
  • 51019 Framework » All Add new Resources and GetResource methods to SpecialFolder. SpecialFolder.Resources() As FolderItem on macOS: returns a reference to the Resources Dir in a bundled app (GUI) otherwise returns a references to the Resources Dir next to the executable on Windows/Linux: returns a reference to the “ Resources” dir if it exists, or the Resources dir next to the exe if it exists returns nil if neither exists SpecialFolder.GetResource(name As string) As FolderItem on macOS: returns a reference to the named item in the Resources Dir in a bundled app (GUI) otherwise returns a references to the named item in the Resources dir next to the executable on Windows/Linux: first checks if “ Resources” dir exists and the named item exists in this dir returns a reference to this item if it exists otherwise checks if “Resources” dir exists and the named item exists returns a reference to this item if it exists returns nil if the named item does not exist in either
  • 52522 Framework » All Added AntiAliasMode property on Graphics class. This property controls the level of interpolation/quality when drawing scaled Pictures. Valid modes are from the Graphics.AntiAliasModes enumeration: LowQuality, DefaultQuality, and HighQuality. The default is DefaultQuality.
  • 51556 Framework » Windows Printing is no longer restricted to 96 DPI.
  • 52229 Framework » Windows Updated Webkit based HTMLViewer to CEF 3.3359.1774.gd49d25f.
  • 37898 Framework » iOS iOSTable now supports Pull-To-Refresh. To use, set the AllowsRefresh property to True and then when you're done refreshing data, call the EndRefresh method.
  • 46879 Framework » iOS iOSToolbutton.NewBordered is now marked deprecated.
  • 51142 Framework » iOS iOSApplication.Open now receives the launchOptions Ptr as a parameter and returns a boolean as to whether or not the app is handling the request.
  • 52117 Framework » iOS It is now possible to disable the default height constraints on a iOSTableCustomCell by setting the UseDynamicHeight property to True. This allows you to create cells which vary in height based on their content. The default value for this property is False to maintain backward compatibility.
  • 52118 Framework » iOS Inserting or Removing a row/section within the visible rows on an iOS table is now animated.
  • 52333 Framework » iOS iOSHTMLViewer is now a WKWebView instead of a UIWebView.
  • 52599 Framework » iOS iOSViews now have a LargeTitleMode property which allows you to enable and control how titles render in iOS 11+ using the LargeTitleModes enumeration, which has these elements: Automatic, Always, Never (the default). This property does nothing on pre-iOS 11 versions.
  • 1557 IDE » FileIO There's now an option to save XML projects with indentation so they are more readable.
  • 43408 IDE » Find & Replace Find keeps a history of recent searches (15 at this time).
  • 52314 IDE » Find & Replace Search scope segmented control grows and shrinks as segments are added and removed instead of staying the same size.
  • 52319 IDE » Inspector Moved the Browse item in the picture and image property pickers up to the second item in the list so in a project with a lot of images its easy to find (instead of being at the very end of a really long list of images).
  • 51824 IDE » Preferences There is now a “Clear Cache” button on the Build Preferences.
  • 2760 IDE » Profiler You can start and stop profiling in code. Use the global methods: StartProfiling and StopProfiling. Profile Code must be enabled in the Project menu for these to work.
  • 21203 Lingua Lingua can now import the Tab delimited files that it exports.
  • 51626 Lingua Added a menu to specify the search scope.
  • 51791 Lingua Added script methods to get the first and last rows and to get/set the current row.
  • 52371 Plugin SDK All Plugin SDK examples have been updated to build with Xcode 9 or newer and Visual Studio 2015 or newer.
  • 23 New Items
  • Docs and Examples:
  • 51851 Examples Moved EasyTCPSocket example projects so that they remain available for Windows/Linux users.
  • 51946 Examples SQLitePreparedStatement example now uses SQLitePreparedStatement everywhere. Also improved search results output.
  • 52204 Examples HTTP Example project is now set to 64-bit for macOS and now runs without errors.
  • 52600 Examples Added port number 5432 to PostgreSQL Listen and Notify example projects.
  • 52753 Examples WindowMenu example now checks for WindowMenuItems to allow other menus items to also exist in the Window.
  • 50705 Language Reference » Documentation Redim appears in autocomplete drop-down as “Redim” so it’s consistent with documentation.
  • 51598 Language Reference » Documentation Array methods should now appear in bulit-in Language Reference.
  • 51618 Language Reference » Documentation Fixed typo in example code on Str page.
  • 51619 Language Reference » Documentation Cleaned up examples for StrComp page.
  • 51678 Language Reference » Documentation Fixed sample code for String.InStr method.
  • 51828 Language Reference » Documentation Added PreparedSQLStatement.Bind(zeroBasedParam As Integer, value As Variant, type As Integer) method overload to Bind page.
  • 51829 Language Reference » Documentation Added PreparedSQLStatement.BindType(types() As Integer) method overload to BindType page.
  • 51858 Language Reference » Documentation Local LR shows the various operators with both their symbol and text name.
  • 52119 Language Reference » Documentation Description for iOSDatePicker.MinuteInterval now properly notes it can be used with Time and DateTime display modes.
  • 52152 Language Reference » Documentation Documentation wiki updated with value for REG_QWORD.on CLI switch in the Save as batch window when Script folder and Source control
  • "ApexSQL Script has stopped working" error is encountered after closing the Source control wizard and the complete project, along with the application itself
  • SQL output script is created with no data rows when the Where clause option is used to filter rows
  • Static data is not committed to a source control repository through the GUI

New in Xojo 2017 Release 2.1 (Sep 12, 2017)

  • Bug Fixes:
  • 49060 Database Plugins PostgreSQLDatabase no longer returns an error after Connect is called on an already connected database, unless of course that connection is lost.
  • 49172 Framework » All Characters in single byte encodings or nil encodings with a value >= 128 now compare correctly. This was a regression in 2017r2.
  • 49153 Framework » Windows Strings in various DOS encodings now compare case insensitively. This was a regression in 2017r2 on Windows.
  • 49190 Framework » Windows The X, Y parameters in ListBox.DropObjectOnRow are no longer offset by the Window left/top.
  • 49298 Framework » Windows Screen Left/AvailableLeft are now based off the main screen DPI. This allows proper placement when dealing with multiple monitors with different DPI scales.
  • 49379 IDE » Code Editor Shift-return no longer incorrectly alters the line the cursor was on when you pressed shift-return.
  • 49200 IDE » Inspector Inspector no longer ignores keys when running the Japanese IDE.
  • 49255 IDE » Inspector Page panels properly move thing as you reorganize the panels.
  • 49297 IDE » Inspector Changing a control’s super class properly updates the Inspector.
  • 49253 IDE » Structure Editor Structure editor switch shows as expected.

New in Xojo 2017 Release 2 (Aug 16, 2017)

  • Xojo 2017 Release 2 has over 250 changes and improvements, with a major focus on 64-bit improvements, Linux GTK+ 3 and HiDPI, and iOS Launch Screen support.
  • Xojo 2017 Release 2 features:
  • 64-bit support for XojoScript
  • 64-bit string handling is faster and more consistent
  • 64-bit support for Windows icons and version information
  • GTK3 for Linux
  • HiDPI for Linux
  • iOS Launch Screen support
  • Additional drag & drop events for ListBox
  • IDE and web improvements

New in Xojo 2017 Release 1 (Mar 29, 2017)

  • This Xojo release has over 230 changes and improvements, with a major focus debugging, including 64-bit debugging and Raspberry Pi Remote Debugging.
  • Remote Debugging to Raspberry Pi
  • Improved printing support on Windows (now using Direct2D)
  • Improved Xojo.Net.HTTPSocket on Windows
  • Code Editor improvements.
  • Menu shortcut editor allows to you set and change all IDE menu shortcuts
  • WebKit HTMLViewer on Windows is now much faster and standard-compliant (uses Chromium Embedded Framework 3)
  • Support for HTML in text-based web controls

New in Xojo 2016 Release 4 (Dec 6, 2016)

  • This Xojo release has over 170 changes and improvements, with a major focus on Windows support and the IDE.
  • Windows HiDPI support is finalized.
  • Windows Graphics subsystem now uses Direct2D and DirectWrite for improved drawing speed and modern graphics support.
  • Windows builds now have a setting to automatically include Universal Windows Runtime DLLs.
  • You can now easily convert Pictures (in Desktop and Web projects) to Image Sets.
  • Improved Extract Method refactoring tool.
  • Navigator Filter search improvements.
  • Improved IDE tab handling with Back/Forward support.
  • WebContainers can now have Horizontal and/or Vertical scrollbars.
  • Faster Xojo Cloud uploading.
  • Added WebListBox.CellPicture method.
  • Introspection now works with Interface types.
  • Beta of new IDE Communication protocol for automating Xojo builds.

New in Xojo 2016 Release 3 (Sep 13, 2016)

  • This release of Xojo has these notable new features and changes:
  • You can now specify compiler options of Default, Moderate and Aggressive for 64-bit and ARM builds.
  • SQLiteDatabase upgraded to v3.14.1 and now supports FTS5 for full-text searching.
  • Many additions to refactoring features of the IDE and Code Editor.
  • Save Code Editor color schemes to easily share and re-use.
  • ICU library included with Linux builds for improved compatibility
  • Can now easily convert Pictures in projects to Image Sets.
  • Over 90 bug fixes and improvements.

New in Xojo 2016 Release 2 (Jul 13, 2016)

  • Improved Table control with support for:
  • Row Scrolling
  • Row Actions
  • Row Editing
  • Row Re-ordering
  • Custom Cells
  • New controls and classes such as:
  • Location
  • Motion
  • PicturePicker
  • ScrollableArea
  • SharingPane
  • Launch Images are no longer needed
  • HiDPI is now available for web apps
  • Significant improvements to HiDPI for Windows desktop apps
  • Many other bug fixes and improvements

New in Xojo 2016 Release 1.1 (Jul 13, 2016)

  • Bug fixes:
  • Framework: Windows/Linux: Xojo.IO.SpecialFolder.GetResource no longer crashes the second time it is called.
  • Build: Long compile times for web projects have been fixed. Things should be speedy once again.
  • Database Plugins: MySQL Plugin no longer crashes when closing the database.
  • Framework » All: SMTPSecureSocket no longer throws an OutOfBoundsException when the SIZE command from the server doesn't contain a value.
  • Framework » Windows: Windows SaveAsDialog no longer returns the wrong name if anywhere in the file's path contains a period in it.
  • Framework » Windows: Xojo.Crypto.RSAGenerateKeyPair no longer crashes on Windows.
  • IDE » Code Editor: Menus enable properly restoring cut/copy/paste in certain projects. The issue was that a non-frontmost editor, in this case the asset catalog editor, was getting a chance to enable menu items but since it was empty cut/copy/paste were disabled which affected the code editor.
  • IDE » Find & Replace: No longer crashes when searching.
  • IDE » Language Reference: New LR viewer window no longer causes high CPU usage on Windows.
  • IDE » Layout Editor: Fixed an issue with Page panels that have just a single panel.
  • IDE » Navigator: Duplication speed should be vastly improved.
  • IDE » Web Page Editor: Improved the speed of the Web editor on Retina/HiDPI screens.
  • IDE » Web Page Editor: IDE display matches how WebText fields appears at runtime.
  • Remote Debugger Stub: Windows IDE no longer crashes when debug app quits.

New in Xojo 2016 Release 1 (Jul 13, 2016)

  • Notable changes and new features include:
  • HiDPI and Retina support for OS X and Windows.
  • New Language Reference viewer.
  • Windows apps now require the new Universal Runtime be installed.
  • Many bug fixes and improvements.

New in Xojo 2015 Release 4.1 (Jul 13, 2016)

  • Bug fixes:
  • Compiler: Fixed a bug with incremental compilation where explicit type info on constants would get lost.
  • Framework » All: Fixed memory leaks with Xojo.Core.Date and Xojo.Core.TimeZone.
  • Framework » All: Fixed a crash that would occur if a control's LostFocus event closes the control that focus should have advanced to.
  • Framework » All: GenerateJSON now gives "" instead of null for empty string values.
  • Framework » All: Fixed an assertion with XojoScripts that have a subroutine named "main" that takes no arguments.
  • Framework » Windows: Listbox no longer leaks memory.
  • IDE » Miscellaneous: Error dialog now properly appears when trying to build using plugins that do not support the selected architecture.
  • Plugin SDK: Plugin controls that adjust the graphics origin and then draw a picture now appear correct in the IDE.

New in Xojo 2015 Release 4 (Dec 17, 2015)

  • Bug Fixes:
  • Build: Build progress dialog identifies Windows x86-64 builds in the same manner as OS X and Linux x86-64 builds.
  • Build Pipeline: The folder icon on OS X is high-resolution again.
  • Compiler: Operator_Lookup’s name can now be a Text parameter and not just String.
  • Compiler: Fixed a bug that could result in an error dialog being presented for every resource in the project that failed to be copied to the executable’s resources folder.
  • Compiler: Fixed a bug with the compiler’s handling of Boolean values when targeting 64-bit or ARM.
  • Compiler: Fixed a bug that would prevent extremely large structures from working when building for 64-bit or ARM.
  • Compiler: Fixed link errors regarding 'oleaut32' when building for 64-bit OS X.
  • Compiler: Fixed a crash that could occur when canceling compilation.
  • Compiler: Fixed building Windows console and service applications from a case-sensitive filesystem.
  • Compiler: Fixed a bug that could cause problems with incremental compiling if a class or module had “Using” clauses.
  • Compiler: Worked around a bug in 10.7 that causes a kernel panic during linking.
  • Database Plugins: MSSQLServerDatabase PreparedStatement now works properly for SQLSelect instead of always returning Nil.
  • Database Plugins: ODBCDatabase no longer crashes when retrieving large SQL columns.
  • Debugger: The debugger once again shows ByRef parameter values correctly.
  • Framework » All: XML exceptions no longer 'skip' exception handlers.
  • Framework » All: SMTPSecureSocket no longer fails with 503 TLS already negotiated when the server sends the capabilities list more than once.
  • Framework » Linux: Return menu shortcut now works, also now differentiates the "Return" key from the "Enter (keypad)" shortcut.
  • Framework » Macintosh (Cocoa): Xojo.IO.FolderItem is now usable on OS X without crashing.
  • Framework » Macintosh (Cocoa): Since drawers are no longer supported the “Drawer” choice for a Window type has been removed.
  • Framework » Macintosh (Cocoa): Text.Join now works correctly if the separator character is non-ASCII. This only affected OS X and iOS.
  • Framework » Web: WebMapLocation no raises an exception if the provider returns zero locations for an address.
  • Framework » Web: WebSessions no longer die when the client moves from network to network.
  • Framework » Web: WebPicture no longer results in Nil picture data when defined from a FolderItem.
  • Framework » Web: WebPicture no longer uses twice as much memory as necessary when defined from a Picture object source.
  • Framework » Web: External web control wrappers no longer cause JavaScript errors.
  • Framework » Web: Gradients now work properly on IE Edge.
  • Framework » Web: Setting a WebFile with the data from a MemoryBlock now works if the previous value was from a FolderItem.
  • Framework » Web: WebMapViewer no longer uses the deprecated Sensor url parameter.
  • Framework » Windows: (Windows/Linux) Picture.Open now honors JPEG's orientation flag and flips/rotates the picture as necessary.
  • Framework » Windows: RegistryItem.Value no longer fails to expand a REG_EXPAND_SZ field properly if its expanded size is greater than 260 characters. This change also separates the REG_SZ and REG_EXPAND_SZ KeyTypes. See docs for RegistryItem.KeyType.
  • IDE: Image in the icon editor shows a scaled thumbnail immediately instead of after you edit the icon set.
  • IDE: The UI correctly reflects that "This Computer" is selected when you load an example.
  • IDE: Removed blank menu items.
  • IDE: Images of all kinds draw their explanatory text in black not grey
  • IDE » Auto: Complete True and False appear in autocomplete suggestions following a pragma statement.
  • IDE » Auto: Complete Control array names now autocomplete in code editors.
  • IDE » Auto: Complete Structures autocomplete beyond the first level when you have structures that contain structures.
  • IDE » Auto: Complete Image Set names autocomplete where expected.
  • IDE » Build Automation: Copy Files Steps copy to the correctly named directories for Windows builds whether you use build folders or not.
  • IDE » Code Editor: Bookmarks and break points no longer get dropped when you delete whole lines prior to the bookmark / breakpoint.
  • IDE » Code Editor: Index parameter on control arrays is no longer reported as an unused local variable.
  • IDE » Code Editor: Deleting a group of items now resets the selection.
  • IDE » Code Editor: Fixes to the IDE restored typing speed
  • IDE » Code Editor Make the syntax help area at the bottom of the code editor scrollable when necessary.
  • IDE » Code Editor: When editing an IDE build script (Insert > Build Steps > Script) pressing CMD+UpArrow, CMD+DownArrow, home or end no longer causes an exception.
  • IDE » Code Editor: Code editor indents as expected when you add code to a line that starts as if then to make it a one line if statement.
  • IDE » Code Editor: Members that are private now only show in autocomplete when in scope/accessible.
  • IDE » Code Editor: Typing speed should be back to normal (if not better than it has been recently).
  • IDE » Code Editor: Use of proportional fonts (like System 0) in the Code Editor no longer lead to strange insertion point positions.
  • IDE » Code Editor: Spaces are now trimmed from lines when copying and pasting multiple lines.
  • IDE » Constant Editor: Turned off styles in the constant default value editor.
  • IDE » FileIO: Template projects will save with the default name of “untitled” instead of the name of the template project.
  • IDE » FileIO: Special characters, like umlauts, in the team name do not cause error in text projects.
  • IDE » Find & Replace: After reloading a web project, search properly searches all items.
  • IDE » Inspector: An illegal cast exception that could arise when naming methods and properties similarly on a web page has been fixed.
  • IDE » Inspector: WebSDK tray controls do not show the style property.
  • IDE » Inspector: Tightened up the spacing in the Compatibility Flags (on the Advanced Inspector) so they better fit on a normal Inspector widths.
  • IDE » Inspector: Changes to database properties for DataControl are now retained.
  • IDE » Inspector: Web Deployment popups are the right size and not truncated.
  • IDE » Inspector: Changing a web style name commits the change if you change the style name and do not press enter/return/tab and add an new style element.
  • IDE » Inspector: Changing the iOS debug device marks the project as changed.
  • IDE » Inspector: Pressing enter when you select the module name in the inspector no longer beeps on Windows OS.
  • IDE » Inspector: External Objective C methods retain all aspects of their declaration and no longer drop the selector when copying and pasting.
  • IDE » Inspector: Can now use Int64 with Inspector Behavior.
  • IDE » Language Reference: Language reference jumps to the correct location online or locally with the newer documentation sets.
  • IDE » Layout Editor: Fixed a regression with copy/pasting controls between layouts so that names are properly retained if possible or assigned a new name if necessary.
  • IDE » Layout Editor: When adding controls to layouts they will adopt the last used Scope setting as code items (constants, properties, methods, etc) do. However since controls only have Public and Private as options for scope if you set a code item to Protected then add a control it will default to Private. Subsequent items will also be added as Private.
  • IDE » Layout Editor: Tray controls can’t be parents of visual controls (this includes toolbars since they are kind of "special" in this regard).
  • IDE » Layout Editor: Locked positions for controls in web layouts properly save and restore.
  • IDE » Layout Editor: Paste of a copied page panel that has controls on different panels is handled correctly again.
  • IDE » Library: Fixed up ordering and grouping of items in all Library set ups to make them more consistent from project type to project type.
  • IDE » Miscellaneous: Custom properties on menu item subclasses now show in the Inspector.
  • IDE » Miscellaneous: Toolbar (Desktop) is now properly compiled so that you can create classes that subclass it.
  • IDE » Miscellaneous: Binary project files (and by extension XML) write out tab order for non-UI controls in the same manner as text projects do: all write this as -1.
  • IDE » Miscellaneous: Tab names stay up to date with the item name as it’s changed.
  • IDE » Miscellaneous Undo entry after drag and drop now correctly displays “Drag & Drop”.
  • IDE » Miscellaneous: Text on the dialog shown when creating a control set is now correct.
  • IDE » Miscellaneous: Any time ChrB(0) is sent to a DebugLog, it is replaced by a space to ensure proper log display.
  • IDE » Miscellaneous: PSD's import with their transparency into the File Type Set editor.
  • IDE » Miscellaneous: Fixed a NilObjectException that cold occur when pressing stop while in the middle of sending to a remote stub.
  • IDE » Miscellaneous: Require UTI's to use the correct character set but does NOT enforce the basic style (reverse domain name).
  • IDE » Miscellaneous: Right clicking on a row in the Errors panel no longer causes an exception in some circumstances.
  • IDE » Miscellaneous: Cancelling the run of a web app when the dialog asking if you want to keep waiting pops up no longer causes an exception.
  • IDE » Miscellaneous: Cancelling an update that is in progress no longer causes an exception.
  • IDE » Miscellaneous: Remaining activations message no longer shows "%1 remaining" but the actual number of remaining activations.
  • IDE » Miscellaneous: MP4 files, when dragged into a project, are handled as video, not audio. Projects with existing items that are shown as MP4 audio are not modified.
  • IDE » Miscellaneous: File Type Sets Editor now resizes appropriately when initially opened.
  • IDE » Miscellaneous: Breakpoints and bookmarks save and restore more accurately.
  • IDE » Miscellaneous: Fixed an issue where the UTI editor would have focus rings that bleed into unselected areas.
  • IDE » Miscellaneous: Tab order on an individual File Types UTI pane is more sensible.
  • IDE » Miscellaneous: Closing one of many Workspace windows on a dirty document no longer prompts to save when you close the first window. Instead you are prompted to save when you close the last window.
  • IDE » Navigator: Inappropriate Cut/CopyDelete/Etc no longer appear for menu items in the Navigator.
  • IDE » Navigator: Tooltips work more consistently in the Navigator.
  • IDE » Navigator: Numeric constant icons now show as the “.01” icon in the Navigator.
  • IDE » Navigator: Fixed cosmetic issue in Navigator where fragments of the second line of a multiline value would sometimes show.
  • IDE » Navigator: Adding an event to an item that is shown as a result of the filtering will clear the filter and reveal the newly added event so you can edit it.
  • IDE » Navigator: It is no longer possible to insert a container control into a console project.
  • IDE » Project Editor: Badging of controls scope is consistent with what’s done for code items like methods and properties.
  • IDE » Scripting: ProjectItem IDE Script method returns the full path within the project to the currently selected project item.
  • IDE » Scripting: Toolbar on Script Editor window properly shows as active and enabled as appropriate.
  • IDE » Web Page Editor: The IDE's representation of how a browser will draw a multiline label is more accurate, although it may still vary from what different browsers will do.
  • IDE » Web Page Editor: When you edit a WebRadioGroup, WebToolbar and WebSegmentedControl and select an element the Inspector is immediately made visible.
  • IDE » Window Editor: The default events for layouts and containers is the Open event and it will be selected when adding events if it has not been added already.
  • Miscellaneous: iOS ImageMaker utility image exports now use filenames for App Icons and Launch Images that include the size and scale. Also updated text instructions, added About dialog, and auto-select all sizes for export.
  • Miscellaneous: Windows installers no longer run on Windows XP.
  • Remote Debugger Stub: Empty menu items have been removed.
  • Changes:
  • Compiler: Added a TargetWindows constant that evaluates to True when running on Windows.
  • Compiler: Warning message about suspicious use of Declares has been updated to be clearer about what is being reported. It now report with a message like the following: “The method "foo" in User32.dll" does not appear to be available on OS X” The specific method, library and target are used in the message.
  • Framework » All: ListBoxes now support up to 256 visible columns.
  • Framework » All: SQLiteDatabase updated to SQLite version 3.9.2.
  • Framework » Web: WebFile and WebPictures now use ETags in addition to modification dates for caching.
  • Framework » Web: Removed IE8/ExCanvas support from WebGraphics.DrawString.
  • Framework » Web » Frame: The web framework now recognizes the Epiphany browser on Raspberry Pi.
  • Framework » Web » WebButton: WebDragItem now has OriginX and OriginY properties which indicate the X and Y coordinate within the Sender WebControl where the drag began.
  • IDE » Code Editor: Changing a plain property to a computed property creates the computed property with the same scope as the original.
  • IDE » Code Editor: Code editor tip area shows signature + description if there is one.
  • IDE » Inspector: Build Settings Command Line property is now multiline.
  • IDE » Inspector: Made it so it’s much harder for users to overlook the list of missing interfaces a class may be implementing by listing them first, in red, with a tag that says "missing”.
  • IDE » Layout Editor: Controls that have a hidden attribute no longer show in the Project Controls section of the Library.
  • IDE » Miscellaneous: Make it so Cmd+Opt+digit are assigned in successive order to IDE scripts added to the IDE Scripts menu.
  • IDE » Miscellaneous: Close button on issue resolution dialog becomes the default once all items are resolved.
  • IDE » Miscellaneous: When renaming a class external item supers are also renamed and the Navigator is updated.
  • IDE » Miscellaneous: Newly added labels now default the Transparent property to True.
  • IDE » Miscellaneous: Interface list will resize itself up to 75% of the window height that its being opened on if you have not resized it. If you stretch it larger (width and height) it will reopen at a max of the window height and width.
  • IDE » Miscellaneous: There is a new applies to "NONE" so you can disable a step without having to drag it out of the build step list.
  • IDE » Navigator: Filtering shows results ordered by how closely an item matches the given filter string based on the Levenshtein distance of the match from the filter string.
  • IDE » Project Editor: The Description property in the Inspector is now multiline.
  • IDE » Web Page Editor: The Target field of a WebToolbar container item now uses a PopupMenu to select containers from the project.
  • IDE » Window Editor: Each tab of a tab panel can now be set using a constant to allow for localization.
  • Miscellaneous: iOS ImageMaker now allows you to drag PNG images onto the App Icon Canvas.
  • New Items:
  • Database Plugins: Added MySQLCommunityServer.SecureAuth property which is True by default. This property allows users to authenticate using old password hashes (i.e. pre-4.1.1 authentication protocol) if needed.
  • Framework » All: Added the CGFloat data type, which is aliases to Single on 32-bit builds and Double on 64-bit builds. This serves as a transitionary type until only 64-bit iOS and OS X builds are supported. At that point, CGFloat will be deprecated and Double should be used in its place.
  • Framework » All: Added CharacterSpacing property to Graphics class for Desktop apps. This property is expressed as a percentage of spacing between characters. Positive and negative values are accepted.
  • Framework » Web: Web Text Controls now have a TextAlign property. Valid values are Default (Inherit from parent), Left, Center and Right.
  • IDE: Image sets are now available in desktop projects.
  • Docs and Examples:
  • Examples: Added Examples/Advanced/MemoryBlock/FastStringAppend example.
  • Examples: Removed extra MenuItems from Window menu in WindowMenu example to fix an exception.
  • Language Reference » Documentation: Updated Color page in Dev Center with missing methods and information.
  • Language Reference » Documentation: Corrected sample code on VirtualVolume page.
  • Language Reference » Documentation: EasyTCPSocket.Error and EasyUDPSocket.Error links now go to the correct pages.
  • Language Reference » Documentation: Fixed typo in SQLiteDatabase.Backup sample code.
  • Language Reference » Documentation: Added HttpOnly parameter to WebSession.Cookies.Set page.
  • Language Reference » Documentation: Removed unnecessary known issue from Split page.
  • Language Reference » Documentation: MenuItem page now more clearly shows properties that are design-time only and has individual pages link to MenuItem.KeyboardShortCut, which is what you use to change these values at run-time.
  • Language Reference » Documentation: Updated search keywords so that searching the Dev Center for full namespace (such as Xojo.Net.HttpSocket) now displays HTTPSocket in the auto-complete.
  • Language Reference » Documentation: Corrected sample code on TextInputStream page.
  • Language Reference » Documentation: Updated IDE_Script page in wiki to refer to IDE Scripting sections in Xojo Dev Center.

New in Xojo 2015 Release 3.1 (Nov 17, 2015)

  • Bug Fixes:
  • Build: Fixed a bug where generating code for 64-bit or ARM would fail on Windows but think it succeeded.
  • Build: IDE no longer raises an exception when compiling when there is a conflict between a type that would be import by a Using clause and a type in user code.
  • Compiler: Fixed an assertion that would occur when a script assigned to and read from a property defined in the context object.
  • Framework » Web: WebRadioGroups now work in 64-bit apps.
  • Framework » Web: Javascript error dialog appears in front of all controls again.
  • Framework » Web: Fixed a NilObjectException that could occur when Picture/WebPicture was used on a subclass of WebControl.
  • Framework » Windows: Fixed a regression with threads that could lead to failed assertions in RuntimeThread.cpp.
  • Framework » Windows: Calling ShowModal on a OpenDialog, SaveAsDialog, or SelectFolderDialog now presents the dialog as a modal window again (regression in 2015r3).
  • IDE » Database Editor: Creating a new SQLite database from Insert->Database->New SQLite Database, now works again.
  • IDE » FileIO: File Type Set UTIs are correctly retained by the IDE when saving Text projects.
  • IDE » Layout Editor: Dragging any of the subclasses of SSLSocket (HTTPSecureSocket, SMTPSecureSocket) that have folder item properties onto a layout no longer causes a compilation error.
  • IDE » Scripting: Using a build script correctly updates the build window caption.
  • 12 Bug Fixes
  • Changes:
  • IDE » Code Editor: Optimized menu and toolbar processing to improve performance of typing in the Code Editor.

New in Xojo 2015 Release 3 (Oct 20, 2015)

  • Bug Fixes:
  • Build If an external IDE script cannot be found the IDE will, when it tries to run that step, show a warning and cancel the build.
  • Build ICNS files are written using PNGS for all sizes.
  • Compiler Instead of asserting, an error is now reported if an enum contains a string value.
  • Compiler Compiler: Integer constants without an explicit type are now treated as Integer instead of Int32.
  • Compiler Fixed a crash in the compiler when empty parenthesis were used as an expression.
  • Compiler Fixed a crash with enumerations that have an invalid underlying type.
  • Compiler Fixed a crash that would occur when using Mod where the second operand was zero.
  • Compiler Fixed a handful of crashes that could occur if a class inherited from itself.
  • Compiler Fixed a crash when an invalid value was entered into the Implements field of the method editor.
  • Compiler Fixed a crash when there was a method with multiple parameters marked Extends.
  • Compiler Constants referring to other constants now resolve using the proper name lookup rules.
  • Compiler Fixed a crash that could occur with enumerations in rare cases.
  • Compiler Fixed a crash when a class has a superclass that implements something that is not an interface.
  • Compiler Fixed the class interface aggregate cycle checking to be correct in all cases.
  • Compiler Fixed a crash that could occur if the underlying type of an enumeration was an array.
  • Compiler Fixed a crash that could occur if a parameter was specified to be ByRef and ParamArray.
  • Compiler Fixed a crash that could occur when #If blocks had a conditional value that didn't evaluate to a boolean constant and there was an #ElseIf.
  • Compiler Fixed a failed assertion that could occur if a structure field had an unresolved type that happened to have the same name as another non-type symbol.
  • Compiler Fixed the alignment of 64-bit integers inside of naturally aligned structures.
  • Crashes & Assertions » Crash Compiler: Fixed a bug where applications would crash if an exception was raised through a very large function.
  • Crashes & Assertions » Crash Fixed a crash that would occur if RuntimeExcerption.Stack was accessed from a binary lacking function names.
  • Database Plugins ODBC Plugin: Binding string of type ODBC_TYPE_LONGSTRING no longer truncates string to 2 characters.
  • Database Plugins The DNS chooser dialog now shows up again on OS X when the ODBCDatabase.DataSource is empty.
  • Database Plugins ODBC Plugin: Fixed a host of issues related to prepared statements: - Binding ODBC_TYPE_STRING/LONGSTRING now works properly - Binding empty strings now works properly - Fixed a potential memory buffer overrun with long sql statements, binding long strings, etc. - Improved error reporting for prepared statements - Updating Date values with Null is now possible
  • Debugger Can resize splitters in debugger whether the IDE is paused while debugging or not.
  • Debugger When starting the debugger the bottom pane, if open, will hide the bottom pane so the debugger can properly show.
  • Debugger Console Remote debugger Stub can be used from an SSH system and does not require the OS X Terminal app or xterm.
  • Debugger Running a web app no longer badges the IDE dock icon.
  • Debugger Debugger pane can be resized vertically as well as horizontally even when not viewing debugging data.
  • Debugger Properties exposed with Inspector Behavior (esp. Text) retain their values when set in the Inspector.
  • Framework » All Email attachments save as expected regardless of being base64 encoded or not. Only base64 encoded are decoded before saving.
  • Framework » All Variant's Int64Value now handles exponents.
  • Framework » All HTTPSocket, HTTPSecureSocket, SMTPSocket, SMTPSecureSocket now support longer username/password combinations for proxies and http authentication.
  • Framework » All WebListBox.LastIndex now defaults to -1 instead of 0.
  • Framework » All EmailAttachment now adds filename (Latin1 and UTF8) parameter to Content-Disposition attachment header if the attachment has its name property set.
  • Framework » All Xojo.Data.GenerateJSON no longer throws an InvalidArgumentException when passed empty text.
  • Framework » All Text variant comparisons with String, Integer, Double, etc. now works instead of raising a failed assertion.
  • Framework » All An of by one error in the index of method for the new MemoryBlock has been fixed.
  • Framework » All Int8 and Uint8 can be used with the Str function with and without format strings.
  • Framework » All GenerateJSON no longer throws an InvalidFormatException when passed a zero-length String.
  • Framework » All All: SMTP connections using STARTTLS have been refactored so that an intercepting insecure server cannot accept the connection.
  • Framework » All Windows/Linux: Subtracting or adding a DateInterval to a Xojo.Core.Date now properly modifies the significant fields of the date properly.
  • Framework » Linux Change the pace of the indeterminate progress bar to something a little slower.
  • Framework » Linux Built apps now look in the generic "Libs" folder for plugins and shared libraries if available.
  • Framework » Linux Using Xojo.Net.HTTPSocket in Console apps no longer crashes in Ubuntu 12.04 or older.
  • Framework » Macintosh (Cocoa) RadioButtons on TabPanels and PagePanels have the pre-2014r2 behavior again.
  • Framework » Macintosh (Cocoa) Fixed a crash that would occur when closing a fullscreen or split window on OS X 10.11.
  • Framework » Web WebRadioGroups are now the correct height in the browser.
  • Framework » Web Fixed a WebDialog refresh bug which caused WebLabels to render incorrectly when a dialog had been closed and opened again.
  • Framework » Web WebCanvas now has a DisableDiffEngine property.
  • Framework » Web Fixed a bug in WebListbox which made the use of external datasources using the DataCell interface fail. Added a RefreshCell method to allow pushing DataSource changes down to the browser.
  • Framework » Web WebListBox.LastIndex now gets set to -1 when DeleteAllRows is called, matching the desktop behavior.
  • Framework » Web Web: Fixed a bug which prevented IE11 and IE Edge from being detected properly.
  • Framework » Web Firefox and Internet Explorer 9+ will now play H.264 MP4 videos in their native players instead of using Flash.
  • Framework » Web Web: Fixed a bug which prevented gzip compression from being applied to http responses.
  • Framework » Web Web: WebTextField and WebTextArea now fire the TextChanged event when the text set in the inspector is cleared.
  • Framework » Web Internet Explorer 11 is recognized as a supported browser again.
  • Framework » Web » Frame WebHTMLViewer.URL no longer destroys the backing webfile if the encoding of the URL being set is not UTF8 and that's the only difference.
  • Framework » Web » Frame Closing a WebPage, WebDialog or WebContainer no longer shows an error about closing controls.
  • Framework » Web » Javascript WebSDK no longer overwrites the XojoCustom namespace if it already exists.
  • Framework » Windows Modernized Open/Save/Select dialogs (i.e. using Vista+ style dialogs instead of XP style). Note: setting the Cancel caption only works on Windows 7+.
  • Framework » Windows Adding a movie to a project no longer autoplays it.
  • Framework » Windows WebKit based HTMLViewer no longer increments the reference count of its CefBrowser when getting the Handle property.
  • Framework » Windows The GDI+ graphics functions now falls back on a generic MS Sans Serif font if an unsupported font was used (this fixes various issues like StringWidth returning 0).
  • Framework » iOS When you set the Value for a segmented control on iOS that item is now marked as selected so that other changes to the control, such as changing a caption, work as expected.
  • Framework » iOS You can once again use the Browse option selecting an image for an image view. On iOS it creates an image asset, not a picture, the same as if you dragged an image into the project.
  • Framework » iOS A segmented control with no segments no longer results in an error when you analyze the project.
  • Framework » iOS Changes to some enumerations for consistency: * iOSImageView.ContentsMode ENUMERATION renamed to be plural (ContentModes) * iOSProgresWheel.Shade ENUMERATION renamed to be plural (Shades) * iOSToolbar.Context ENUMERATION renamed to be plural (Contexts) * iOSDatePicker.DatePickerMode ENUMERATION renamed to iOSDatePicker.Modes (pluralized & renamed)
  • IDE Adding an event handler puts the focus on that item in the Navigator, or the last one if you add several at once, and this results in the code editor having focus so you can type immediately.
  • IDE Assets no longer silently reload if they have lost track of one of the images in one of the asset types.
  • IDE An error that could arise when you copied and pasted a property has been fixed.
  • IDE The feedback icon in the toolbar has been fixed.
  • IDE Deleting an event from a control set no longer causes issues after deleting it.
  • IDE Accented characters now work fine as project item names.
  • IDE » Auto Complete Toolitems on a Toolbar now autocomplete.
  • IDE » Auto Complete SQLiteDatabase on iOS no longer shows methods that apply to the non-iOS SQLiteDatabase in autocomplete.
  • IDE » Auto Complete Items that are not accessible for the project type are not shown by autocomplete.
  • IDE » Auto Complete Text constants are now shown in autocomplete.
  • IDE » Auto Complete All sortable array types show Sort and SortWith as possible autocompletion methods.
  • IDE » Auto Complete Autocomplete now shows a structure's ByteValue method.
  • IDE » Auto Complete Until keyword now autocompletes properly. Do loops are also closed in a more contextually sensitive way : * If you start the loop with DO it will be closed with "loop until” * If you start the loop with "do until" it will be closed with "loop"
  • IDE » AutoLayout Positioning controls in IOS using cursor keys no longer hangs the IDE.
  • IDE » AutoLayout Baseline constraints are not removed when you resize horizontally as they were in the example. They get revised to a top constraint if the height is changed.
  • IDE » AutoLayout Controls that have constraints that depended on a control that was being deleted were not be reset and would just be removed. This fix puts constraints back on to those affected controls.
  • IDE » AutoLayout Can set baseline constraints and set them relative to other controls baselines.
  • IDE » Code Editor The IDE no longer reformats method parameters when loading code.
  • IDE » Code Editor Code editor is active immediately after adding event handler.
  • IDE » Code Editor GoTo property with arrays now works correctly.
  • IDE » Code Editor Adding an event puts the focus in the event’s code editor.
  • IDE » Code Editor Option-return on OS X once again inserts a line continuation character.
  • IDE » Code Editor Enumerations only support the various integral types (integer, Uinteger, int8, uint8, etc).
  • IDE » Code Editor Constant name changes are property retained.
  • IDE » Code Editor Clicking elsewhere retains changes as expected.
  • IDE » Code Editor When you press shift + return there is always a new blank line added and the insertion point is on that new blank line.
  • IDE » Code Editor Scroll offsets are accounted for when the code editor canvas is asked for the rectangle for some text so the special characters palette and dictionary show up in the right spot.
  • IDE » Code Editor Selecting text and getting the OS X dictionary definition works again.
  • IDE » Code Editor Attributes and compatibility settings are NOT retained on a control instance placed on a layout. This make iOS consistent with desktop applications.
  • IDE » Code Editor Bug icons are centered using the same metrics as the hit boxes and line folding mechanisms.
  • IDE » Code Editor Shift-return to close a block thats opened with a select case is now correctly closed with "end select”.
  • IDE » Code Editor Minor typing change in the short summary for constants properties and methods so they consistently use “As”.
  • IDE » Code Editor Help Syntax in Code Editor displays the correct signature for the item the mouse is hovering over.
  • IDE » Constant Editor Dynamic constants of Text type now work.
  • IDE » FileIO Make it so when the IDE loads an old Binary or XML project the unnamed items that are in the project get loaded in a way a user can remove them. This mimics what occurs for text projects.
  • IDE » Find & Replace Capitalization on help tags for search fixed. Descriptions are accurate.
  • IDE » Find & Replace Find->Replace All no longer drops a default value on a property on a class/window/etc where it used to.
  • IDE » Find & Replace Finds using RegEx are shown correctly in the find panel.
  • IDE » Inspector Windows IDE: Tabbing through Inspector fields now shows the focus ring on PopupMenus and other controls that have such visual styles on focus.
  • IDE » Inspector Changing a description marks the project dirty so that it gets properly saved.
  • IDE » Inspector Fixed a bug where there were visual 'glitches' in the top 22 to 78 points of the window when the window was full screen or split screen.
  • IDE » Inspector The type field for method, enums, event definitions and properties no longer persistently shows the popup every time you press tab if you select on of the items from the list. A second tab will move to the next field.
  • IDE » Inspector Fixed labelling of the automatic cursor type so it's consistent across all web controls.
  • IDE » Inspector Inspector editors that use popups will only commit "changes" when you actually select a different item in the pop up. Selecting the same item no longer dirties the item and therefore the project.
  • IDE » Inspector Text properties, like the default value for text on an iOS Label, update when the only change is case.
  • IDE » Inspector Windows IDE: Fixed the random PopupMenus/ComboBox dropdown list widths in the IDE (for example the Scope Popup in the Inspector), mostly being way too wide.
  • IDE » Inspector You can now change the super class for all members of a control array.
  • IDE » Inspector A pasted font name “sticks” if it is one in the list (is available).
  • IDE » Inspector Text properties on control instances are set properly.
  • IDE » Inspector Made it so you can expose all kinds of integer properties that you could not before. The list now includes: * Integer, UInteger, Single, Double, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64 * String, Text * Color * Boolean
  • IDE » Inspector Control names changes are remembered when you click elsewhere or leave the name field in some other way.
  • IDE » Inspector IDE no longer raises an exception when field has been pasted into and loses focus.
  • IDE » Language Reference Reachability of the online wiki is no longer tested if you have the local reference selected as default.
  • IDE » Layout Editor Checkboxes in the IDE draw in all 3 possible states.
  • IDE » Layout Editor Applying a style to the toggled appearance of a web toolbar item now draws properly in the layout editor.
  • IDE » Layout Editor On Windows if you have a control array and clear the name from one member you no longer end up with an endless loop of messages saying the name cannot be blank.
  • IDE » Layout Editor Redrawing the web tool bar in the IDE is significantly faster.
  • IDE » Layout Editor Locking iOS controls on a layout is not an option as it completely messes up the IDE's constraint solving.
  • IDE » Layout Editor Auto-Layout delta offsets were being calculated incorrectly, sometimes causing a control to move on every click.
  • IDE » Layout Editor The Layout Editor no longer hangs if the width of the iOSTextArea control is narrower than the longest word.
  • IDE » Layout Editor Subclasses of iOS controls in the navigator drag like the super class does and when dropped are set up comparably.
  • IDE » Layout Editor Lines shows drag / grab handles all the time now including when vertical or horizontal.
  • IDE » Layout Editor Subclasses of iOS controls will not permit being resized in ways the base class cannot be resized.
  • IDE » Layout Editor Disabled debug logs about baselines that are no longer needed.
  • IDE » Layout Editor Controls in the Layout Editor Tray area no longer show top, left, width or height properties.
  • IDE » Layout Editor It is now possible to set up a split with tabs in either the main or detail area on a screen that is not large enough to see the entire iOS screen.
  • IDE » Layout Editor In the iOS Layout Editor, Labels are now drawn using System Bold or System Italic when specified.
  • IDE » Layout Editor Clicking from one tab to another tab in an iOS screen layout no longer drops changes made when viewing other tabs.
  • IDE » Layout Editor WebLabels with MultiLine=False and content which contains multiple lines now draw properly.
  • IDE » Layout Editor A group of controls can now be resized by any of the grab handles on any control in the group, rather than just the first.
  • IDE » Library Missing descriptions for Class, Interface, Module, Folder and generic object have been added.
  • IDE » Library Windows library description pane redraws cleaner without visual artifacts.
  • IDE » Menu Editor When editing a menu the index no longer shows -2147483648 in red (it shows nothing instead).
  • IDE » Menu Editor Plain text projects that have menu items subclasses in modules so they load the same as binary or xml would. This makes it not only legal to put a menu item super class in a module for vcp but now it works too.
  • IDE » Menu Editor You can set an icon on a submenu.
  • IDE » Miscellaneous Notes are not printed in color.
  • IDE » Miscellaneous A note that has _ as the very last character no longer causes issues when loading a text project.
  • IDE » Miscellaneous External items that are not missing will get examined for items to resolve and get resolved the same as internal items do.
  • IDE » Miscellaneous With the Project Chooser window open most menu items are disabled.
  • IDE » Miscellaneous IDE will only error if in fact it cannot remove the damaged license key file.
  • IDE » Miscellaneous Language Reference window retains tool bar setting from one open instance to another and run to run.
  • IDE » Miscellaneous Changes in the case of a control name are retained. If a control is a member of a control set all members are updated.
  • IDE » Miscellaneous If you open the icon editor for the app icon (any actually) and do nothing but press OK the project is not marked as having changes since nothing changed.
  • IDE » Miscellaneous Progress bar no longer positioned oddly when starting a debug session.
  • IDE » Miscellaneous Pressing enter in the file type editor no longer causes an exception.
  • IDE » Miscellaneous Can define most integer property types for use with Inspector Behaviour.
  • IDE » Miscellaneous More updates to text file saving. There are still some changes that will occur like updating editor types in the behaviors sections. These are because old text files left out information and opening a project may update them. The best way to force as many of these to occur at once so your subsequent source control commits are less noisy is to: 1) Make one change (add a space and remove it to one piece of code) 2) Do an Analyze Project and save 3) Commit with all changes and subsequent commits will have a lot less noise as the project has been updated
  • IDE » Miscellaneous Tray-only controls do not show size and positioning properties in the Inspector.
  • IDE » Miscellaneous Removing one member of a Control Set no longer removes the event list from the Navigator.
  • IDE » Miscellaneous Projects of all kinds now print all their members.
  • IDE » Miscellaneous Clarified the explanation on the preference setting for asking about overwriting files when building so its clear this setting only applies when not using the build folders.
  • IDE » Miscellaneous The insert menu no longer holds the wrong items when you switch from one project type to another.
  • IDE » Miscellaneous Illegal characters in the name of the app to be debugged are stripped out (so the app CAN be debugged). Illegal characters in the name of the app to be built will cause a build to fail as the name is illegal on the target platform.
  • IDE » Miscellaneous Autocomplete works in the local language reference.
  • IDE » Miscellaneous You can no longer create multiple event definitions with the same name.
  • IDE » Miscellaneous Copy Files build step computes relative paths correctly on all platforms. It may use an absolute path on Windows if the project and file are on different volumes.
  • IDE » Miscellaneous Editing a File Type/UTI now marks the project as changed.
  • IDE » Miscellaneous You cannot define a property that duplicates the name of a an existing const property or event.
  • IDE » Miscellaneous Switching the iOS device also sets the architecture popup accordingly.
  • IDE » Miscellaneous An NilObjectException that could occur when executing a compound action has been fixed.
  • IDE » Miscellaneous Event handlers a no longer silently dropped from Text project format.
  • IDE » Miscellaneous IDE not handling the new targets caused it to not grab the right built application name and assert.
  • IDE » Miscellaneous An exception that could occur when selecting one of the build settings and trying to print has been fixed. Doing this now will print the entire project.
  • IDE » Miscellaneous Images should now save and reload from partial paths that can be preserved cross platform and even between machines.
  • IDE » Miscellaneous Adding multiple using clauses to a project item will name them with unique names.
  • IDE » Miscellaneous A NilObjectException that can occur using the goto location panel and navigating into a menu has been fixed.
  • IDE » Miscellaneous Fixed a situation where if you used floating palettes then the IDE would be resized not based on what palettes were visible when a new project was created but based on the size the palettes would have if they were visible.
  • IDE » Miscellaneous Fixed a bug that could change the type of a constant from integer to blank when you clicked on it.
  • IDE » Miscellaneous The IDE no longer causes an exception when the size of columns uses measurements that do not work for a desktop listbox. For example, measurements like 60px (which work with WebListBox) do not work for the desktop.
  • IDE » Miscellaneous Updated the Property/Text icon in the Navigator with a slightly thicker T.
  • IDE » Miscellaneous String property editor recognizes changes that are from other means like paste and drag and drop and commits those changes properly.
  • IDE » Miscellaneous Cleaned up extraneous separator lines in the View and Window menus on Windows and Linux.
  • IDE » Miscellaneous An illegal cast exception when adding a computed property with a name that duplicated that of an existing pair of methods has been fixed.
  • IDE » Miscellaneous Descriptions on notes in plain text format save and restore as expected.
  • IDE » Miscellaneous An old oversight that would permit ‘,’ and ‘=‘ in the name of the note has been corrected so they can be used without causing further issues.
  • IDE » Miscellaneous "Text as String" in a plugin parameter list no longer gets renamed.
  • IDE » Miscellaneous Closing the last altered project window on Windows when you have the LR open no longer asks you twice if the "When closing the last window quit" option is enabled. Closing the last altered project on OS X no longer closes the LR as well since it handles the app running when no documents open differently than Windows.
  • IDE » Miscellaneous Trailing spaces on lines are not stripped.
  • IDE » Miscellaneous Changes to web styles save properly in text projects.
  • IDE » Miscellaneous Selecting Find Implementors from the contextual menu of an Interface no longer does a second search for the Interface name.
  • IDE » Miscellaneous Add event window has a useful minimum size.
  • IDE » Miscellaneous Added shortcut key for Analyze Item on Windows and Linux (CONTROL-SHIFT-K).
  • IDE » Miscellaneous Using the IDE scripting editor no longer causes a NilObjectException.
  • IDE » Miscellaneous You now get a warning when plist files in the project cannot be found.
  • IDE » Miscellaneous When quitting the IDE, each open project with unsaved changes is prompted to save, rather than just the first one with unsaved changes.
  • IDE » Miscellaneous Can no longer insert a container control into a console project.
  • IDE » Miscellaneous iOS projects can no longer have databases inserted into them.
  • IDE » Miscellaneous Remote Debug Hosts list no longer beeps when you delete a remote host using the keyboard.
  • IDE » Miscellaneous Preferences for setting the Windows AutoQuit functionality is now limited to running on Windows.
  • IDE » Miscellaneous iOS projects also require a bundle ID.
  • IDE » Miscellaneous Adding an image to a project named "backdrop" (or any other Window property) and trying to assign it to a control no longer causes compile errors or unexpected runtime behaviour.
  • IDE » Miscellaneous iOS projects no longer incorrectly show error about enum type name.
  • IDE » Miscellaneous A NilObjectException while determining the folder to cache intermediate code in no longer causes the IDE to assert.
  • IDE » Miscellaneous Updated menu items which point to the New & Classic Framework references.
  • IDE » Miscellaneous Fixed a NilObjectException in the IDE when selecting the Constants group row in an external item.
  • IDE » Miscellaneous On OS X if the volume a project is loaded from goes offline when you have the project open the IDE won’t assert when you try to save it. Windows and Linux didn't experience this particular assertion.
  • IDE » Miscellaneous No longer raises an OutOfBoundsException when you make control sizes really large - and it will actually clamp the size to the maximum (32767).
  • IDE » Miscellaneous A missing external item no longer causes an OutOfBoundsException if it’s missing when the project is reopened.
  • IDE » Miscellaneous An OutOfBoundsException in the code editor has been fixed.
  • IDE » Miscellaneous Restore the behaviour where the first paste of an external item would paste an external (as long as no other external item with that name already existed) and subsequent ones would bring the item in as internal copies. It does this so we avoid have many external items all pointed at the same file on disk (which would be confusing as heck and cause other problems).
  • IDE » Miscellaneous Warnings in encrypted items are again ignored. This was a regression from 2015r2.2.
  • IDE » Miscellaneous Enter Full Screen no longer shows up twice on OS X 10.11.
  • IDE » Miscellaneous Windows in the layout editor don’t draw disabled on OS X 10.11.
  • IDE » Miscellaneous IDE no longer runs out of memory when there is a very long list of missing items to resolve.
  • IDE » Miscellaneous Several spots in the IDE that were not looking up the dynamic constant have been fixed so they appear closer to how they will at runtime.
  • IDE » Miscellaneous Make it so a declare like STATIC foo is treated similarly to DIM and doesn't strip out empty brackets.
  • IDE » Miscellaneous UTI’s that an app accepts are NOT marked as exported any longer (which was horribly wrong).
  • IDE » Miscellaneous A NilObjectException that could occur when trying to replace a property value on an object on a layout no longer occurs. Such a change isn’t actually permitted and the replace will fail . You have to change the name of the property on the base class.
  • IDE » Miscellaneous WebToolbars that are smaller than the total width of all items on them no longer cause errors when trying to edit them.
  • IDE » Navigator Controls in arrays sort lexically by name then by control array index. Controls that have been duplicated many times will sort similarly by the base name then the trailing numeric portion.
  • IDE » Navigator The command bar + (right above the editor space) will properly update to allow or disallow the "Event handler" item in its menu when you change the super of a class selected in the Navigator.
  • IDE » Navigator Cmd-double-click on an array property in the code editor will now jump to its declaration.
  • IDE » Navigator Class Interfaces can no longer be dragged onto an iOS layout.
  • IDE » Navigator Filtering of items now properly includes external items.
  • IDE » Navigator Navigator contextual popup menu appears in the right spot.
  • IDE » Navigator Updated the Pointer icon with one that's more consistent with the other property icons.
  • IDE » Navigator Make it so all integer property types have integer icons (missing were the 8 and 16 bit sizes).
  • IDE » Navigator When you delete an event handler from a control, searching for text contained in that event handler no longer shows that event.
  • IDE » Navigator WebImageView, WebButton and WebRadioGroup icons now show properly in the Navigator.
  • IDE » Profiler Profile data is no longer lost as profile editors close.
  • IDE » Project Editor Items that are multiselected have their property lists properly merged to show only those properties that are common to all selected items
  • IDE » Project Editor Changes to web styles save properly with Text projects.
  • IDE » Rendering Using an enum in the Inspector Behaviour for Web controls functions properly.
  • IDE » Rendering No longer creates a warning for a property named NotifyControls for WebPages that do not have any WebControl subclasses on them.
  • IDE » Rendering No longer get a compile error when adding a Xojo.Core.Timer to a web page.
  • IDE » Report Editor Using a picture with the same name as a report segment (header, footer) or report property no longer causes an error when trying to run or compile.
  • IDE » Scripting Autocomplete in an IDE script no longer causes an exception.
  • IDE » Scripting IDECommunication IPC Socket now closes properly every time the IDE exits.
  • IDE » Scripting Windows Copy Files Steps create any required subdirectories as expected and handle both LFS (C:\ style) and UNC paths (\\server\path style).
  • IDE » Style Editor Updated the web style color picker values titles to # and % since you pick either a value (#) or a percentage (%). This replaces the "Hex" title which is misleading as you only entered hex in one portion of the editor when editing values.
  • IDE » Style Editor Can edit the border size field using arrow keys, delete, backspace, etc.
  • IDE » Style Editor Style Editor refreshes and doesn’t wipe out colors as set.
  • IDE » Updater Labels on the update window are now the same color as the background on Windows and Linux.
  • IDE » Web Page Editor CueText on WebSearchField shows correct localized value in the IDE.
  • IDE » Web Page Editor Changes made using the popover are properly retained so they work with Undo and mark the project as modified.
  • IDE » Web Page Editor The inline editor for a listbox can scroll columns horizontally (so if you have a lot of them you can get to them all). The editor doesn’t try to exactly mimic the column widths you have set up as this can result in columns that cannot be edited. If the column is > 60 pixels wide we use it as set but if < 60 we force the editor’s representation to be 60 pixels so you can edit every column.
  • IDE » Web Page Editor Accessing a page with a toolbar and an item on it no longer causes the project to be marked as changed despite nothing having changed.
  • IDE » Window Editor If you delete an image that’s used as a window background, the window redraws without the image as expected.
  • IDE » Window Editor Popovers have a close icon on them.
  • IDE » Window Editor Scrollers redraw themselves in the correct orientation as they are resized in the IDE.
  • IDE » Window Editor If you create a popup menu and set the initial value to a bunch of #constant style values the IDE will draw the constants correctly and not show "#constant" instead.
  • IDE » Window Editor When multiple items are selected the position properties (top, left, width & height) items will show as "Multiple" if several are selected. Tabbing into / out of such an item has no effect. If you select and change the value it will take effect.
  • IDE » Window Editor Containers have consistent property groupings in the Inspector whether its a subclass or instance on a window.
  • Plugin SDK REALstandardGetter and REALstandardSetter work with all intrinsic types.
  • Plugin SDK Fixed a bug where REALGetPropValueObject would return false even though it succeeded.
  • Plugin SDK REALLockText and REALUnlockText now function properly.
  • Plugin SDK Fixed the currency prop value getters and setters.
  • Plugin SDK Shared Methods and Properties now work with plugin controls, instead of causing a runtime error.
  • Remote Debugger Stub Console Remote debugger Stub can be used from an SSH system and does not require the OS X Terminal app or xterm.
  • Remote Debugger Stub Console Remote debugger Stub can be used from an SSH system and does not require the OS X Terminal app or xterm.
  • Reporting Round Rectangles on reports no longer appear as ovals.
  • Changes:
  • Build Windows/Linux: built apps that include resources now creates a Resources folder which includes the app name in its folder name, just like the Libs folder. You can also rename it to just "Resources" after the fact, and the framework will find it just like the Libs folder.
  • Build Using Xcode 7 and its iOS Simulator is supported now.
  • Compiler The Inline68k keyword has been removed. This has done nothing since support for compiling Mac 68k code was dropped and existed only for backwards compatibility.
  • Compiler Upgraded to LLVM 3.6.
  • Compiler The compiler can now build for 64-bit executables for Windows and OS X.
  • Compiler The Linux IDE can now build for Linux x86-64 and Linux ARM.
  • Compiler Deprecated the WindowPtr and Short data types.
  • Compiler The version of LLVM used by XojoScript is now LLVM 3.7.
  • Compiler The compiler no longer creates an empty libs folder if there are no plugins present.
  • Compiler Declares to non-system libraries work now.
  • Framework » All Removed the deprecated and non-functional OpenREALDatabaseOldFormat function.
  • Framework » All The socket on Windows has been updated to use Winsock2.
  • Framework » Linux Reduced thread CPU usage on Linux for mostly idle threads. This difference will most likely be visible on single core processors, but this fix also benefits multi-core and other platforms.
  • Framework » Linux Ticks is now guaranteed to be a monotonic clock.
  • Framework » Web Converted web framework to use the new Xojo framework JSON methods.
  • Framework » Web WebSDK controls can now be integrated into the Xojo Drag and Drop system.
  • Framework » Web Internet Explorer 8 has been removed from the list of supported browsers as it limits our ability to provide updated capabilities and security patches.
  • Framework » Web Minimum browser requirements have been updated to: Safari 6.1+ Firefox 17+ Chrome 37+ IE9+
  • Framework » Web Added support for detecting the IE Edge browser using WebSession.EngineType.EdgeHTML enumeration.
  • Framework » Web Updated web framework to allow the Raspberry Pi Epiphany Web Browser.
  • Framework » Web » Frame The XojoCloud Firewall class is now available in Linux Console and Linux Web Apps so users can create helper apps which have the power to open/close firewall ports if necessary.
  • Framework » Windows Message logging has had speed improvements: 1) a queue of messages has been added so the app being debugged can write at full speed and the IDE messages pane will be updated from that instead of trying to keep up in real time. 2) the scrollback area only retains the last 5000 items at most 3) the queue may be flushed out if it gets more than 1000 messages behind
  • Framework » iOS iOSToolButton.Type enum has been renamed to iOSToolButton.Types (note the extra ’S’). This will break existing code that uses this enum.
  • IDE Currency has its own special icon in the navigator.
  • IDE The Mac Creator code is not used by anything on OS X since 10.6 / 10.7. It will be preserved if set but is not used when compiling the application.
  • IDE » AutoLayout It is now possible to set a control’s width = its height and vice versa. Note that you can cause yourself a lot of problems should you set width = height and height = width, so don’t do that.
  • IDE » Code Editor You can drag a control instance into the code editor from the navigator and the name of the control will be inserted at the cursor position.
  • IDE » Code Editor &u literals are now colorized similarly to string/text literals.
  • IDE » Code Editor Added a preference that allows people to turn autocomplete off.
  • IDE » Layout Editor The description area below the library can now be scrolled.
  • IDE » Layout Editor Grab handles are now on control frames instead of outset slightly.
  • IDE » Licensing Dates are shown like Aug 5, 2015 instead of the ambiguous numeric form.
  • IDE » Licensing Changed caption of the download button on the license pane of the About window to Update.
  • IDE » Miscellaneous The replacement of the old File Type set with the UTI pane removes the long deprecated File Type from the editor. OS Type can be set (for legacy purposes) but its use is strongly discouraged by Apple.
  • IDE » Miscellaneous Main toolbar now has tooltips (OS X only).
  • IDE » Miscellaneous Compatibility flags allow for setting of project type and 32 / 64 bit in the Inspector.
  • IDE » Miscellaneous Analyze one item now has its old Cmd+Shift+K shortcut (ctrl+shift+K on Windows and Linux).
  • IDE » Miscellaneous Made it so if you have an item open as the top level item in a tab and you delete it in another tab, the open tabs showing it are closed.
  • IDE » Miscellaneous Analysis warning for name lookup differences is disabled in new projects by default.
  • IDE » Miscellaneous Feedback report bodies are started with a line that says what version of the IDE is in use. This is the same string used in the about window.
  • IDE » Miscellaneous Web projects have architecture setting for OS X targets.
  • IDE » Miscellaneous Cocoa x86_64 is now an allowed build script build target.
  • IDE » Miscellaneous Byte and short now have proper icons based on their type (integer) and can be used as properties that are exposed to the inspector behavior and will be set correctly using the mass property setter.
  • IDE » Miscellaneous Project Chooser Dialog caption updated with more descriptive text. Button captions reverted back to OK and Cancel
  • IDE » Miscellaneous Added iOS QuickStart to the Help menu.
  • IDE » Miscellaneous Project > Go To Search was never used so it has been removed.
  • IDE » Miscellaneous Missing file dialog list is now multiselectable.
  • IDE » Miscellaneous Binary projects now specifically use 32 bit sized values.
  • IDE » Navigator Generic icon in the Navigator now has a blue cube instead of a green one.
  • IDE » Scripting Added new IDE Script BuildApp constants (for iOS Universal app, 64-bit).
  • IDE » Scripting If you select an external Objective-c method and use the IDE script command to report its type you will get "External Objective-C Method" returned.
  • IDE » Scripting IDE: App Nap is now disabled while the IDECommunicator is connected.
  • IDE » Style Editor Adding a component to a web style scrolls to the newly added item.
  • Miscellaneous Windows Setup file now includes a correct File Version info, instead of 0.0.0.0.
  • New Items:
  • Build Build folder names have been updated. Existing ones have not been changed to avoid breaking existing build scripts The names are now: Linux Linux 64 bit

New in Xojo 2015 Release 2.4 (Aug 18, 2015)

  • LibICU now properly loads for apps run on some distros with a minor version number attached (examples include: OpenSuse, Ubuntu 64-bit, CentOS 7).

New in Xojo 2015 Release 2.3 (Aug 12, 2015)

  • Bug Fixes:
  • DataControl no longer raises a failed assertion when the control is destructed.
  • Fixed Auto's handling of opaque colors so that it no longer corrupts the information.
  • All Xojo.Introspection.PropertyInfo.Value's getter now works correctly on iOS.
  • No longer asserts when app is run on a distro that includes an ICU library with a minor revision number attached (like OpenSUSE 13.1).
  • Fixed a crash that could occur if a control's width or height managed to become less than or equal to zero.
  • Fixed a bug in the Xojo Cloud uploader which caused uploads to hang at the last moment.

New in Xojo 2015 Release 2.2 (May 26, 2015)

  • Bug Fixes:
  • Compiler A mixture of UI and non-UI controls no longer causes a situation where an additional UI control would result in some non-UI controls being rendered to the compiler.
  • Database Engine SQLiteDatabase: Binding Text values to PreparedStatement no longer inserts incorrect/random data.
  • Debugger Fixed object IDs in the debugger being identical.
  • IDE » Miscellaneous Fixed an error where it was possible to have a change to a text (VCP) project not saved when editing an event handler.
  • IDE » Miscellaneous Fixed an IDE crash that could sometimes occur when deleting a ContainerControl from the project.
  • Web » Frame Web: Fixed a regression where App.Port and App.SecurePort returned the IDE values when queried in the App.Open event of a Standalone app that had the --port or --secureport property set on the command line.

New in Xojo 2015 Release 2.1 (Apr 30, 2015)

  • Bug Fixes:
  • Compiler Error dialog no longer blinks into existence and then out on Windows.
  • Compiler Fixed a failed assertion that occurred when building a project that had a database in it.
  • Framework » iOS All: Fixed a bug where comparing an empty Text against an empty Text literal would return an incorrect result.
  • Framework » Macintosh File types are no longer written with everything as “exported types” which causes some file types to not get recognized by OS X.
  • Framework » Windows Non-WAV based sound files dragged into the project now Play properly again.
  • IDE » Layout Editor Image sets now properly reload into the TabView editor.
  • IDE » Layout Editor TabView icons which use Image Sets now render at the correct size.
  • IDE » Navigator Deleting an event implementation from a control on iOS actually removes it so its no longer rendered out
  • IDE » Navigator Image sets now load properly from projects in version control format.

New in Xojo 2015 Release 2 (Apr 14, 2015)

  • Bug Fixes:
  • Build An error generating code for compiling a multiline label on a report has been fixed.
  • Build Apple Scripts, Movies, Pictures, Sounds and RawData can no longer erroneously be selected to be encrypted as the data in the item was never touched or encrypted and being able to select them in the IDE lead people to incorrectly believe the data was being encrypted.
  • Compiler Compiler: Fixed code generation for 2D arrays on 64-bit iOS.
  • Compiler Compiler: Fixed compilation of Objective-C declares that returned large structures.
  • Compiler Holding the option key down no longer generates an app that does not run. This used to switch between the Carbon and Cocoa frameworks but that is no longer supported (see case 19377).
  • Compiler iOS applications now build when Xcode 6.2 or Xcode 6.3 is installed.
  • Compiler Removed IsGlobal on MemberInfo since there is nothing in Introspection that will ever have it set to True.
  • Compiler The library field of Objective-C declares is now respected and the application will link against those libraries.
  • Crashes & Assertions » Crash A NilObjectException that could occur on OS X 10.10.3 has been fixed.
  • Crashes & Assertions » Crash Fixed an out of bounds memory write that happened when converting a String to a PString.
  • Crashes & Assertions » Crash License agreement window now has a minimum size of 320 x 320.
  • Debugger Debugger: Fixed a bug that led to corrupting the last character when editing a string in the debugger.
  • Framework » iOS iOS SQLiteDatabase no longer crashes when getting a NULL value from a column, also added a IsNull property to SQLiteDatabaseField.
  • Framework » iOS iOSSegmentedControl now properly handles adding and removing segments at run-time.
  • Framework » iOS The Enabled property now works with iOSToolButton.
  • Framework » iOS The UnhandledException event is now called when the app is run on iOS devices.
  • Framework » Macintosh Serial.XmitWait no longer raises an Error code of 19.
  • Framework » Macintosh (Cocoa) Accessing screen indexes out of bounds no longer causes a crash. It will throw an out of bounds exception.
  • Framework » Macintosh (Cocoa) User selected font and size for the ListBox is honored by the listbox header again.
  • Framework » Web Web: Cookies whose names contain spaces now load properly when a session first starts up.
  • Framework » Web Web: WebContainer ContentsScrolled event now fires when scrolling in only one direction.
  • Framework » Web WebSDK: Fixed a bug which caused the javascript namespace creation method to be called once per control instance instead of once per unique namespace.
  • Framework » Windows Adding or subtracting a DateInterval now correctly adds/subtracts months (also fixed for Linux).
  • Framework » Windows MoviePlayer.Looping now works properly with the native Windows Media Player.
  • Framework » Windows Setting Clipboard.Picture, with a Picture that has an alpha channel, no longer crashes.
  • IDE Removing a tab from an iOSScreen in a text project works as expected.
  • IDE » Auto Complete Removed hidden Text Iterator classes from auto-complete.
  • IDE » AutoLayout IDE no longer hangs when auto-layout causes a TextArea size to get very small.
  • IDE » Code Editor Items that have been deleted are no longer still showing when you search, delete them then click the search result again.
  • IDE » Code Editor TargetARM now autocompletes.
  • IDE » Code Editor The Text type highlights like other intrinsic types.
  • IDE » Debugger Structure values display correctly.
  • IDE » Find & Replace Searching using "this item and subclass" option with a module selected now also searches any classes contained within the module.
  • IDE » Inspector Changing the name of a WebToolbarItem and leaving the item by clicking elsewhere no longer causes an endless stack of dialogs.
  • IDE » Inspector Duplicating a string property no longer doubles up quotes in the duplicate.
  • IDE » Inspector Font selector in the Inspector now shows in alphabetical order (ignoring odd characters like @ that occur in some font names).
  • IDE » Inspector The Method Editor Combobox now splits up array types as parameters properly.
  • IDE » Inspector The Value property no longer appears (then disappears) on the Inspector for a CheckBox control. Instead, use the Initial State property in the Inspector.
  • IDE » Inspector You can’t use a SplitView for the default iPhone screen (iOS does not support this).
  • IDE » Menu Editor Menu Editor (and all other command bar icons) draw more clearly since they are no longer scaled.
  • IDE » Miscellaneous A NilObjectException that could occur due to a bug in OS X 10.10.3 is now fixed.
  • IDE » Miscellaneous An NilObjectException that occurred when the Debug Plugins directory exists next to the IDE has been fixed.
  • IDE » Miscellaneous Compiling a project where there are files that were missing that were not resolved no longer causes an exception in the IDE.
  • IDE » Miscellaneous Dropping an invalid “cur” file on the IDE no longer causes a NilObjectException.
  • IDE » Miscellaneous Fixed a memory leak related to the Window Layout Editor.
  • IDE » Miscellaneous Fixed a NilObjectException that can occur when adding an overloaded method.
  • IDE » Miscellaneous Fixed a NilObjectException that could occur when using a Filter for the Navigator.
  • IDE » Miscellaneous Fixed an edge case where closing the Xojo Cloud upload dialog/sheet could cause a crash.
  • IDE » Miscellaneous Holding the Option key down when pressing Run no longer produces an error.
  • IDE » Miscellaneous IDE: Pasting string properties no longer doubles up the surrounding and contained quotes.
  • IDE » Miscellaneous Identifiers are created as you type in a name and company in the Project Chooser.
  • IDE » Miscellaneous Invalid names for WebToolbarItems no longer cause compile issues.
  • IDE » Miscellaneous No longer generate an OutOfBoundsException with an oddly formed list of parameters for an extends method.
  • IDE » Miscellaneous Selected items in the Errors pane are now readable on Windows and Linux.
  • IDE » Miscellaneous Switching from tab to tab no longer requires clicking in the code editor to make it so you can start/continue editing.
  • IDE » Miscellaneous The deprecated CFBundleGetInfoString is no longer written to Info.plist for OS X apps.
  • IDE » Miscellaneous The Resume button on the toolbar on Windows now enables when expected during debugging.
  • IDE » Miscellaneous Undoing and redoing the addition of a project item (like a container control) properly restores the Navigator, avoiding a NilObjectException.
  • IDE » Miscellaneous Web apps no longer report NaN as the bytes per transaction under some circumstances in the log.
  • IDE » Navigator A cosmetic issue where multiple entries for "Layout" could arise has been fixed.
  • IDE » Navigator Clicking from one item to another in the Navigator no longer dirties the project.
  • IDE » Style Editor Linux IDE: deleting a property from a WebStyle no longer crashes
  • Changes:
  • Framework » All Xojo.Crypto now works on Desktop, Web and Console projects for Windows, Linux and OS X.
  • Framework » All Xojo.IO.FolderItem now works for all platforms.
  • Framework » All Xojo.Net.HTTPSocket now works on all platforms (note this requires libsoup-2.4 on Linux).
  • Framework » Linux The Linux framework now uses the system provided ICU libraries instead of statically linking them, which reduces the size of built apps on Linux. This means libicu 4.2+ is required to be installed on your Linux distros.
  • Framework » Web Standalone web app startup parameters can now be manipulated in App.Open by changing the values in the args array.
  • Framework » Windows Reduced size of Windows ICU DLLs by statically linking them in and removing unused features from the library.
  • IDE » AutoLayout Added restrictions on what constraints you can add if a control can’t be resized in various directions.
  • IDE » Debugger The modal dialog which asks whether you want to continue waiting for a web app to launch now has a Hide button so the dialog will not continue to interrupt the debugging process.
  • IDE » Inspector Constant editor inspector pane behaves like the property editor panes and selects the name when you create a new constant.
  • IDE » Inspector When you add an even definition its name is now selected in the Inspector.
  • IDE » Library Long descriptions in the library can now be scrolled.
  • IDE » Miscellaneous New iOS projects have an icon asset and launch image asset instead of the App Icon and Launch Images folders.
  • IDE » Miscellaneous The template window split is more proportional so it looks nicer.
  • IDE » Miscellaneous Unknown type errors now display the name of the unknown type.
  • IDE » Navigator Focus is set on the name property in the Inspector for items that only have a simple set of ID group properties. Basically those that only have a name property like folders and menus.
  • IDE » Window Editor Can paste methods, consts, enums and structures when they are copied from full text.
  • Plugin SDK Plugins SDK: Removed the obsolete plugin converter tool.
  • XojoScript XojoScript: The version of LLVM used by XojoScript has been upgraded to 3.5.1.
  • New Items:
  • Compiler Compiler: Added an optimization pass for Objective-C method calls that removes excess calls to sel_registerName.
  • Framework » All On Windows/Linux, external resource items (i.e. Pictures, Sounds, Movies) are no longer compiled into the built executable, they are now copied to a Resources folder next to the built app. The benefit is that the resource is not loaded into memory until accessed, and Pictures are no longer converted into BMPs.
  • Framework » All Xojo.Data namespace is now available for all targets/platforms.
  • Framework » iOS Added iOSDataPicker control.
  • Framework » iOS Added missing Crypto functions for Xojo.Crypto: PBKDF2 BERDecodePrivateKey BERDecodePublicKey DEREncodePrivateKey DEREncodePublicKey Hash
  • Framework » Web Added ability to set the HttpOnly attribute in the Session.cookie.set method. Removed the sessionid cookie from the javascript framework.
  • Framework » Web The WebRequest object passed to HandleSpecialURL and HandleURL now has a Secure property which tells you if the request came in over a secure channel.
  • Framework » Web Web: The SSL Certificate location can now be specified on the command line using --certificate=/full/path/to/file
  • Docs and Examples:
  • Documentation » Language Reference Changed links to TargetHasGUI to instead link to TargetDesktop. Removed links to TargetCarbon.
  • Documentation » Language Reference Clarified Notes for Encoding method to make it clear it does not “guess” the encoding of the String and only returns what the encoding has be set as.
  • Documentation » Language Reference Corrected typo in sample code for Xojo.Core.DictionaryEntry.
  • Documentation » Language Reference Links to MemberInfo.Parameters now correctly say “Parameters” instead of “GetParameters”.
  • Documentation » Language Reference Notes for Declare now indicate the Library must be either a String literal or a Constant.
  • Documentation » Language Reference Redirected Session.UnhandledException to WebSession.UnhandledException.
  • Documentation » Language Reference ScrollBar.LiveScroll no longer indicates it is read-only.
  • Documentation » Language Reference ServiceApplication now shows the command to manually start a Windows service.
  • Documentation » Language Reference SQLiteDatabase now shows that SQLite 3.8.8 is used.
  • Documentation » Language Reference Updated Graphics description to indicate you can draw to Graphics from a Picture.
  • Documentation » User's Guide Updated all download links to User Guide to point to the correct version.
  • Examples iOS UIDatePicker Declare example now correctly gets date selections for 1947 and earlier.
  • Examples YUI Text Editor example (using WebSDK) now uses HTMLHeader shared method on control rather than App.HTMLHeader to make it easier to re-use the control in other projects.
  • 13 Docs and Examples

New in Xojo 2015 Release 1 (Feb 17, 2015)

  • Bug Fixes:
  • All: Fixed a crash when passing a structure array into SortWith.
  • All: Fixed a memory leak with Xojo.Core.MemoryBlock.
  • All: Fixed a regression where assigning empty strings to a MemoryBlock would crash.
  • All: Fixed Array.IndexOf's handling of Auto arrays.
  • All: Fixed Array.IndexOf's handling of delegate objects.
  • All: Fixed RuntimeException's CallStack property having an extra Nil element at the end of the array.
  • All: Fixed shuffling of structure arrays.
  • All: Optimized sorting an array that is already mostly sorted.
  • All: String.ToText no longer raises an exception on Windows/Linux if the string is empty.
  • All: Text.Split no longer raises an assertion if the Text to split is empty. It now returns an empty Array instead.
  • All: Using IndexOf on a string array where a string starts with NUL byte now works correctly.
  • All: Xojo.Core.Timer.CancelCall no longer raises an IteratorException.
  • Cocoa: Fixed a crash with ComboBox.DeleteAllRows.
  • Cocoa: The ArrowAllDirections mouse cursor now resembles the old Carbon appearance instead of a simple crosshair.
  • Compiler: Fixed a bug that made ByRef arguments count for overload resolution, which incorrectly marked function calls as ambiguous.
  • Compiler: Fixed a bug with incremental compilation that resulted in global functions or variables not being counted as a dependency that should force a recompile if they change.
  • Compiler: Fixed a bug with unsigned integer comparison on iOS and XojoScript.
  • Compiler: Fixed a crash when trying to get or set a structure property's value via introspection.
  • Compiler: Fixed a crash with exception handlers when building for iOS devices.
  • Compiler: Fixed a failed assertion triggered by calling an invalid function.
  • Compiler: Fixed a failed assertion when compiling a class that has a property that is a large structure.
  • Debugger: Date values stored in a Variant now show correctly in the debugger.
  • IDE: A change to a project item name is validated before the contextual menu is shown to you cannot create a class with no name.
  • IDE: Added missing Help tags for the file types command bar items.
  • IDE: Added Variant.TypeText to autocomplete.
  • IDE: Adding a new sqlite database to a project no longer permits using the name “Database”.
  • IDE: Alt-Shift-Click inserts the name of the item selected in the navigator to the current insertion point in the active code editor.
  • IDE: Altered reloading an iOSControl so it reloads all saved properties.
  • IDE: An event that has been implemented can be removed and re-added to a control.
  • IDE: Auto-layout baselines guides now result in baseline constraints.
  • IDE: Changed from using JPEG 2000 to PNG for the elements of the ICNS file so that OS X builds done on Windows and Linux properly create the ICNS file.
  • IDE: Clicking the help item in the toolbar no longer results in a help window with no toolbar configured.
  • IDE: Closing the last project window will, if set, close the IDE down or simply leave the tray item (as set in preferences).
  • IDE: COM help reference entries wont be shown on platforms that don’t support COM controls.
  • IDE: Commands like Stop Debugging work even when the Debugger is not the current active tab.
  • IDE: Copy file steps now directly supports the use of partial paths for the copy file steps subdirectory property.
  • Note : Partial paths still behave platform specific in some respects. On OS X if you use the colon (:) it will be treated as a /. On Windows if you use / it will be treated as a \.
  • IDE: Copy paste and drag drop of methods, constants, etc. into external classes now works properly.
  • IDE: Copy/copy/paste now work with the IDE Script Editor window.
  • IDE: Copying a group of lines no longer causes an exception when trying to create the backing image.
  • IDE: Creating a new control set from a selected group of similar controls now works properly.
  • IDE: Custom controls names in the Library update when changed.
  • IDE: Custom supers for reports saved in plain text format are restored properly.
  • IDE: Desktop containers draw better in the IDE (back color and backdrop) in their editor and in a disabled form on a window layout.
  • IDE: Don’t raise an NilObjectException if you start a search in the LangRef window before the response has been received from one of the online sites.
  • IDE: Dropping a method on a class interface behaves like a Copy not a Move.
  • IDE: Ellipsis to indicate further interaction required have been added to menus.
  • IDE: Event definition editor pane parses a single entry in the name into component parts as the method editor pane does.
  • IDE: Event handlers that are added to a control instance but have no code in them are now correctly hooked up so add handler will properly report an error if you try to add a handler to it again.
  • IDE: External project items no longer show property editors differently than internal project items.
  • IDE: External script references no longer get lost.
  • IDE: Extract Interface and Extract Superclass both order their lists alphabetically.
  • IDE: Fixed a NilObjectException that could occur when trying to add attributes to a NON-UI class in an iOS project.
  • IDE: Fixed issue where right click would incorrectly position the insertion point in the Code Editor.
  • IDE: Fixed the displayed type of Variant.TextValue in autocomplete.
  • IDE: Floating properties palette has the advanced icon and panels.
  • IDE: Grab handles for lines appear regardless of setting of X1, X2, Y1, and Y2.
  • IDE: ICNS files are now written out with the Apple recommended set of images as PNG which do NOT include any 48 x 48 images.
  • IDE: Icon editor no longer beeps when you press the delete key.
  • IDE: Icon editor no longer behaves likes its compositing icons together. It now replaces the existing icon with a new one when dropped into the editor.
  • IDE: If a plugin is misconfigured and claims to have properties, events, methods, etc. but really doesn't then the error message in Feedback will identify this better.
  • IDE: If there is no default value for a constant or property no equal sign is shown in the Navigator.
  • IDE: In Auto-layout, controls constrained to the baselines of other controls move as expected.
  • IDE: In the Code Editor, AddHandler and RemoveHandler now display syntax help and are highlighted as keywords.
  • IDE: In the Code Editor, clicking in the gutter below the last visible line no longer toggles the last line’s break point.
  • IDE: In the File Type Set Editor, pressing forward delete when a field is being edited simply edits the field. When no field is being edited and a row is selected pressing forward delete removes the row.
  • IDE: In the Style Editor, typing in a value in the text field for colors now works.
  • IDE: Inspector Behavior sheet is resizable. Lists resize to fit width and columns are resizable.
  • IDE: Make it so when a web segment has an icon assigned that it actually draws it whether its been copied and pasted or saved and the project reloaded.
  • IDE: Menu handlers now get numeric suffixes like enums, properties, etc. do when you duplicate them.
  • IDE: Method editor now says “Delegate name” instead of “method name” when you edit a delegate.
  • IDE: No longer causes an exception when using a script command to build a console or web app.
  • IDE: No longer causes an exception when using a script command to build a console or web app.
  • IDE: No longer get an error when a toolbar button icon image has the same name as the button.
  • IDE: No longer repeatedly ask if a person wants to update a projects minimum load version as they alter it and save.
  • IDE: Opening new tabs uses the current Find panel size (if open).
  • IDE: Plugin super classes are not shown in the super class browser for iOS projects.
  • IDE: Pressing the Enter key completes inline editing same as the return key does.
  • IDE: Project chooser panel no longer gets spurious line artifacts when resizing.
  • IDE: Removed extra space in build dialog.
  • IDE: Renaming Report controls in the Inspector also changes the name in the Navigator.
  • IDE: Resizing a control by the corner drag handles snaps to guides just like dragging any of the side handles does.
  • IDE: Segmented control with no segments no longer generates an error when you analyze a project.
  • IDE: The Export dialog when making a folder external has a more sensible caption. Folders properly check all contents recursively for whether they can be exported.
  • IDE: The Insert menu rebuilds properly depending on what project you have front most.
  • IDE: The Library no longer appears to be a drop target when you are dragging a control out of the library.
  • IDE: The ListBox popover editor permits shift tab to go backwards (just as it uses tab to go forwards).
  • IDE: The small progress wheel control in web projects no longer slowly creeps across the layout as you save and reopen the project.
  • IDE: The web style border editor can tab from the Size field to the container with the color selector fields.
  • IDE: The “Define missing method” function now works even when you select a text fragment thats starts with “me.”.
  • IDE: Using Cut, Copy, Paste, Delete in the Font name combobox in the Inspector doesn’t cause the control to be deleted.
  • IDE: When a base class name for an iOS custom control changes, any views with instances of that control also get the super updated for those instances.
  • IDE: When using floating palettes and the last workspace for a project is closed the floating properties palette also clears so that you cannot modify something that no longer exists.
  • IDE: When you change the default value of a constant or property value they change in the Navigator right away so you no longer need to close then open the group of constants or properties to see the change.
  • IDE: You can now do a discontiguous select of project items in the Navigator on Windows and Linux (this already worked on OS X).
  • iOS: An empty iOS project no longer generates an warning about an unused variable.
  • iOS: Controls that are visually parented in the IDE are now properly parented at run time.
  • iOS: Dynamic constants are now working.
  • iOS: Fixed a crash with invalid JSON.
  • iOS: Fixed a failed assertion triggered by dereferencing a pointer with no offset.
  • iOS: Removed File Types from the Build Settings.
  • iOS: The Sign project step name (in Build Settings) is no longer editable.
  • Linux: IDE no longer crashes at launch on Ubuntu 14.10.
  • Linux: The IDE no longer crashes in certain instances when clicking on the button to change a class' super.
  • OS X: Because of a bug in Launch Services names with special characters don’t work for the icon file name. Now always using App.icns as the name.
  • OS X: Fixed a crash with Xojo.Core.Date when used as a property.
  • OS X: Fixed Xojo.Math.RandomInt crashing.
  • Plugins: REALLoadObjectMethod no longer fails with DrawPicture in Console apps.
  • Remote Debugger: Changing the “launch after receiving” check box no longer takes several seconds for the UI to update.
  • Serial: Retrieving Bits, Stop, Parity, and Port properties now work properly instead of incorrectly retrieving its high word (i.e upper 16-bits did not contain the correct data). This was seen mainly on Windows.
  • Web: A WebControlWrapper Style property no longer appears if the developer has indicated that it shouldn't.
  • Web: Fixed a bug which caused WebLabels to be invisible when included in a dynamically created WebContainer.
  • Web: Fixed a regression in the WebSDK which caused ControlAvailableInBrowser to return True too early. Increased WebControlWrapper.APIVersion to 5 so the only version that has this issue will be version 4.
  • Web: Removed unused ChromeFrame code from the framework.
  • Web: WebCheckboxes again respond to touches when their MouseDown event is implemented.
  • Web: WebContainer mouse event handlers no longer interfere with scrolling.
  • Web: WebLabels in a WebContainer in a Control Array draw properly again.
  • Web: WebListbox no longer offsets the selection if placed inside a WebContainer and accessed from a touch device.
  • Web: WebMoviePlayer and WebMapViewer no longer incorrectly send Mouse movement events to the server.
  • Web: WebStyle gradients now render for IE. Note: IE only supports 2 point gradients.
  • Web: Webstyles with borders no longer cause controls to change size at runtime.
  • WebSDK: Updated documentation to reflect the APIVersion 4 and 5.
  • Windows: Deleting a menu in the Menu Editor on Windows no longer causes an exception.
  • Windows: Graphics.DrawPolygon now draws smoother edges when using GDI+
  • Windows: Xojo.Core.Date subtraction now works properly.
  • Windows: Xojo.Core.Timer now works for Desktop apps.
  • XojoScript: Fixed a bug that prevented CompilerWarning from firing when there were warnings on consecutive lines.
  • XojoScript: The compiler now gives an error when a script declares its own RuntimeException class.
  • New Items:
  • Compiler: Added a TargetARM constant that is set to true when building for ARM devices.
  • Compiler: The 'StructureAlignment' attribute on a structure can now be set to 0, which indicates that the compiler should perform natural alignment. Natural alignment ensures that the structure will be laid out correctly for a given platform's ABI rules.
  • IDE: Added a new preference for controlling whether searches and filtering happen immediately or wait until enter/return are pressed.
  • IDE: Added support for 1024 x 1024 icon size. Total: 4
  • Changes: All: Added Parse function to Integer, Double, and Single. This function acts more like Val/CDbl did, in that it's more lenient at parsing and will not raise exceptions.
  • Compiler: TargetHasGUI, TargetPPC, TargetPowerPC, TargetMacOSClassic, and Target68K have formally be marked as deprecated.
  • Compiler: The compiler now preserves type information better when dealing with "Integer" and "UInteger". As such, error messages will reflect what the user types instead of "Int32" or "UInt32".
  • IDE: Added Icons for autocomplete purposes for Auto, Text and Ptr.
  • IDE: Auto-layout baselines guides now result in baseline constraints.
  • IDE: Auto-layout baselines guides now result in baseline constraints.
  • IDE: Certain deprecated items have been removed from file formats and print outs of projects.
  • IDE: Debugger Viewer now is labelled with “View as “ instead of “view”.
  • IDE: It is possible to paste multiline text into the constant editor listbox on Windows and Linux (it already worked on OS X).
  • IDE: Revised project printing to not repeat the note name, group things better and add in delegates and using clauses.
  • IDE: The Debugger shows headers for 1D arrays as Row and Value. For 2D arrays it shows row, column and value. For a 2D array sorting by rows puts data in Row / Column order.
  • IDE: The picture in the debugger view now scrolls as you move the mouse wheel.
  • IDE: There is now a Project Controls section in the Library for iOS projects.
  • IDE: Trying to place an instance of a Container Control or EmbeddedWindowControl directly on a window is not permitted. You can no longer drag out a control, like a canvas, change its super to Container Control or EmbeddedWindowControl.
  • IDE: Updated structures to support natural alignment. This means now you can set the StructureAlignment attribute to 0 to use natural alignment.
  • IDE: Viewing a window in the debugger shows “Controls” instead of “Contents” in the debugger.
  • IDE: When you use Run Paused, the Resume toolbar item, resume menu item and pause items will be disabled until such time the app to be debugged has been started and communicated with the IDE.
  • OS X: ICNS files written use up to date internal image formats (PNGs instead of JPEG 2000) and only use currently documented formats.
  • PluginSDK: Updated Plugins SDK with new function to handle the Text datatype. Please review the Plugins SDK for details.
  • SQLiteDatabase: Updated to SQLite 3.8.8.
  • Web: Removed the "Xojo HTTP Server" header from the list of headers returned for a standalone web app.
  • Web: Updated standalone HTTP response headers to more closely match existing behavior.
  • Web: Web Apps no longer request that ChromeFrame be activated if it's installed on the user's computer.
  • Docs and Examples:
  • DocLangRef: Added Crypto and Introspection to list of Themes in Language Reference.
  • DocLangRef: Added information for WebApplication.Security.
  • DocLangRef: Added note to array.Sort to indicate how items are sorted.
  • DocLangRef: Added page for REALbasic module as an alternate way to access some global items.
  • DocLangRef: Corrected “REALSQLDatabase” to “SQLiteDatabase” in Record Navigation section of RecordSet page.
  • DocLangRef: Removed System.KeyScript, which is no longer an available method.
  • DocLangRef: Simplified wording for description of FolderItem.GetSaveInfo.
  • DocRefGuide: Added exceptions raised by Xojo.IO.SpecialFolder.GetResource.
  • DocRefGuide: Fixed sample code for iOSImage.FromFile.
  • DocRefGuide: Removed incorrect information from iOSView.Activate and Deactivate.
  • DocRefGuide: Removed SelChange from the events for iOSTextField.
  • DocRefGuide: Removed usage of Math.Pi from sample code.
  • Examples: Added iOS/Declares/Base64Encoding project.
  • Examples: Added iOS/Declares/Pasteboard to show how to add text to the pasteboard.
  • Examples: Added XojoDoodle example for iOS.
  • Examples: Fixed iOS/Database/SQLiteInMemory example so that it can be properly code-signed when built.
  • Examples: In iOSAlerts, changed declare lib to /usr/lib/libobjc.dylib so that it builds for device.
  • Examples: Updated IDECommunicator example to work with current version of Xojo.
  • Examples: Updated XojoNotes to use SplitView on iPad.
  • Examples: Updates to error messages for XojoScript example project.

New in Xojo 2014 Release 3.2 (Jan 15, 2015)

  • Bug Fixes:
  • All: Fixed variant to currency conversions when the fractional component had leading zeroes (e.g. 13.05).
  • IDE: Messages pane shows output as expected.
  • IDE: Modules that have been exported import again as expected.
  • IDE: Pasting multiline text no longer hangs the IDE while trying to figure out where to wrap things for display.
  • IDE: Report designer saves position in an internationally friendly format for all file types.
  • IDE: Report designer saves position in an internationally friendly format for all file types.
  • Web: WebListBox no longer offsets the selection by the amount the page is scrolled. Total: 7
  • Docs and Examples:
  • DocRefGuide: Corrected code sample for Xojo.Data.GenerateJSON and ParseJSON.
  • DocRefGuide: Fixed typos in iOSSegmentedControl.Add method sample code.
  • Examples: Removed auto-layout rule for width=320 so that example works on iPads.
  • Examples: Updated Office Automation example projects to fix warnings.

New in Xojo 2014 Release 3.1 (Dec 18, 2014)

  • Bug Fixes:
  • Compiler: Fixed a regression where the compiler failed to diagnose aggregate cycles.
  • IDE: 4 char codes used in Constants (with or without smart quotes) are again properly recognized as numeric types.
  • IDE: Labels toggle visibility as expected.
  • IDE: The bottom auto-layout offset is now properly set to 20.
  • IDE: Trying to open an iOS project one Windows or Linux will give a clearer error message about iOS projects not being supported on those platforms.
  • iOS: SQLiteDatabase: Additional parameters passed into SQLExecute, or SQLSelect, as a way to perform a prepared statement now works properly instead of randomizing the data (especially true when there was more than one additional parameter passed in).
  • iOS: Fixed soft declares.
  • Web: Fixed a regression for WebCheckbox on Touch devices.
  • Web: WebLabel offsets are calculated correctly again when their initial value is an empty string.
  • Web: WebLabels appear properly again when the containing view was set to not visible in the IDE and set to Visible in code.
  • Windows: Text to String conversion now converts the string to UTF8 instead of UTF16. This matches the other platforms, and fixes issues involving APIs that don't modify the encoding, like calling SQLExecute.

New in Xojo 2014 Release 3 (Dec 10, 2014)

  • Bug Fixes:
  • 35523 All: ContainerControl.Close now fires all the control's Close events before firing control destructors. It used to interleave the two, meaning that you could not safely refer to any of the controls on the layout from the ContainerControl's Close event.
  • 35189 All: Converting a Variant containing a String to a Currency no longer gives incorrect results.
  • 20801 All: Dividing currency values now gives correct results and doesn't use floating point internally.
  • 33416 All: Plugins calling REALYieldToRB on background threads no longer trigger socket polling.
  • 34263 All: SSLSocket: Intermediate certificates are now properly read and relayed to the client.
  • Compiler:
  • 21462 Compiler: "-Nil" now gives a compile error instead of a failed assertion.
  • 33869 Compiler: Currency division and multiplication works correctly in XojoScript.
  • 35645 Compiler: Fixed a bug that allowed arithmetic operations to be performed with enumeration values.
  • 27792 Compiler: Fixed a failed assertion triggered by calling methods with certain broken prototypes. Specifically, it no longer mistakenly accepts methods which have multiple Assigns or ParamArray parameters as legal candidates for anything, and no longer accepts methods which have non-Assigns parameters following ParamArray as candidates for any call; this will never work anyway because such declarations are erroneous.
  • 24671 Compiler: Fixed a failed assertion triggered by enumeration values larger or smaller than can be represented in an Int32.
  • 23557 Compiler: Fixed a failed assertion triggered by enumerations that had an underlying type of Int64.
  • 22813 Compiler: Fixed a failed assertion triggered by having a computed property that is an array.
  • 31305 Compiler: Fixed a failed assertion triggered when an interface aggregates a non-interface type.
  • 34710 Compiler: Fixed assertions related to zero-length structures.
  • 36377 Compiler: Fixed file type icons not being put in the application bundle.
  • 32292 Compiler: Fully qualified names can now be used to access private items in the same scope instead of incorrectly saying that the item is private.
  • 21987 Compiler: Implicit calls to Operator_Convert now obey scope restrictions.
  • 34920 Compiler: Improved error reporting and recovery when trying to instantiate a non-class type with New.
  • 34986 Compiler: Improved the error given when an Operator_Convert function is needed for a type conversion but is marked as protected or private.
  • 15581 Compiler: Improved the error message given when passing a type where a value of that type is required.
  • 35024 Compiler: Improved the error message given when trying to invoke an instance method from a shared method.
  • 4534 Compiler: It is now an error to have types and modules with the same name in the same scope.
  • 18083 Compiler: It is now possible to dereference a pointer using a structure type declared as a public (not global) member of a module: import the module into the current scope via the Using statement, then dereference using the unqualified structure name.
  • 1233 Compiler: Name lookup has been fixed so that global items cannot be accessed through arbitrary unrelated namespaces. For example, the expression 'REALbasic.REALbasic.REALbasic.Dictionary', which used to resolve to the global Dictionary class, now results in a compiler error.
  • 22578 Compiler: Name lookups no longer work out of order upon reaching module scope, recursively searching for properties, then for constants, then for methods; instead, they follow the same name search process used everywhere else, searching from innermost to outermost scope.
  • 31306 Compiler: No longer crashes when a class claims to inherit from an enum or a structure.
  • 15755 Compiler: No longer crashes with circular Operator_Converts.
  • 23326 Compiler: No longer erroneously considers shared methods as possible candidates for overriding when computing virtual method tables.
  • 35022 Compiler: No longer fails to look for operator methods on interface types.
  • 32450 Compiler: No longer generates incorrect code for functions returning structures in XojoScript.
  • 21678 Compiler: No longer has a failed assertion when '#pragma warning' is misused.
  • 8286 Compiler: The compiler no longer asserts when it runs into cycles with class inheritance and multiple classes with the same name.
  • 22672 Compiler: The compiler no longer looks at private methods from a superclass when checking to see if a class has all of the methods required for the interfaces it implements.
  • 35673 Compiler: The compiler now issues an error if there are multiple structures or enumerations in global scope with the same name.
  • 28812 Compiler: The currency data type now converts between other numeric types correctly in XojoScript.
  • 23383 Compiler: The scoping behavior for enumerations in a Window or a ContainerControl is now correct.
  • 26576 Compiler: The scoping behavior for structures in a Window or a ContainerControl is now correct.
  • 34479 Compiler: When invoking an extension method on an expression, the compiler now checks to see if the expression's type would require a conversion to be compatible with the extension method's first parameter.
  • 36565 Console: Applications using SSLSocket.Poll and never calling App.DoEvents no longer leak memory.
  • Debugger:
  • 30169 Debugger: Arrays of Object now show their content correctly.
  • 35164 Debugger: Computed Int64 properties with negative values now display correctly in the debugger.
  • 34531 Debugger: Debugger once again shows the Sub/End Sub (first and last lines) on a method.
  • 35173 Debugger: Fixed an exception triggered when viewing structures and stepping.
  • 13277 Debugger: ListBox contents display without having to click or mouse over the row.
  • 21705 Debugger: Sorting the indices of an array now performs a numeric sort instead of a string sort.
  • 33657 Debugger: Stepping in the debugger while viewing a DatabaseRecord's contents no longer results in rows being accumulated.
  • 35174 Debugger: Structures passed ByRef show correctly in the debugger.
  • 35441 Debugger: The background color of selected rows in the debugger is no longer incorrect.
  • 34574 Debugger: The debugged application no longer crashes if a RecordSet whose contents are being viewed in the debugger goes out of scope.
  • 7421 Debugger: The debugger can now show arrays stored inside of a Variant.
  • 12066 Debugger: Variable values display without having to click on them or mouse over them.
  • 8569 Debugger: Variant values in the debugger now display without mousing over, clicking, or otherwise forcing the list to redraw.
  • 10738 Framework: Setting the Serial.Baud using the class constant values for 3600, 7200, 14400, or 22800 on OS X now works properly instead of always resulting in a 56700 baud rate.
  • IDE:
  • 34706 IDE: Fixed cursor positioning in the code editor with alternative code editor fonts.
  • 20096 IDE: Added tooltips for Find, Errors and Messages icons at the bottom of the main IDE window.
  • 35796 IDE: App.Cleanup no longer appears in the Messages pane when a web app quits.
  • 35323 IDE: Autocomplete of new modules works as expected and properly aliases Integer to Int32 (with provisions for making it alias to int64 when required).
  • 35150 IDE: Autocomplete on a control set (array) no longer offers items like Ubound, etc. which apply to arrays.
  • 36445 IDE: Building for Xojo Cloud no longer requires having Use Builds Folder selected.
  • 27717 IDE: Can type in a full method signature to the method name portion and it will be parsed apart correctly.
  • 34888 IDE: Changes to compatibility flags now stick.
  • 33556 IDE: Changing analysis warnings dirties the project.
  • 36689 IDE: Changing the index of a control in a control set that had children parented on it no longer might end up with those children orphaned.
  • 36636 IDE: Code editor is speedy regardless of the amount of text on the clipboard.
  • 33253 IDE: Command lines arguments are passed to a debug run of the web app as expected.
  • 35870 IDE: Compatibility flags (in Advanced Inspector) behave and stay set when changed.
  • 4568 IDE: Constants no longer write the item name twice to Binary and XML projects.
  • 36933 IDE: Controls no longer lose their supers when dragged.
  • 34260 IDE: Creating an overloaded method is displayed properly.
  • 32764 IDE: Delete key works in IDE script editor.
  • 31468 IDE: Deleting a group on a layout or class, like "Methods", "Constants", "Properties" etc, no longer deletes the the layout or class and instead removes all the contained items.
  • 27032 IDE: Double-clicking the warning that says "The bundle ID is required to build your application" now takes you to the OS X project item.
  • 30370 IDE: Event handlers added to a custom class do show up when you go back to a window using an instance of the control.
  • 35116 IDE: Extension methods for arrays are now displayed by auto-complete.
  • 34699 IDE: Extension methods on arrays of items now autocomplete.
  • 9591 IDE: External items can NOT be duplicated as it causes all sorts of havoc.
  • 27249 IDE: Filtering no longer shows multiple entries for overloaded methods on a class or module. You get proper references to each overload as expected.
  • 34577 IDE: Fixed an exception in the script editor window.
  • 8165 IDE: Fixed ListBox highlighting for editors.
  • 30828 IDE: Having a style open in several editors no longer causes issues and the displays of the style remain in sync as you edit them. To see this you'd have to have the same style open in several workspaces showing the same state (normal, hover, pressed, visited).
  • 33563 IDE: Inspector Behavior dialog no longer shows Internal properties.
  • 35802 IDE: Inspector behavior now works with custom enumerations that have negative values.
  • 32557 IDE: License keys now show up properly in the License Key dialog.
  • 35435 IDE: ListBox and PopupMenu popout window editors that are activated by pressing Return when the control is selected now remain on the screen instead of opening and closing immediately.
  • 34760 IDE: Made it so loading a binary project that has an unsupported project type doesn't throw up exceptions but just quits trying to load more gracefully, similar to how Text projects are handled.
  • 35945 IDE: Method editor no longer beeps when the name is changed.
  • 36626 IDE: Navigator rows that have no sub rows no longer continue to show as expandable.
  • 35237 IDE: Negative values in enums work.
  • 35332 IDE: No longer shows TabStop and TabIndex properties for Desktop Segmented Controls.
  • 34185 IDE: On Windows, Copy File Steps with a subdirectory specified will copy recursively in to the specified subdirectory.
  • 34145 IDE: On Windows, the IDE no longer fails to load plugins after multiple (lots and lots) IDE crashes.
  • 35311 IDE: Parameters and ReturnType autocomplete fields no longer have issues if there was more than one valid match.
  • 11018 IDE: Pressing Stop when a build step dialog shows Stop or Cancel will cancel the build.
  • 35679 IDE: Progress window no longer has thread or timer that starve the loading process.
  • 35861 IDE: RBScript is no longer listed in the library for web projects.
  • 8423 IDE: Recent menu items show the unique part of the path so you can better identify files.
  • 8189 IDE: Renaming a property no longer drops existing view behavior settings.
  • 14865 IDE: Selection of blocks in the Code Editor includes the top line (which the example show indicates it doesn't and hasn't for a VERY long time).
  • 35947 IDE: Separator line extends all the way from left to right for Navigator.
  • 34040 IDE: Shared methods can no longer be added to Modules.
  • 30430 IDE: Tab order when creating a method behaves as expected and does not move focus to the main window away from the floating palette.
  • 27308 IDE: Tab order when creating a method no longer jumps around.
  • 7105 IDE: Tabs torn off from a Workspace retain their context much better.
  • 35812 IDE: Text is no longer cut off in the update window on Windows.
  • 12962 IDE: The Code Editor contextual "Switch To" menu now properly switches to the selected project item member.
  • 35433 IDE: The entry in the navigator and the item name in the inspector update after you initially enter some text for the menu item title.
  • 34256 IDE: The OK/Cancel buttons on the Project Chooser are now positioned properly on Windows and Linux.
  • 14738 IDE: Two visual oddities in the layout editor fixed: 1) When you have a control selected and scroll the selection handles would not go off the layout area 2) If you add a subclass to a window by dragging an instance onto the window in the Navigator the window may not get a tray area drawn but it should
  • 8281 IDE: Typing no longer leaves the editor in a state where it still thinks the shift key is down if you type a closing parenthesis ‘)’ and immediately scroll.
  • 15195 IDE: WebStyles, WebPage, MenuBars and Movies all show their respective popups in the inspector sorted lexically.
  • 34358 IDE: When jumping to a location via the contextual menu, "Goto Location .." should put focus in the Code Editor (where applicable) and NOT the combo box of choices.
  • 34765 IDE: Workspaces windows no longer behave like they are connected together.
  • 14564 IDE: You can now search a project for a style which displays the controls and pages that use that style in the search results.
  • 18118 IDE: You can use a valid integer literal form for the values in the enum list. This includes &b, &h and &o as well as integer literals with no & prefix.
  • 29374 IDE: You cannot open a project until the IDE has finished loading.
  • 35062 JSONItem: Internal properties are now properly private.
  • 30160 Linux: Applications that are paused in the debugger no longer eat 100% CPU.
  • 36166 ListBox: The border now looks correct on Yosemite when the "increase contrast" accessibility option is enabled.
  • MacCocoa:
  • 35955 MacCocoa: BevelButtons now use Yosemite's focus ring animations.
  • 34665 MacCocoa: Calling the Font function with an out of bounds parameter now throws an exception instead of silently failing.
  • 34321 MacCocoa: Checkboxes and other controls now have the expected animations when ran under 10.10 Yosemite.
  • 31366 MacCocoa: Controls no longer show 'stale' contextual menus if the ConstructContextualMenu returns False.
  • 34378 MacCocoa: Fixed ListBox.DrawInto drawing things at the wrong location when the destination's y coordinate was non-zero.
  • 25365 MacCocoa: Graphics.DrawPicture no longer interpolates the image if the AntiAlias property is set to False.
  • 29734 MacCocoa: Mouse enter, move, and exit events now fire for global floating windows even if the application isn't active.
  • 36736 MacCocoa: Picture.Open will now load PDFs like it used to in prior versions.
  • 20823 MacCocoa: Setting a timer's Period property inside of the Action event no longer makes the timer fire continuously.
  • 5120 MacCocoa: The disclosure triangle shown for a folder in a hierarchical ListBox now shows the proper color when the row is selected.
  • 35341 MacCocoa: The underlying NSWindow for a Window is no longer marked as restorable.
  • 33795 MacCocoa: Toolbars no longer overlap the window content on OS X Yosemite.
  • 30432 MacCocoa: Window.Restore now functions correctly.
  • 34501 Networking: HTTPSocket and HTTPSecureSocket no longer strip off user specified Content-Length or Content-Type headers if no post content was specified. POTENTIAL BEHAVIOR CHANGE.
  • 35171 RecordSet: No longer crashes when retrieving columns where no data is available. This was happening specifically with MySQL, but could also occur with other databases.
  • 33778 Reports: When saved in new versions, Reports correctly write colors in Text projects. Older versions would write them incorrectly as &cAARRGGBB (which is what would get restored) instead of as &cRRGGBBAA.
  • 34199 Shell: The shell now polls more often than it did previously on Windows, now on par with the other platforms, so DataAvailable events should fire more frequently.
  • Web:
  • 35524 Web: Apps no longer crash if Session.Quit is handled while a response to a browser is in progress.
  • 36213 Web: Fixed a bug which could cause a NilObjectException in the web framework if a Session was being destroyed while a browser response for that Session was being created.
  • 33172 Web: Fixed a bug which could cause WebContainers, WebDialogs and WebPages to lose the ability to respond to events if an item inside them was removed with the Close method.
  • 16097 Web: MouseScrollWheel events no longer pass through other controls to scroll the items behind them.
  • 32132 Web: MouseWheel scroll events now go to the correct control.
  • 34682 Web: RGBA colors are now sent to Internet Explorer 9 and above.
  • 18123 Web: Updated web framework to make sure all external resource requests match the protocol of the app itself (http vs https).
  • 34282 Web: Updated WebYouTubeMovie embed code to latest API.
  • 23837 Web: WebApplication: Removed Undocumented Quit method.
  • 27173 Web: WebContainer.ContentsScrolled no longer fires if the browser doesn't have x and y scroll information available.
  • 34544 Web: WebContextualMenus no longer get disabled when dialogs and containers are removed.
  • 35577 Web: WebControl Lock properties can no longer be changed after the control has been sent to the browser.
  • 23681 Web: WebControls now respond to touch events as if they were left-mouse clicks.
  • 36667 Web: WebCursors no longer work (or autocomplete) in non-web projects.
  • 24858 Web: WebDialog Palettes no longer have a broken close icon when they first open.
  • 21684 Web: WebLabel backgrounds now have the proper transparency on IE9 and above. IE8 still does not support opacity.
  • 34242 Web: WebLabel now supports underline, strikethrough, and overline styles.
  • 27491 Web: WebLabels embedded in multiple levels of WebContainers or WebDialogs are no longer cut off.
  • 19928 Web: WebListBox no longer confuses the backing data between rows after calling InsertRow, DeleteRow or setting the ColumnCount.
  • 36787 Web: WebListBox. Fixed a bug which caused all WebListBox controls to share the same selected row style.
  • 32330 Web: WebPopupMenu now fires its SelectionChanged event on key events.
  • 36487 Web: WebRadioGroup now has proper error messages set when an exception is raised.
  • 34546 Web: WebSegmentedControl no longer fires Action event for each segment when setting the ListIndex.
  • 34345 Web: WebSession timeouts and WebApplication timeouts are now separated. WebApplication.SessionTimeout = The number of seconds after a browser disconnects that the session will actually be destroyed WebApplication.Timeout = The number of seconds after the last WebSession is destroyed that a CGI application will quit.
  • 23820 Web: WebSession: Fixed a bug which could cause NilObjectExceptions if you refreshed the browser too quickly.
  • 34335 Web: WebSession: Improved the efficiency of calling Quit in terms of how quickly the session gets released.
  • 34787 Web: WebTextField no longer sends its contents to the server on lost focus if the contents have not changed.
  • 30289 Web: WebTextField now works properly with password autofill mechanisms.
  • 35602 Web: WebTextField.TextChanged event now only fires when the text actually changes.
  • 34451 Web: Webtoolbar now responds to touch events on iOS and Android devices.
  • 34639 Web: WebYouTubeMove works on iOS again.
  • Windows:
  • 33681 Windows: Combobox/PopupMenu MouseWheel event now fires even if the mouse cursor is not positioned over the control since this is what Windows expects anyway, this fixes issues in the IDE where the Method/Property Names could be changed by mistake
  • 35178 Windows: Listbox content now updates properly when the user scrolls using mouse gestures (i.e. finger scrolling).
  • 36357 XojoScript: The DebugBuild constant, which was always set to False, is no longer automatically added to all XojoScripts.
  • New Items:
  • 34429 Compiler: 'Using' is now a reserved word in the language.
  • 34414 Compiler: A new intrinsic namespace, "Global", provides access to the global namespace. This lets you treat the global namespace as though it were a module, referring to its members directly, which can be useful if you want to use a global symbol which is shadowed by some local declaration.
  • 33438 Compiler: A new type, Text, has been added for dealing with textual data. This is intended to supersede the current String data type, which has the problem of representing both a bag of bytes and textual data.
  • 34217 Compiler: Added a "Using" statement to the language. This allows for more compact code when dealing with nested modules.
  • The "Using" statement imports the public members of a module into the current scope, making them available for unqualified lookup as though they had been defined at the point where they were imported. Imported symbols may not redefine names which are already declared in the current scope, though they may shadow names defined in outer (containing) scopes. Methods are an exception, since they may be overloaded based on their parameters. A Using statement inside a method body may refer to modules imported by previous Using statements, but Using statements which belong to classes or modules have no defined evaluation order, and must each define their target modules independently.
  • 32423 Compiler: Added the UInteger data type, which is an alias for UInt32 on 32-bit builds and UInt64 on 64-bit builds.
  • 3317 Compiler: Locally scoped constants can now have an explicit type.
  • 34613 Compiler: The language now supports explicitly typed constants in non-local scope.
  • 34746 Desktop: Added a RowDepth function to ListBox that allows one to determine the nesting level of a row.
  • 35817 Desktop: ListBox now has a getter/setter pair of functions, called RowIsFolder, to allow a row's "folder" status to be toggled after the row has been added to the ListBox.
  • 31126 Framework: Added TLS v1.1 and v1.2 support and constants for SSLSocket.
  • 30213 IDE: Added new General Preferences to show types and default values in the Navigator.
  • 36661 IDE: Added Preferences to control how default values and types show in the Navigator.
  • 36885 IDE: Failing to create or update the cache files for debug compiles no longer causes an exception but it will mean compiles for debugging are potentially slower without the cache.
  • 35952 Language: Added String.ToText method. This function attempts to convert the String to Text assuming there's a known encoding and that those bytes are valid for that encoding, otherwise an exception is raised.
  • 34309 Language: Added UInteger type.
  • 19412 Web: Added App.HandleURL event which can be used to return content for Google's AJAX Indexer.
  • 27156 Web: Added HandleURL event for handling any request which would normally result in a 404 Not Found error. This will allow using just about *any* url for program specific uses.
  • 29283 Web: Exposed Windows Service events Pause, Resume and Stop in WebApplication.
  • 34399 Web: WebApplication: Added HandleURL event to allow processing requests which would have resulted in a 404 Missing Page response.
  • 31412 Web: WebApplications can now intercept 404 File Not Found errors.
  • 31768 Web: WebButton now has an AutoDisable property which disables the button when it is clicked (assuming the Action event has been implemented).
  • 17528 Web: WebSession: Added a property Connection as ConnectionType which indicates if the browser is connected via a WebSocket or AJAX. CGI apps will always have a value "AJAX".
  • Changes:
  • 34949 All: RuntimeException has gained a Reason property, which is of type Text and supersedes the existing Message property. It has also gained CallStack method which returns an array of Xojo.Core.StackFrame objects.
  • 34791 Compiler: Added a new type called Auto, which performs automatic boxing and unboxing of data. It's similar to Variant except that it does not perform any runtime conversions.
  • 35064 Compiler: CType expressions can now be used as the left hand side of the . operator.
  • 34932 Compiler: Improved the quality of errors reported when trying to call functions in an incorrect way.
  • 35162 Compiler: Structures on iOS cannot contain inline strings.
  • 19052 Compiler: When a class does not fully implement an interface, the error list now shows which methods are missing.
  • 9890 Debugger: Items in arrays of String can now be inspected like any other string value.
  • 8204 Debugger: The debugger now supports typing names in the variables pane to jump to items.
  • 36336 Framework: SMTPSecureSocket: Added a property for specifying whether you want to use STARTTLS or SSL/TLS for connecting to an SMTP server.
  • 36337 Framework: SSLSocket, HTTPSecureSocket, SMTPSecureSocket and POP3SecureSocket now default to use TLSv1 instead of SSLv3.
  • 34698 IDE: About box licenses pane sorts descending and highlights keys that were valid when the build was made but have since expired. Note that downloading keys will ONLY put keys in the DB that were / are valid for this build based on the build date.
  • 34512 IDE: Added Xojo Cloud to list of targets in the constant editor for dynamic constants.
  • 36880 IDE: Attributes are pretty forgiving and will now simply use a quoted version of a keyword if you set one as the attribute name.
  • 34268 IDE: Error reports now include error numbers as well as error messages if they are set to be non-zero.
  • 19636 IDE: In the Code Editor, Shift-Return adds "Then" and "End If" when needed. Also, "#if" is closed properly with case matching "#endif".
  • 36915 IDE: Locking controls no longer causes items to lose super.
  • 34967 IDE: On Shared Inspector, changed text of the "auto increment version info" property to say "auto increment version". Note that this does NOT change the actual property name.
  • 36331 IDE: Only usable resize handles show in layout editor.
  • 2778 IDE: Properties defined as an Enum type will use the enumeration from the project for the source of the enumerated values it can take on in the Inspector.
  • 33923 IDE: We now write the TOC to icns files and no longer write out lots of 8 byte icns files in the IDE resources directory.
  • 33933 Mac: System.Gestalt is now deprecated as the underlying Gestalt function has been deprecated since OS X Lion.
  • 31524 MacCocoa: Applications now link against the 10.9 SDK.
  • 35161 Web: HTTP Responses now include a standard HTTP/1.1 response messages.
  • 35491 Web: Standalone apps will now automatically quit if they could not bind to the requested port.
  • 30101 Web: Web Applications now include an X-Frame-Options header by default with a value of SAMEORIGIN which gives most users the benefit of this header. Developers may change the value of this option by changing the value of the WebApplication.Security.FrameEmbedding property.
  • 36245 Web: Web Framework now correctly recognizes Internet Explorer 11 on Windows Phones.
  • 31352 Web: WebFile.URL no longer relies on the existence of a Session if its Session property is set to Nil.
  • 34486 Web: WebTextfield now triggers a TextChanged event when text is pasted into the field for better compatibility with password managers.
  • 36505 Web: WebToolbar.RemoveItem now sets the exception message when raising an OutOfBoundsException.
  • Docs and Examples:
  • 35027 DocLangRef: Added a note to RectControl.DrawInto to indicate that it does not work with HTMLViewer or OpenGLSurface.
  • 35350 DocLangRef: Added information to User Guide Book 1 (section 10.6) on how to replace the default projects that are created when you select Desktop, Web or Console from the Project Chooser.
  • 34195 DocLangRef: Added missing InNewWindow parameter to WebControl.ShowURL method.
  • 35421 DocLangRef: Added pages for WebGraphics.Save and WebGraphics.Restore.
  • 36991 DocLangRef: Added SMTPSecureSocket.SMTPConnectionMode.
  • 34774 DocLangRef: Added WebListBox.ColumnHeaderStyle page.
  • 35704 DocLangRef: Corrected note about Windows behavior for FolderItem.TrueItem.
  • 36958 DocLangRef: Corrected sample code for RectShape.Height and Width.
  • 36662 DocLangRef: Dictionary.Count now displays as read-only.
  • 34812 DocLangRef: Fixed typo on Italic page.
  • 36699 DocLangRef: IOException now links to NSError for a list of OS X error codes.
  • 36433 DocLangRef: Noted that HTMLViewer.UserAgent works on Windows.
  • 35051 DocLangRef: On Thread page, fixed Pragma link in "See Also" section.
  • 36062 DocLangRef: PopupMenu.AddSeparator now notes that separators are selectable on Windows and Linux.
  • 35335 DocLangRef: Removed incorrect quotes from Pragma Unused example.
  • 35642 DocLangRef: Removed incorrect WebMapViewer image.
  • 34714 DocLangRef: Removed out-of-date screenshots from OpenDialog page.
  • 35474 DocLangRef: Removed reference to Real Database on DataControl.Database page.
  • 35402 DocLangRef: Updated HTTPSocket (and HTTPSecureSocket) Get, GetHeaders, Post and SendRequest to indicate that the socket ErrorCode is set to -1 if the Timeout value is reached.
  • 34521 DocLangRef: WebListBox.Cell cannot use -1 to get entire row/column values.
  • 34711 Examples: Corrected path to graphics for Desktop/Controls/ListBox/SouceListExample and fixed compilation errors in Samples/SlideShow.
  • 34965 Examples: Fixed layout and sizing for Add/Edit Invoice dialog in EEWeb.
  • 35348 Examples: Fixed SSLTest instruction text to have correct command-line syntax for setting port.
  • 35346 Examples: Set name of SSLTest app to SSLTest for Xojo Cloud.
  • 35347 Examples: Set SSLTest port to 8081 in Shared Build Settings.
  • 34837 Examples: Updated BinaryStream example to check for existing files and to use Encodings.
  • 34761 Examples: XojoUnitConsole now has correct name for Windows app and test results output file.

New in Xojo 2014 Release 2 (Jul 1, 2014)

  • Bug Fixes:
  • Misc:
  • 32565 All: Assigning to Range's StartPos or Length properties now actually changes the value.
  • 25533 All: StyledText's RTF parsing speed has been improved.
  • Compiler:
  • 33271 Compiler: Array properties with a default value of Nil are now initialized to Nil instead of an empty array. This has the potential to break code as projects that used Nil as a default value for an array will now actually get what they asked for and uses of that array will raise NilObjectExceptions.
  • 31743 Compiler: Converting a double literal to a single is no longer dependent on the user's locale. For example, when assigning "3.14" to a Single, it used to become simply "3".
  • 33643 Compiler: Fixed a crash where the If operator would have incorrect reference counting.
  • 33320 Compiler: Improved the error message emitted when an operator is unsupported for the operands given.
  • 32280 Compiler: Improved the error messages received when an object or array property has a default value specified.
  • 21765 Compiler: IncludeFunctionNames is now respected by the Mach-O linker. The Mach-O linker only emits local symbol table information if IncludeFunctionNames is set to True. Note that IncludeFunctionNames does not control introspection metadata or class setup information, so tools such as 'strings' will still reveal information.
  • 28356 Compiler: Operator_Subscript now works when the object being subscripted was passed ByRef.
  • 26603 Compiler: The bitwise Not operator now works with all integer expressions and not just local variables.
  • 33361 Console: Console applications no longer leak the arguments array.
  • 32522 Console: Picture.FromData no longer loses alpha channel information.
  • 31707 Console: SSLSockets that are set to secure and told to listen no longer leak.
  • 30291 Creating a computed property no longer leaves the original property name with the original name
  • Database:
  • 32119 Database: MSSQLServerPreparedStatement.SQLExecute (or SQLSelect) no longer crashes.
  • 31927 Database: MySQLCommunityServer no longer causes failed assertions when SQLSelect/SQLExecute are invoked while other threads are running.
  • 32400 Database: RecordSet.Update/Delete now works with SQLiteDatabase where a PRIMARY KEY contains special tokens like a single-quote. It also now works if you have a BLOB as a PRIMARY KEY.
  • Framework:
  • 26555 Debugger: Hex canvas scrolls to the bottom and the odd/even row highlighting lines up better.
  • 33284 Desktop: Control.Index no longer raises a ThreadAccessingUIException when called from a non-main thread.
  • 9973 Desktop: Listbox headers that do NOT use a constant (starts with a # ) for the first column now work as expected and resolve any/all constants for any initial values.
  • 32973 Desktop: Optimized WindowCount function, most noticeable on Cocoa.
  • 29256 Framework: A space at the beginning of a string used in the Val function will process properly when converting hexadecimal values. For example, getting Val of a string like " &h1" will work the same as a string like " 1"; both will return a value of 1.
  • 25725 Framework: JSONItem now properly handles empty arrays and no longer converts them to empty objects when serializing.
  • IDE:
  • 33117 IDE (Windows/Linux): A window with a Backdrop image is no longer scaled when the picture is larger than the window size.
  • 32670 IDE: A NilObjectException in Templates Window has been fixed.
  • 32307 IDE: A single locked control, alone or in a selected group of controls, prevents you from trying to alter the locking settings as it makes no sense.
  • 27605 IDE: Analysis Warning settings are saved with the project rather than being global settings. Known Issue : Changing the analysis warnings does not dirty the project (see 33556).
  • 33075 IDE: Array methods are no longer suggested in Code Editor contexts where they are incorrect.
  • 32910 IDE: Changing a property for multiple selected items in the Web Layout Editor no longer causes an exception.
  • 33460 IDE: Changing a value thats in a text field then clicking the color selector will commit any pending changes.
  • 30583 IDE: Changing a web page to a web container no longer results in instances of the container being members of a control array.
  • 29960 IDE: Changing a Web Style property now dirties the project.
  • 32927 IDE: Changing the width of the Navigator does not reset the scroll position.
  • 33468 IDE: Clicking a boolean slider commits pending changes.
  • 32338 IDE: Clicking Deploy doesn't Build and clicking Build doesn't Deploy.
  • 33461 IDE: Clicking the interfaces buttons commits pending changes.
  • 33458 IDE: Clicking the locking inspector commits pending changes.
  • 33459 IDE: Clicking the pop up menu for enum and pictures editors commits pending changes.
  • 33673 IDE: Code Editor no longer allows you to edit the declaration line by clicking very high up in the code body.
  • 6288 IDE: Constants now default to NUMERIC since that IS the behavior they exhibit if you just leave the popup set to no selected type.
  • 28395 IDE: Controls that are private on a container are not shown in the autocomplete for the instances placed on other containers or windows.
  • 32393 IDE: Deleting build steps from any target works now works as expected.
  • 26713 IDE: Double-clicking a control on the Layout Editor no longer results in an empty list box
  • 21266 IDE: Dragging a new indeterminate progress bar from the Library now actually configures it as indeterminate on web projects.
  • 33336 IDE: Dragging an instance of a subclass of TextInputCanvas no longer results in an erroneous control array.
  • 32908 IDE: Empty columns at the beginning of a row are no longer dropped in the initial value for WebListBox rows.
  • 32866 IDE: Ensure that Line controls do not get added as 1 pixel in height and width.
  • 32645 IDE: Fix copy file steps when running on OS X for any target (OS X or others where it gets built locally then sent to the remote stub).
  • 33119 IDE: Fixed a crash that could occasionally happen on OS X when the code editor was closed.
  • 33607 IDE: Fixed a few more places where the IDE could hang during a Xojo Cloud deployment.
  • 26347 IDE: Fixed up issues drawing the code folding markers in the Code Editor.
  • 32671 IDE: Fixes to retain Inspector property values better when moving to different areas of the IDE.
  • 33182 IDE: Inline editing of a WebListBox with special characters in the header no longer messes up the headers.
  • 33107 IDE: Introspection types show up in autocomplete as expected.
  • 33071 IDE: Language Reference content updated.
  • 32593 IDE: Line Control is no longer invisible or offset improperly on layouts.
  • 26220 IDE: Made fixes so that Inspector fields text changes are now properly retained. This does not fix *all* situations, but should address most of them. If other situations are found, please report them as new cases.
  • 33855 IDE: Managing to get a carriage return inserted while the bracket highlighting is in progress is no longer possible.
  • 33219 IDE: Moving around in the navigator using the keyboard while debugging no longer causes an exception.
  • 33147 IDE: Now prevents the creation of a Control Set from a ContainerControl.
  • 32871 IDE: Parameters with default values like: c As Color = &cFF0000 no longer show as: c As Color = &&cFF0000
  • 27079 IDE: Preferences > Proxy will accept a value that does NOT start with a 0.
  • 33742 IDE: Projects are no longer marked as dirty by just clicking around the IDE.
  • 31881 IDE: REALControl and RealFontStyle no longer appear in autocomplete.
  • 32777 IDE: Relocate is only enabled if the item was NOT located when opening the project. It's not intended to be used as a means to swap classes around in a project.
  • 32748 IDE: Removing a subclass of container control no longer causes a NilObjectException.
  • 32403 IDE: Removing one item that is missing from a Copy File Step no longer causes an assertion.
  • 32775 IDE: Row highlights behave as expected in the Profiler and do not accumulate.
  • 30255 IDE: Run / Resume in the toolbar updates appropriately so its in the correct state.
  • 33572 IDE: Saving and reloading a project with external items no longer asks you to relocate them unnecessarily when they have not moved.
  • 31570 IDE: Search and replace changes update the Navigator right way (instead of waiting for a manual refresh).
  • 32912 IDE: Selecting a group of controls and then deselecting one and pressing the arrow keys no longer causes an exception.
  • 33180 IDE: SessionShutDownThread shows in the Debugger stack listing when you quit a thread.
  • 30142 IDE: Several obsolete bits of information are no longer written to binary, XML and text project formats.
  • 33692 IDE: Stack overflows caused by deleting some project items have been fixed.
  • 33760 IDE: Switching from a group of selected items to one item updates the Inspector properly.
  • 24398 IDE: Switching tabs using cmd-{ and cmd-} on OS X works as documented with appropriate short cuts for Windows and Linux. It behaves like a circular buffer so you can cmd-{ or cmd-} continuously and it just wraps around.
  • 33054 IDE: Tabs in the Inspector are in this order: ID, Advanced, then any others.
  • 11383 IDE: The Comment / Uncomment toolbar button works as expected. Contextual menu items and menu bar items for Comment also update as appropriate based on the current line and selection.
  • 33661 IDE: The IDE no longer has issues reading in a project that has relative paths in the vcp manifest that contain "//".
  • 32606 IDE: Trying to load a copy file step that had files that were in paths that did not exist no longer drops the item . Now they load and are marked as invalid/missing in the Copy File Step Editor.
  • 32588 IDE: Web views no longer get out of bounds exception when resizing.
  • 33715 IDE: WebContainerControls no longer cause exceptions if their width or height is set to zero.
  • 33952 IDE: WebStyle no longer requires multiple clicks to step over it in the debugger.
  • 33185 IDE: When debugging web projects, you should no longer have situations where you have to repeatedly use Step Over to actually step over single lines of code.
  • 33962 IDE: When selecting a bunch of items to print (including folders), the items and their contents will print.
  • 32846 IDE: When switching selected items the pane in the Inspector doesn't change unless it has to (e.g. you have the Advanced tab selected and the new item you select doesn't have such a tab).
  • 32402 IDE: Windows and Container Controls appear properly in a print out and do not have contents offset.
  • 33130 IDE: Windows and Linux menu bar now have an accelerator key for the top Insert menu item accessed via Alt-I.
  • 32995 IDE: Xojo Cloud builds no longer fail if Use Build Folder is turned off.
  • Web:
  • 32712 Web: Apostrophes in WebTextField.CueText no longer cause JavaScript errors.
  • 28070 Web: Calling AddHandler on a WebTimer now works properly.
  • 30193 Web: Calling WebCanvas.Refresh or WebCanvas.Invalidate in the Open event no longer causes a JavaScript error.
  • 33065 Web: CSS Gradient backgrounds now render properly on IE11.
  • 33100 Web: Feedback thank you page now redirects users back to the app instead of just the Host.
  • 33375 Web: FillOval and DrawOval now draw correctly on non-english systems.
  • 33222 Web: Mobile Safari version number is now detected properly.
  • 30766 Web: Non-visual controls no longer interfere with or capture mouse/touch events.
  • 31610 Web: Session.ConfirmMessage is no longer displayed if a JavaScript error occurs and the user submits the report.
  • 34051 Web: Sheet and Modal WebDialogs can now be moved by changing the Left and Top properties without moving the background.
  • 19783 Web: WebAnimator now accepts negative values for RotateX, RotateY and RotateZ.
  • 29276 Web: WebApplication.HandleSpecialURL now puts the QueryString and content into the correct WebRequest properties when running as CGI.
  • 33350 Web: WebContainer Javascript framework no longer triggers its shown event regardless of whether the event has been implemented.
  • 27553 Web: WebContainer Open and Shown events now fire properly when created through EmbedWithin in another control's Open event.
  • 31817 Web: WebContainers added via EmbedWithin no longer have an exponentially increasing interactivity delay.
  • 28718 Web: WebContainers now enable and disable their contained controls properly.
  • 22575 Web: WebDialog widths can now be changed at runtime.
  • 33313 Web: WebDialogs created in code no longer leak.
  • 32833 Web: WebGraphics.DrawString no longer causes JavaScript errors for apostrophes, quotes and backslashes.
  • 33420 Web: WebHTMLViewer no longer raises an exception when calling LoadPage with an empty string.
  • 33512 Web: WebListbox now refreshes itself properly when it is populated with enough rows to cause the vertical scrollbar to appear in the Open event.
  • 19311 Web: WebMapLocation now changes encoding to UTF8, which is the way Google wants it.
  • 32887 Web: WebMapViewer now connects to the map provider using the same protocol as was used to load the WebPage.
  • 31035 Web: Webpages no longer leak memory when they are closed.
  • 23167 Web: WebSegmentedControl.SegmentCount can now be set at runtime.
  • 31785 Web: WebSegmentedControl.SegmentCount can now be set in the Open event.
  • 33447 Web: WebSegmentedControl.Selected method works again.
  • 30289 Web: WebTextField now sends text entered by autocomplete or autofill to the server automatically.
  • 33500 Web: WebTimers no longer intercept mouse clicks.
  • 33515 Web: WebToolbar default gradient renders properly on IE8 & IE11 again.
  • 30847 Web: WebToolbar now renders correctly on IE10.
  • 26649 Web: WebToolbar.ItemCount now returns the correct number of items.
  • 26648 Web: WebToolbarMenu no longer shows its menu if the toolbar is disabled.
  • 32944 Web: WebYouTubeMovie now plays over HTTP and HTTPS.
  • 31004 WebSDK: Added missing iOS Background example to WebSDK folder.
  • Windows:
  • 32426 Windows/Linux: MsgBox and MessageDialog modality is now consistent, i.e. MsgBox is now always app-modal, and MessageDialog is app-modal when called with ShowModal and window-modal when called with ShowModalWithin.
  • 33396 Windows: A BevelButton configured with HasMenu now draws the menu arrow again on Windows (was broken if the theme was anything but classic theme).
  • 31484 Windows: A BevelButton on a ContainerControl, whose BackColor is set, now inherits the ContainerControl's background color instead of the Window. This fixes the edges around the BevelButton not drawing with the right color.
  • 33085 Windows: Converting date/time to string now sets the string encoding properly when the format locale is different from the system locale.
  • 33305 Windows: Dragging outside your app no longer freezes/crashes on Windows 8.
  • 8248 Windows: FolderItem dragging from one Xojo app to another now works.
  • 32134 Windows: ListBox headers and borders no longer flicker on Windows when adding rows (this mainly affected users running on Classic theme).
  • 27083 Windows: Now properly handles mouse wheel events from un-dentented (i.e. precision) mice, and mouse gestures (i.e. scrolling on touch screens with your fingers).
  • 33049 Windows: WebKit based HTMLViewer no longer crashes the app when one of our drag objects enters it.
  • New Items:
  • 29883 Database: Added PostgreSQLDatabase.SSLAuthority As FolderItem property, this represents the root SSL certificate file.
  • 27581 IDE: Constants shows similarly to properties in the info bar above the editor when you click on one.
  • 24339 IDE: Inspector control sizes have been compressed and Inspector layout improved to reduce scrolling.
  • 31336 IDE: Moved Group Box to the Organizers group in the Library.
  • 28090 IDE: Purchase license dialog now has a sign in button right on the dialog to make it easier to check for updated licenses. Message is also expanded to give users a better idea of what action to take.
  • 21581 IDE: Users can add a plist xml file to a project to augment the plist generated by the IDE. Notes : Having more than one added to a project is NOT recommended as there is no fixed order for them to be added. Any items USER plists create that duplicate keys the IDE creates will be over written by the IDE (basically you can't replace or augment entries the IDE creates) Only top level keys are dealt with (keys that are immediately children of PLIST > DICT in the Plist XML format)
  • 33363 Plugin SDK: Added new REALnewInstanceOfClass function to create a new object based on the class's REALclassDefinition.
  • 29171 SQLiteDatabase: Updated to SQLite version 3.8.5.
  • 30101 Web: Added x-frame-options header to prevent clickjacking attacks.
  • 18340 Web: Use WebToolbar.AppendItem to add WebToolbarItems to a WebToolbar at runtime.
  • 33173 Web: Use WebToolbar.RemoveItem to remove WebToolbarItems at runtime.
  • 32201 Web: WebContainer now has constants for the three possible values of the ScrollbarsVisible property: ScrollbarsAutomatic, ScrollbarsAlways and ScrollbarsNever.
  • 22898 Web: WebListBox has a new SelectionStyle property for setting the style of selected rows.
  • 15608 Web: WebListBox now has a HeaderStyle property for setting the style of the header. Web: WebListBox now has a HeaderColumnStyle method for setting/getting the style of individual headers.
  • 16938 Web: WebTextArea now has a ScrollPosition property.
  • 23787 Web: WebTextField and WebTextArea now have a SelectAll method.
  • 17572 Web: WebYouTubeMovie now supports changing the URL at runtime.
  • Changes:
  • 31571 All: IllegalCastException messages now give more information as to what went wrong.
  • 33293 Compiler: OS X binaries now have the MH_NO_HEAP_EXECUTION flag set, which is more secure.
  • 32236 Debugger: On Linux, the terminal emulator used when launching a command line application now lets the system decide what's best, instead of hardcoding xterm.
  • 33533 Framework: Introspection metadata is now loaded much less aggressively.
  • 33109 IDE: A space, or series of spaces, as the initial part of the filer will not cause it to run. If there is text following the space(s) it will run.
  • 32596 IDE: Computed properties show up as their own entry in a profile instead of being subsumed by whatever called them.
  • 4849 IDE: Copy File Steps now shows missing file names (fixed as part of 32606).
  • 24073 IDE: When deploying to Xojo Cloud, projects with the StageCode < 3 will now have a suffix appended to the app name of -Dev, -Alpha or -Beta.
  • 15524 IDE: You can now multi-select in the Issue Resolution dialog and the "check all" button works appropriately with multi-select.
  • 32536 Linux: Optimized drawing pictures with mask, or white transparent.
  • 32556 Linux: Optimized MouseDrag so that it no longer causes the event loop to run continuously. MouseDrag events are now dispatched on a set frequency as to not cause 100% CPU usage and unresponsiveness due to time intensive code in user's MouseDrag event. In the IDE this means resizing/moving controls on the layout editor no longer exhibits a noticeable delay when the mouse is released.
  • 33379 SQLiteDatabase: Extension loading is now disabled by default. A new property called LoadExtensions can be set to enable/disable extension loading as desired.
  • 32498 Web: AddHandler and RemoveHandler now work on built-in web controls.
  • 33254 Web: Application arguments are now passed to the Open event.
  • 32664 Web: Minor speed improvements for CGI apps.
  • 30100 Web: Standalone apps now set the X-Content-Type-Options header to "nosniff".
  • 33557 Web: WebControlWrapper now has a shared method which developers can override to dynamically add items to the HTML tag when a session is being created.
  • 33410 Web: WebHTMLViewer now uses http://www.example.com/ instead of http://www.xojo.com/ as the default URL.
  • 33517 Web: WebToolbar Captions are no longer selectable, Icons are no longer draggable.
  • 21611 Windows: Updated WebKit based HTMLViewer to CEF3 (1650.1562).
  • Docs and Examples:
  • 16223 DocLangRef: Added links to Database.ErrorCode page for the error codes for various database engines.
  • 33431 DocLangRef: Added TargetXojoCloud links to #If..#Endif page.
  • 33860 DocLangRef: Added WebSegmentedControl.Caption to list of methods; Updated WebSegmentedControl.Segment method to show that you can also pass it a picture.
  • 5099 DocLangRef: Clarified parameters to HTMLViewer.LoadPage.
  • 32926 DocLangRef: Clarified that the Application class can only be used in Desktop apps.
  • 33465 DocLangRef: Clarified usage of octal values for FolderItem.Permissions.
  • 33487 DocLangRef: Fixed formatting of example code for HTMLViewer.IsAvailable.
  • 29174 DocLangRef: Fixed page name for MenuItem.Constructor to show Tag As Variant.
  • 32950 DocLangRef: Fixed typo in example code for Database.ErrorMessage.
  • 33260 DocLangRef: Fixed typos in example for MajorVersion, MinorVersion, BugVersion and NonReleaseVersion.
  • 31996 DocLangRef: Minor improvement to TextInputStream example code.
  • 31314 DocLangRef: Minor updates to TextInputStream.ReadAll. Removed TextInputStream.Read page as it was not used (TextInputStream.Read links to Readable.Read).
  • 31782 DocLangRef: Removed examples that refer to unavailable TAPITest.rbp project.
  • 32981 DocLangRef: Removed reference to pre-Xojo IDE from AttributeInfo page.
  • 33407 DocLangRef: Removed reference to Real Software in EmailMessage.Headers page.
  • 33377 DocLangRef: Removed WebControl.MouseDrag event handler.
  • 33259 DocLangRef: Since UserCancelled now works with Cocoa apps, removed warning that it did not.
  • 32728 DocLangRef: Updated EncodeBase64 page to indicate that CRLF is used when wrapping the generated text.
  • 33303 DocLangRef: Updated HTMLViewer.SecurityChanged to indicate it only works on Windows with the Native renderer.
  • 31983 DocLangRef: Updated RSA encryption docs.
  • 24692 DocLangRef: Updated SQLiteDatabase page to note that AES-128 encryption is used when encrypting the databases. Also added link to SQLite encryption doc page.
  • 32022 DocLangRef: Updated Timer page with a Note section on how to use them to update the UI.
  • 33380 DocLangRef: WebListBox.ListIndex no longer indicates it is read-only.
  • 32554 DocLangRef: WebPage Close event and method now go to links for the WebPage rather than the WebControl.
  • 31377 DocUserGuide: Fixed numbering of graphics in ListBox section of Book 2.
  • 29485 DocUserGuide: Updated Tab Order Editor screen shot in User Guide Book 1: Fundamentals.
  • 32465 Examples: Fixed incorrect Shell type for property in WebSessionContext example.
  • 33649 Examples: Fixed IPCSocket example to use NativePath to set the IPCSocket path.

New in Xojo 2014 Release 1.1 (Apr 16, 2014)

  • Bug Fixes:
  • 32630 Compiler: Building an OS X application on Windows now works.
  • 32668 IDE: Cloud Deployment no longer hangs at 99% complete.
  • 32156 IDE: The type field for WebTextFields no longer shows one entry as E Additionally the Inspector Behavior editor for enum values permits values that have - in the label (which caused this bug).
  • 32913 Linux: A BevelButton on a TabPanel no longer has its icon displaced.
  • 32629 Linux: A Transparent Canvas on a non-Transparent (non-direct parent) Container now draws (and refreshes) in the correct position. For example a Transparent Canvas on a Transparent Parent ContainerControl that lives on a non-Transparent ContainerControl would exhibit this bug. This affected the WebStyle editor in the Linux IDE causing things to not draw/refresh properly.
  • 32877 Linux: Controls on a TabPanel are no longer offset improperly.
  • 32729 Linux: Remote Debugger Console no longer asserts about an undefined __error_location symbol.
  • 32747 RegEx: No longer limited to 50 (non-subpattern) replacements.
  • 32952 Xojo Cloud: Deployment no longer fails if you have " - " in the server name. Total: 9
  • Docs and Examples:
  • 32652 Examples: Replaced missing Copy File Build Steps for EEWeb.

New in Xojo 2014 Release 1 (Mar 11, 2014)

  • Several new features:
  • MoviePlayer uses AVFoundation on OS X to support Mac App Store.
  • New If operator for single-line If statements that can be used as expressions.
  • New Crypto functions for DER and BER conversion.
  • CancelBuild IDE Script command.
  • Added WebTextField.CueText property.
  • Can specify the network interface to use for web apps.
  • WebContainers scroll properly on mobile devices.
  • Added HeaderPressed and HeaderStyle properties to WebListBox.
  • Added TargetRemoteDebugger constant to know when the remote debugger is being used.
  • Much improved tab behavior within IDE.
  • Bug Fixes:
  • Misc
  • 31607 All: Crypto.RSAVerifySignature no longer throws an exception when verification fails.
  • 32341 All: Fixed a crash with strings that would occur on OS X given certain memory allocation patterns.
  • 13053 All: Getting the type info of a Report no longer raises a NilObjectException.
  • 31962 All: Introspecting the introspection classes no longer leaks implementation details.
  • 31968 All: Introspection no longer shows computed property getters and setters as MethodInfo objects.
  • 31423 All: PostgreSQL dylib is no longer included when you compile for and use SQLiteDatabase in a project. This also more generally affects plugins that depend on classes in other plugins.
  • 19146 All: Setting a shared property via introspection no longer crashes.
  • 2759 All: Setting property values via introspection now does proper type checking when the property's type is an object.
  • Compiler
  • 31280 Compiler: An error is now reported when a label is defined multiple times in a single function.
  • 31514 Compiler: Fixed a bug that would cause CType to generate incorrect code if the value passed in was already of the requested type.
  • 31787 Compiler: Malformed property declarations like "blah(33( As Integer" no longer cause syntax errors in the wrong place or cascading errors.
  • 20414 Compiler: No longer gives incorrect errors when parsing a structure field that has no type specified.
  • 32048 Compiler: The stack is now 16-byte aligned on all platforms.
  • 23656 Compiler: Variant properties with default values now work correctly and don't cause crashes.
  • 31190 Console Debugger Stub: Path Parser no longer hangs if a UNC Remote path is given for the downloads folder.
  • Database
  • 26219 Database: MSSQLServerDatabase now works with MS SQL Server 2012 (it worked previously only if you had an older SQL Native Client installed like MS SQL Server 2008).
  • 26701 Database: MySQLCommunityServer: after RecordSet.Update is called we can no longer guarantee the contents of the RecordSet, so we now clear the contents instead of leaving it in a bad state where the same record continues to be updated.
  • 10788 Database: OracleDatabase: inserting, updating, and retrieving an Oracle date now properly inserts/updates/retrieves the time.
  • 32253 Database: PostgreSQLDatabase no longer returns wrong double values on Windows 8 if the localization uses a non-period decimal sign.
  • 29581 Database: SQLiteDatabase: RecordSet now supports updating/deleting a record on a table that has a compound/composite key. Before it would update/delete multiple rows based on whichever primary key was found first.
  • Debugger
  • 31325 Debugger: No longer crashes when going to the 'Runtime' viewer's contents.
  • 29730 Debugger: No longer shows compiler-generated functions like AddHandler.Stub.0.
  • Framework
  • 31923 Desktop: ListBox: pressing the "End" key on a listbox without a vertical scrollbar no longer asserts when there is only one page (or an empty set) of rows.
  • 31363 Enumerations cannot have items that are blank
  • 31120 Framework: Fixed RegEx.Replace (with ReplaceAllMatches = True) so that we're finding all matches at once and replacing them instead of finding the first match, replacing that, and finding again with the modified string, since the modified string can change what is matched.
  • 31625 Framework: XojoScript: Fixed a rare crash that could occur when a script with classes has finished running.
  • IDE
  • 10629 IDE: #pragma, #if, #else, #endif will all apply the same standard case as other keywords in autocomplete (initial letter is capitalized).
  • 29266 IDE: A carriage return can no longer be used in the attribute editor or for attributes themselves.
  • 15390 IDE: A directory of files when added to a Build Automation Copy Files step now copies all its contents recursively to the target.
  • 31285 IDE: A project with a web control wrapper that has no data for its Navigator icon no longer causes an exception.
  • 31408 IDE: Add Menu handler on OS X no longer uses an Apple system keyboard shortcut.
  • 31282 IDE: An issue that could result in a text (VCP) project manifest referring to an old version of a file that used project items with names that required special characters (umlauts etc) has been fixed.
  • 31281 IDE: An issue where build scripts may not read properly has been fixed.
  • 17184 IDE: Array keyword now autocompletes.
  • 32 IDE: Arrays of classes with members that are arrays autocompletes properly.
  • 16284 IDE: Cancelling the edit of a platform-specific instance of a constant using the multi-line editor dialog no longer dirties a project.
  • 29045 IDE: Changing the name of a control that is a member of a control set leaves that control still selected.
  • 30647 IDE: Check Project for errors rebuilds the error list every time.
  • 1237 IDE: Code indentation works much better when you have #if /#endif surrounding normal code.
  • 28963 IDE: Copy and paste of code no longer renders autocomplete ineffective.
  • 31739 IDE: Creating a constant with a duplicate name in a class or module is no longer possible.
  • 31247 IDE: Cutting part of the name out of the method name combo box no longer clears the whole name.
  • 4703 IDE: Default web pages and default windows can be external in plain text projects. Previously every time you reloaded the project you'd have to reset this.
  • 31121 IDE: Double-clicking a control on the Layout Editor when it is scrolled no longer makes it select the wrong item to add the events to.
  • 29863 IDE: Edit Super class is in the contextual menu again. It opens the super in a new tab when you select it.
  • 10886 IDE: Exporting and importing of localization data no longer has issues if there are nested modules with the same name as the full path is now used.
  • 19398 IDE: Extension methods for Interfaces now autocomplete.
  • 31211 IDE: Fixed a NilObjectException that could occur when loading old recent items.
  • 30219 IDE: Fixed issue with controls bleeding through parent ContainerControls.
  • 31564 IDE: Fixed the property inspector groups for WebTextField.
  • 31910 IDE: Graphics for Windows and Linux updated - should look better.
  • 31472 IDE: Implementing an interface optionally adds #pragma error instead of #error.
  • 10126 IDE: Improved speed of Layout Editor.
  • 26854 IDE: In the Code Editor, you can now extend the selection word by word.
  • 31426 IDE: Local variable declarations are found for autocomplete regardless of whether there is a bunch of white space preceding them or not.
  • 30810 IDE: Methods and properties that are inherited, as in the case of Introspection.PropertyInfo, are in the autocomplete list where they might not have been before.
  • 31087 IDE: Notes in text (VCP) projects can once again be edited after the initial save of a project.
  • 30555 IDE: Now ignore the scroll wheel on property editors that use a combo box (method name, menu handler name and text font).
  • 29736 IDE: Object is now in the autocomplete list.
  • 26295 IDE: Option-tab has no special meaning so behaves like pressing Tab and will trigger autocomplete.
  • 28364 IDE: Pressing Ctrl-D duplicates the selected item in the Layout Editor.
  • 31397 IDE: Pressing Option (on OS X) or Alt (on Windows and Linux) when closing a tab closes all other tabs, leaving the "left most" tab open.
  • 31145 IDE: Profile data is not hidden when you filter or clear the filter.
  • 30809 IDE: Renaming a folder that has the same name as an existing super class no longer renames the super class in the instances.
  • 6721 IDE: Replacing a fully selected word in auto complete with the autocomplete selection of the same thing is no longer offset to the left by the length of the selected item.
  • 31263 IDE: Rows that start with "Main Thread" or "Thread (xxxx)" will now jump to the right item in the project source code when double-clicked.
  • 30775 IDE: Selecting a group of objects in the report editor is no longer quite so slow.
  • 21315 IDE: Shared method parameters now autocomplete properly.
  • 9898 IDE: Shift-Option-Up and Shift-Option-Down in the Code Editor extend the selection as expected.
  • 31438 IDE: Standardize format won't change the NAME of the method being used in a declare if it matches the name of a Xojo module, class, etc.
  • 14727 IDE: The local variable declared in a "Catch " or "Catch as type" autocompletes properly within the Catch portion of the code.
  • 32006 IDE: The tab order on the Project Chooser has been fixed.
  • 31537 IDE: Using a folder with special characters in the name in a build copy step properly saves and restores in various project types.
  • 10225 IDE: Using special characters (like ƒ) in the name of a file / folder now works.
  • 31342 IDE: When debugging a Carbon app, the debugger no longer crashes when looking at contents of a ContainerControl.
  • 3899 IDE: When you do a "super return" (shift-return) to close a line starting with #if the matching #endif is set to the same case as the #if.
  • 31394 IDE: When you select an error in the error listing it jumps to the right item in the Navigator.
  • Cocoa
  • 32047 MacCocoa/MacConsole: An issue where FolderItem.Item erroneously returned Nil has been fixed.
  • RegEx
  • 10785 RegEx: a replacement pattern, when there is no subexpression, no longer yields odd results
  • 11583 RegEx: enforced replacement pattern subexpression limit to 50 as documented. This also changes how we treat octal values, the following rules are now applied: \120 => treated as an octal \55 => treated as an octal (since it exceeds our limit of 50 subexpressions) \12 => treated as an octal iff it exceeds the subexpression limit It is suggested that you use the $ instead as this avoids a lot of ambiguity.
  • Web
  • 31331 Web: Calling DeleteAllRows from within WebPopupMenu.Open no longer incorrectly removes rows added afterwards.
  • 32112 Web: CGI WebApp mutex now gets cleared properly when calling App.Quit.
  • 31561 Web: Fixed a bug in WebDeviceLocation which caused the Open event to not fire properly, which in turn caused other code to fail when the Open event javascript exceptions were fixed.
  • 31293 Web: Fixed a regression in WebListBox where adding rows in the constructor would fail.
  • 31726 Web: The undocumented FileCount and FileAtIndex methods have been removed from WebApplication.
  • 31675 Web: WebHTMLViewer now scrolls properly on iOS and Android devices.
  • 18286 Web: WebImageView now appears disabled when it is.
  • 29332 Web: WebListBox now appears disabled when it is.
  • 31117 Web: WebListBox.DeleteAllRows, RemoveRow, ScrollTo and Selected methods no longer cause Javascript errors if called before the Shown event.
  • 31670 Web: WebSDK javascript methods are no longer sent to browsers if no WebControlWrapper subclasses are present in the project.
  • 31344 Web: WebSegmentedControl no longer fires the Action event if ListIndex changes due to a non-user action.
  • Windows
  • 31011 Windows IDE: Fixed issue where the IDE would not display in the taskbar after opening a project.
  • 30948 Windows: Calling Window.Show on a minimized window now correctly restores a previously maximized window to its maximized state.
  • 31761 Windows: ComboBox.Text now correctly returns the text in the ComboBox instead of relying on the ListIndex to match the Text (outside the selection change event), which is not a guarantee on Windows
  • 32063 Windows: Fixed BevelButton drawing in Classic theme, also fixed drawing the focus ring (this even affected non-classic themes).
  • 28154 Windows: Format now works properly when the user changes the default decimal/thousands separator for the English locale
  • 31180 Windows: Initiating another drag in the Listbox.DragRow event no longer crashes.
  • 26165 Windows: Listbox.CellHelpTag now disappears when the window is deactivated (via Alt-Tab on Windows).
  • 31535 Windows: MouseWheel now works for windows on non-primary screen.
  • 31089 Windows: Repositioning an ActiveX control before it's fully activated/shown can cause the ActiveX control to crash (depending on how the ActiveX control handles that particular case). We now defer this until the control is actually activated/shown to prevent crashes.
  • 31847 Windows: RoundRectangle and Oval controls no longer draw on top of other controls that are above its z-order.
  • 8212 Windows: SerialPortCount/SerialPort no longer opens each available port as it enumerates through them.
  • 30933 Windows: Shell no longer crashes with commands that exceed 4096 characters in length.
  • 24952 Windows: Shortcut keys F10 to F24 now work. Total: 107
  • New Items:
  • 17204 All: Improved the message of the exception raised when assigning to a read-only computed property via introspection.
  • 3827 All: Introspection.PropertyInfo now has an IsComputed property to differentiate computed properties from simple properties.
  • 28626 Compiler: Added the If operator to the language.
  • The If operator behaves much like C/C++'s ternary operator, VB's IIf, or VB.Net's If operator. It takes three parameters: a boolean for the conditional, the value to be returned if the conditional evaluates to true, and the value to be returned if the conditional evaluates to false.
  • The return type would be the common type between the two values. For example, if an Int8 and an Int32 were passed in, the result type would be Int32. Having no common type would result in a compile error.
  • For example, this code would print "Big number": Dim myInteger As Integer = 41 MsgBox If(myInteger > 40, "Big number", "Small number")
  • 3988 Compiler: Locally scoped constants can now use constant expressions as their values.
  • 31113 Framework: Added new Crypto DER and BER encoding functions: Crypto.DEREncodePrivateKey( privateKey As String ) As MemoryBlock Crypto.DEREncodePublicKey( publicKey As String ) As MemoryBlock Crypto.BERDecodePrivateKey( privateKey As String ) As MemoryBlock Crypto.BERDecodePublicKey( publicKey As String ) As MemoryBlock
  • 13755 Framework: TargetRemoteDebugger has been added. It is true when remote debugging.
  • 32324 IDE: "This Computer" has been removed from the Build Settings for Web projects.
  • 31150 IDE: Added CancelBuild IDE Script Pre-Build command.
  • 30185 IDE: If you enter an app name in the new project pane that will be the default name for saving.
  • 30916 IDE: New "buy" dialog, logo, etc. added.
  • 31766 IDE: Selecting multiple controls now identifies each control in the selection.
  • 30232 IDE: Tabs are are now variable sized.
  • 24090 IDE: The IDE on OS X now collects more information about failed assertions and crashes and will submit it automatically with the Feedback report.
  • 31115 IDE: The inspector groups "Control Set", "Font", "Focus Control" and "Database Binding" are now on the advanced tab.
  • 16871 IDE: When Alt (Windows), Shift (Linux) or Option (OS X) are pressed as the IDE starts, it will not load any saved UI state.
  • 14793 Web: Added CueText property to WebTextField which is available on all supported browsers except IE8 and IE9.
  • 31788 Web: Added two command line parameters for setting which NIC interface to use for secure and non-secure connections.
  • --NetworkInterfaceIndex=0 --SecureNetworkInterfaceIndex=1
  • The values correspond to the indexes returned when you enumerate NetworkInterfaces using the System class.
  • 14097 Web: ShowURL now takes an optional parameter "InNewWindow as Boolean" which defaults to False, which asks the browser to open the URL in a new window. If the browser has popup windows disabled, this method will fail silently.
  • 27913 Web: WebContainers now behave better on mobile devices with regards to scrolling. Touch-scrolling is now only enabled if you have scrolling set to Always or Auto and there is overflow content.
  • 17238 Web: WebListBox now has a HeaderPressed event and a HeaderStyle property. Total: 20
  • Changes:
  • 31446 Console: Failed framework assertions now cause the process to abort instead of continuing in an unknown state.
  • 31168 Desktop: All uses of QuickTime and QTKit have been removed. As part of this, the following have been removed from the framework
  • Classes
  • EditableMovie
  • QT3DAudio
  • QTEffect
  • QTEffectSequence
  • QTGraphicsExporter
  • QTGraphicsExporter
  • QTSoundTrack
  • QTTrack
  • QTUserData
  • QTVideoTrack
  • System.QuickTime
  • MoviePlayer properties
  • MoviePlayer.EditingEnabled
  • MoviePlayer.PlayerType
  • MoviePlayer.PlaySelection
  • MoviePlayer.QTMovieController
  • MoviePlayer.QTVRNode
  • MoviePlayer.QTVRNodeCount
  • MoviePlayer.QTVRPan
  • MoviePlayer.QTVRPanMax
  • MoviePlayer.QTVRPanMin
  • MoviePlayer.QTVRPanTiltSpeed
  • MoviePlayer.QTVRTilt
  • MoviePlayer.QTVRTiltMax
  • MoviePlayer.QTVRTiltMin
  • MoviePlayer.QTVRZoom
  • MoviePlayer.QTVRZoomMax
  • MoviePlayer.QTVRZoomMin
  • MoviePlayer.QTVRZoomSpeed
  • MoviePlayer.Rate
  • MoviePlayer.SelLength
  • MoviePlayer.SelStart
  • MoviePlayer methods
  • MoviePlayer.Clear
  • MoviePlayer.Copy
  • MoviePlayer.Cut
  • MoviePlayer.Paste
  • MoviePlayer.QTVRHotSpotCount
  • MoviePlayer.QTVRHotSpotID
  • MoviePlayer.QTVRNodeTypeObject
  • MoviePlayer.QTVRNodeTypePanorama
  • MoviePlayer.QTVRTriggerHotSpot
  • MoviePlayer.QTVRTriggerHotSpotNames
  • MoviePlayer.Undo
  • FolderItem methods
  • FolderItem.CreateMovie
  • FolderItem.OpenEditableMovie
  • Global methods
  • GetQTCrossFadeEffect
  • GetQTGraphicsExporter
  • GetQTSMPTEEffect
  • 28995 IDE: You can now tear off tabs and there is a spill-over menu on the right when there are too many tabs to display.
  • 31683 MacCocoa: A new MoviePlayer control has been written which does not rely on QuickTime/QTKit.
  • 31685 MacCocoa: The Cocoa framework is now a framework bundle inside of the Frameworks folder instead of a dylib.
  • 31709 Plugins SDK: Functions and types relating to QuickTime have been removed from the SDK. Stubs remain in place in the runtime in order to avoid older plugins crashing, but the stubs are all no-ops. Total: 6

New in Xojo 2013 Release 4 (Dec 17, 2013)

  • Bug Fixes:
  • Misc
  • 30925 All: EncodeHex no longer crashes in certain circumstances if told to insert spaces.
  • 28050 All: Fixed handling of Chinese and other Unicode characters in StyledText's RTF code.
  • 30963 All: MemoryBlock.CString now reliably generates OutOfBoundsExceptions when there is no NUL terminator present.
  • 14061 All: No longer crashes when creating an XML element with an invalid namespace.
  • 22560 All: No longer displays a failed assertion dialog if the debugged app cannot connect to the debugger.
  • 29908 All: Picture.ApplyMask now throws an exception if either dimension of the mask is incorrect. Previously it only threw an exception if both dimensions were incorrect.
  • 30593 All: XojoScripts with floating point math now work on Windows XP.
  • 9200 Compiler: No longer asserts if there are more than 8192 plugin entry points in the final executable.
  • 15071 Compiler: No longer triggers a failed assertion when compiling large methods.
  • 27167 Desktop: Fixed an issue in the reporting engine where it could terminate printing details lines too soon and so put fewer details on a page than it should.
  • 26815 Desktop: Getting ListBox.CellType now returns the correct type when the ColumnType has been set for that cell.
  • 30127 Desktop: HTMLViewer.ExecuteJavaScript no longer throws a NilObjectException on Windows (using the Native renderer) if no document exists. It now throws an HTMLViewerException informing you that a document is required before you can execute any JavaScript code.
  • 27704 Fixes to case 27192 make the symptoms this cases experiences no longer happen. Pressing enter commits the change so "Save" is enabled. It wasn't in this case so you would just get a beep.
  • IDE
  • 29765 IDE: A bunch of tweaks to make it so you CANNOT do invalid things with drag and drop. Prevented actions include -
  • drag a window from a desktop project into a web project (or a web view into a desktop project)
  • drag a window from a desktop project into a console project (or a web view into a console project)
  • drag web styles into web pages
  • drag class interfaces INTO windows or web pages
  • drag windows onto windows (or web pages into web pages)
  • drag windows into container controls (but you can drag containers onto windows)
  • 28902 IDE: A NilObjectException that can be encountered sometimes in the Universal Layout Editor has been fixed.
  • 29544 IDE: Adding empty attributes no longer causes an OutOfBoundsException. They are properly discarded and not saved if you create attributes with no name.
  • 30649 IDE: Analyze project once again shows if there are only warnings.
  • 29805 IDE: Application.Open event handler no longer shows Application.OpenDocument description.
  • 29446 IDE: Attributes on a window are no longer replicated to every control.
  • 30191 IDE: Auto spell checking has been turned off in a number of property editor panes as its not really useful there.
  • 30313 IDE: Can now clear the destination property in Shared Build Settings.
  • 30069 IDE: Classes are no longer duplicated in Navigator listings.
  • 24300 IDE: Code Editor no longer tries to center the line in the editor if you just move the cursor to the beginning or end of the line.
  • 29957 IDE: Copy and paste of controls in web projects no longer raises an OutOfBoundsException.
  • 29847 IDE: Copying and pasting control no longer causes an OutOfBoundsException.
  • 29709 IDE: Copying and pasting onto the group header in the Navigator works using command key short cuts as well as the contextual menus.
  • 29862 IDE: Copying and pasting with a Navigator filter in effect no longer causes a NilObjectException.
  • 31049 IDE: Data Control Inspector no longer shows name of constant (#kTable).
  • 30628 IDE: Debugger shuts down the app being debugged when you close the tab.
  • 26633 IDE: Default size for report field, label, date and page number add to layout is more appropriate.
  • 30007 IDE: Deleting an item from the Navigator pressing the up arrow key no longer causes an exception.
  • 27297 IDE: Dragging a Generic object back onto a layout it already is on no longer causes an exception.
  • 24716 IDE: Editing SegmentedControl labels now preserves the encoding.
  • 27192 IDE: Enter key on numeric keypad now commits changes in Inspector like return key does.
  • 30646 IDE: Enum property values in Xojo Text Projects no longer flip between quoted strings and integers.
  • 21711 IDE: Exporting an external item now gives a result that makes sense (whether it's exported as binary or xml) instead of an empty or useless file.
  • 27959 IDE: External items in projects now save properly when edited after initially making them external.
  • 29052 IDE: External subclasses now show in the class selector dialog.
  • 13533 IDE: Fill Width and Fill Height actions in the layout editor are now undoable / redo-able.
  • 28874 IDE: Find field no longer gets focus simply deactivating and activating the IDE.
  • 29466 IDE: Fixed a display issue in the Navigator where subitems could show in the wrong location.
  • 30844 IDE: Fixed a failed assertion that could occur when compiling code that has ambiguous interface implementation.
  • 30687 IDE: Fixed an assertion that could occur when loading projects with invalid item names.
  • 29457 IDE: Fixed an error in handling missing files that resulted in an UnsupportedFormatException.
  • 28537 IDE: Fixed an error when loading projects that have external items that are missing that could cause an Unsupported Format Exception.
  • 29451 IDE: Fixed an exception that could sometimes occur when copying and pasting web controls.
  • 26176 IDE: Fixed an issue in search result pane where selecting a found line could go to the wrong place and could also reset the search scope.
  • 27682 IDE: Fixed an issue that could cause control events to not load properly from a saved binary project.
  • 29838 IDE: Fixed cause of a NilObjectException in the Navigator when you may be dragging. Could have been caused by many actions like dragging a file over the Navigator when debugging.
  • 30327 IDE: Fixed one case where the "Add Event" menu item would not enable.
  • 30577 IDE: Fixed the illegal cast exception that could occur when locating images.
  • 29281 IDE: If you have a Navigator filter applied and use Go To Location the filter is cleared so the location you go to can be revealed.
  • 29326 IDE: Invalid XML files no longer cause an exception.
  • 30407 IDE: Items that have no tab stop property on a desktop project don't appear in the tab order editor.
  • 27030 IDE: Locked objects on non-front front most tab or page panels no longer bleed through.
  • 12770 IDE: Made it much harder to import items into the wrong kind of project (e.g. you can't import desktop items to web or console apps, no web items in to desktop or console apps, etc).
  • There's no way for to know at the point the selection dialog is displayed that an item is desktop, web, console etc so we cannot filter them out at that point.
  • 30661 IDE: Missing images no longer cause an unsupported format exception to be raised if we try to use the full path to the item to find it.
  • 27996 IDE: No longer causes an exception when pasting into the Icon Editor.
  • 29614 IDE: No longer show odds HTML markup for descriptions in the Add Event Handler dialog.
  • 29186 IDE: No longer show shortcuts in contextual menus.
  • 28730 IDE: No longer throws an exception when bad values are entered for the Listbox ColumnWidth property.
  • 30079 IDE: No longer updating editors off on hidden tabs, this should make editing much quicker for those that work with many tabs. Also improved performance when editing Structures.
  • 30874 IDE: Non-visual controls no longer have TabStop and TabIndex properties.
  • 28246 IDE: Now writes out encrypted items contained by a module as EXTERNAL ENCRYPTED BINARY items same as other top level encrypted items in a text project.
  • 20570 IDE: Old text (VCP) projects that wrote windows with segmented controls as "Begin SegmentedControl" now load as expected and do not cause unhanded exceptions.
  • 28113 IDE: Only changes to project items actually altered by the user are saved.
  • 30175 IDE: Optimized the drawing of Web Text controls to make dragging and resizing a little faster.
  • 27599 IDE: Overloaded methods no longer mix up shared and non-shared methods in the group.
  • 30140 IDE: Pasting tables from Excel to ListBox InitialValue property converts column into tab delimited (&h09) and line feed (&h0A) delimited data once again.
  • 29530 IDE: Plugins now show proper icons on disk.
  • 22864 IDE: Prevent the placement of a WebContainer inside a module.
  • 29746 IDE: Run remotely now uses Ctrl+Alt+R on Windows to avoid the conflict with Ctrl+Shift+R that is used by stop debugging.
  • 30752 IDE: Running and closing the tab and then running again no longer causes an exception.
  • 29837 IDE: Saving a project to a read only location no longer causes an assertion.
  • 26946 IDE: Script Step Editor uses the same code editor canvas as the new code editor so it handles keyboard input properly. It also obeys the same set of commands (like forward delete).
  • 28338 IDE: Scrolling the layout no longer results in a toolbar you can't edit.
  • 28163 IDE: Search field no longer steals focus when activating / deactivating the IDE.
  • 30786 IDE: Searches are done 0.5 seconds AFTER the text stops changing OR when ENTER OR RETURN are pressed (in which case the search is done immediately).
  • 29339 IDE: Significantly improved performance when pasting a long list of items. Time to paste 1,100 items reduced from hours to less than a minute.
  • 29616 IDE: Skipping locating missing files no longer eventually leads to an exception when trying to run the project.
  • 24405 IDE: Tab panels that have captions set using constant no longer mangle the encoding of the constants resulting in incorrect display.
  • 30257 IDE: The build button disables if there are no targets selected.
  • 30020 IDE: The debugger now catches exceptions raised in computed properties rather than letting them escape into the program and alter control flow.
  • 30056 IDE: The highlight area for the inline editor of a toolbar stays over the toolbar when you scroll the layout editor and inline editing is active.
  • 29021 IDE: The Library splitter not longer drags when the mouse cursor really isn't in a spot where it appears it SHOULD be dragging.
  • 29877 IDE: The Navigator no longer experiences a NilObjectException when adding classes to modules and then selecting something OTHER than an item in the module.
  • 30784 IDE: The Navigator width is common across all tabs in a window but NOT shared across windows.
  • 27993 IDE: The Project Chooser window no longer trims off localized strings in the list of project types.
  • 30980 IDE: Thread objects can be dragged to WebPages again.
  • 29613 IDE: Typing a name into the certificate file (or any other file type property) no longer causes an exception. File properties editor has the ellipsis for selecting a file again.
  • 21608 IDE: Updated wording and button titles for "File is in trash" dialog.
  • 30853 IDE: Using Duplicate in the Navigator no longer duplicates the wrong item.
  • 25699 IDE: When you delete one or more items in the Navigator, the inspector no longer appears to still have them selected and editable.
  • 26135 IDE: When you drag a project item into a folder in the Navigator the selection rectangles are update properly.
  • 31029 IDE: You can no longer enter invalid port values for web applications.
  • 29961 IDE: You can now edit the values in a WebListBox when there is only 1 column. Fixed a drawing bug where some values would be truncated when the ListBox had multiple columns. Also made it so the drawing relies on the DEFINED column count property for how many columns to show.
  • Web
  • 29288 Web: Browsers are now explicitly asked to revalidate framework files on load, so newer versions won't try to use the old framework.
  • 30563 Web: Fixed a bug in the new logging mechanism for standalone apps which made it live all the time for CGI applications.
  • 15443 Web: Fixed a bug in WebListbox.Headers where assigning all of the headers using -1 as the index would not push the changes to the browser.
  • 29775 Web: Fixed a bug which caused certain POST and Querystring variables to be unavailable in a POST request sent to /special or /api.
  • 31056 Web: Refreshing WebCustomControls no longer causes JavaScript errors.
  • 16136 Web: WebImageViewer no longer causes IDE crashes when you use certain URLs.
  • 24127 Web: WebListBox.AddRow no longer adds rows twice if called before the Shown event.
  • 30361 Web: WebPopupMenu: DeleteAllRows no longer causes errors if called in the Open event.
  • Windows
  • 29665 Windows IDE: Debugger string variable viewer no longer clips some data in HiDPI mode.
  • 30342 Windows IDE: Debugging Web project on XP now launches the default browser instead of Internet Explorer all the time.
  • 29663 Windows IDE: Error message is no longer clipped while in HiDPI mode.
  • 29661 Windows IDE: Tab bar text now aligns properly when user is in high DPI mode.
  • 24028 Windows IDE: Text no longer gets clipped at 125% resolution.
  • 29586 Windows IDE: The WebKit based HTMLViewer that is used in our Messages Pane no longer steals keystrokes that would cause menu shortcuts like Ctrl+C or Ctrl+V to intermittently fail.
  • 29662 Windows IDE: When in HiDPI mode, the search pane's search/replace text field is no longer clipped, and the results list rows accommodate the larger text.
  • 30500 Windows/Linux IDE: Incremental compilation now works properly (i.e. running/building no longer recompiles everything even if nothing changes between runs/builds).
  • 29241 Windows/Linux: A SegmentedControl with only one segment now draws properly.
  • 10077 Windows: BevelButton no longer flickers when moved, resized or on mouse over.
  • 30011 Windows: Ctrl-+ keyboard shortcut now works.
  • 31005 Windows: OLEObject can now retrieve DECIMAL types (they are returned as strings).
  • 30394 Windows: Shell Completed and DataAvailable events now fire in Console and Web apps when its Mode is 1 or 2.
  • 30357 Windows: Shells that are created in a secondary thread now fire their Completed and DataAvailable events again (broken since 2013r3).
  • New Items:
  • 29229 All: Added a DebugIdentifier property to Thread, which will show up in the debugger's thread popup and allow easier debugging of threaded code.
  • 23227 All: The RegEx class has been updated to use PCRE 8.3.3.
  • 23643 Desktop: Canvas/ContainerControl: Added Transparent property, whose default value is True, this maintains current compatibility. If set the False then the Canvas/ContainerControl will become opaque (i.e. background will not show through). On Linux this has particularly special meaning in that child controls on an Opaque Canvas/ContainerControl can be clipped.
  • 28826 Framework: Added new Crypto functions: Crypto.RSAGenerateKeyPair(Bits As Integer, ByRef PrivateKey As String, ByRef PublicKey As String) As Boolean Bits would usually be 1024 or 2048. Generates a private and public key pair that is hex encoded. Returns true on success, false if failed.
  • Crypto.RSAVerifyKey(Key as String) as Boolean Attempts to validate the specified key
  • Crypto.RSAEncrypt (Data As MemoryBlock, Key As String) As MemoryBlock Encrypts the data with the specified key, which is either a private or public key.
  • Crypto.RSADecrypt (Data As MemoryBlock, PrivateKey As String) As MemoryBlock The reverse of Crypto.RSADecrypt.
  • Crypto.RSASign (Data As MemoryBlock, PrivateKey As String) As MemoryBlock Signs the data block with the specified private key.
  • Crypto.RSAVerifySignature (Data As MemoryBlock, Signature As MemoryBlock, PublicKey As String) As Boolean Verifies the data with the specified signature and key. Returns true if the signature is verified, false otherwise.
  • Crypto.GenerateRandomBytes (ByteCount As Integer) As MemoryBlock Generates a random block of data.
  • 29939 IDE: Preferences window has a new pane for updates and also a way to opt in/out of sending system details.
  • 27275 IDE: The "Help for" item appears in the contextual menu of controls selected in the Layout Editor.
  • 30710 IDE: You can use a constant for the app identifier. The value of the constant still should conform to the recommended form (com.xxxx.xxxx).
  • 30694 WebSDK: Added an example project for using the LoadLibraries method
  • 30913 Windows: MouseWheel event is now triggered for the control that the mouse pointer is over.
  • Changes:
  • 25806 Database: Updated SQLiteDatabase to use SQLite 3.7.17.
  • 28702 Desktop: Removed the following TextArea properties and methods since they do nothing: SelCondense, SelExtend, SelOutline, SelShadow, ToggleSelectionCondense, ToggleSelectionExtend, ToggleSelectionOutline, ToggleSelectionShadow
  • 28754 IDE: Clicking the + (new tab) creates a new tab with no selection.
  • 30650 IDE: If you have only one workspace with two tabs - a project item and the debugger both in separate tabs - you can't close the non-debugger tab as when you quit the debugger it leaves you in a weird state with no obvious way to get back to working on your project.
  • 29262 IDE: Local Language Reference updated as of Sep 1, 2013.
  • 29029 IDE: New local Language Reference updated as of Aug 23th.
  • 30444 IDE: Search results are now listed in alphabetical order.
  • 24359 IDE: The Goto Location window is resizable and retains its height and control positions. You can drag it to make it wider.
  • 27557 IDE: Visible property of a menu item can be set in the Menu Editor as well as at run time.
  • 30014 MacCocoa: When running on 10.7 and higher, the Sound class now uses AVFoundation instead of the legacy Sound Manager framework.
  • 30356 Macintosh: The minimum supported version of OS X for the IDE and built applications is now 10.7.
  • 27380 Web: ChromeFrame support has been removed in preparation for Google's service discontinuation in January 2014.
  • 27207 Web: Implemented Apache-style logging for standalone web apps. Use --logging command-line option to turn on. Added standards compliant headers for responses.
  • 30238 Web: Removed unsupported FastCGI code from the CGI script.
  • Docs and Examples:
  • 30855 Doc: Updated system requirements for Linux in User Guide and Lang Ref.
  • 15065 DocLangRef: Added more info about WebStyle usage with WebButton.
  • 19173 DocLangRef: Clarified that FileTypes are converted to their string equivalent when used with GetOpenFolderItem.
  • 30689 DocLangRef: Clarified Window.Top position.
  • 30939 DocLangRef: Corrected append example for Clipboard.
  • 30619 DocLangRef: Corrected MenuItem.Constructor parameter list names.
  • 30033 DocLangRef: Fixed "See Also" section of Database.Rollback.
  • 31047 DocLangRef: Fixed broken link to WebKitGTK web site on the HTMLViewer topic.
  • 30088 DocLangRef: Fixed example for TextInputStream.
  • 30252 DocLangRef: Fixed typo in XmlDocument.LoadXML example.
  • 30464 DocLangRef: Fixed typo on integer division page.
  • 29415 DocLangRef: Fixer typo in example on Join topic.
  • 30013 DocLangRef: Improved examples for XMLDocument topic.
  • 15580 DocLangRef: ReportDateLabel updated.
  • 15579 DocLangRef: Updated ReportPageNumberLabel.
  • 30723 DocLangRef: Updated SpecialFolder FolderName paths to match current OS values.
  • 29346 DocLangRef: Updated WebStyle topic in Language Reference to remove outdated screenshots and improve organization.
  • 18394 DocLangRef: Updated WebTextControl.TextChanged with correct information about when the event handler is called.
  • 30200 DocLangRef: Updated XML topics in to include examples.
  • 28225 DocUserGuide: Added AppleScript section to User Guide Book 4: Development and also added an example project.
  • 29996 DocUserGuide: Added more information about the use of "Default" to the Localization section in Book 4: Development.
  • 29382 DocUserGuide: Added table that maps data type integer values to data types to the Databases chapter and refer to it from the Reports section.
  • 29438 DocUserGuide: Updated Navigator section in Fundamentals Guide to better describe "Double click opens items in new tab" preference setting.
  • 30290 Examples: Added "#" to URL on RegisterLink in LoginExample so that it correctly loads page on all browsers.
  • 28271 Examples: Added WebSDK custom controls to Examples so that they can be easily found using the Project Chooser.
  • 29802 Examples: Fixed Linux script name in AutoSaveScript.

New in Xojo 2013 Release 3.3 (Nov 13, 2013)

  • Fixes:
  • Windows IDE: Clicking on Shared Build Settings no longer crashes IDE
  • Windows: MySQLCommunityServer, ODBCDatabase, MSSQLServerDatabase no longer hangs when calling SQLExecute or SQLSelect in a thread

New in Xojo 2013 Release 3.2 (Oct 30, 2013)

  • Xojo 2013r3.2 reduces CPU usage with threads
  • Bug Fixes:
  • All: Fixed a bug that could cause crashes on quit if two or more threads were running (excluding the main thread).
  • All: Threads now are reliably killed when quitting the application.
  • IDE: WebPopupMenu initial value can be edited once set.
  • Remote Debugger Stub: Now disables OS X Mavericks' App Nap feature while a file is being transferred to the stub.
  • Web: Hidden WebContainer and WebDialog children controls are now refreshed properly when the container is shown.
  • Windows: Reduced CPU usage when multiple threads are alive but only one of them is running (i.e. all other threads are sleeping or blocked on a lock). This is most notable on single core machines, where the idle CPU usage could approach 100%.
  • Windows: Timers created on a secondary thread now fire properly on the main thread.
  • Windows: Using COM/OLEObject from a thread no longer raises an exception (CO_E_NOTINITIALIZED or -2147221008).
  • New Items:
  • IDE: ™ has been changed for ® since Xojo is now a registered trademark

New in Xojo 2013 Release 3.1 (Oct 2, 2013)

  • FIX 29618 IDE: Fixed a Real Studio reference in the check for update text.
  • FIX 29577 IDE: German and Chinese IDEs can save in Text Project Format again.
  • FIX 29410 IDE: The local Language Reference on Windows now follows "Next 200" and "Previous 200" links.

New in Xojo 2013 Release 3 (Sep 18, 2013)

  • Bug Fixes:
  • Database:
  • FIX 25015 Database: MySQL/Oracle plugin: Binding a type without an associated value no longer crashes.
  • FIX 28071 Database: MySQLCommunityServer Plugin: No longer treating all TINYINT(X) columns as a boolean field, only when X = 1; i.e. TINYINT(1) is treated as a boolean field when the user does a RecordSet.Update, but not if the field was created as TINYINT(2) for example.
  • FIX 28069 Database: MySQLCommunityServer: Assigning a DatabaseField.Value to Nil now properly sets the field to NULL instead of an empty string for VarChar fields.
  • FIX 20064 Database: PostgreSQL Plugin: Updating or deleting a record in a RecordSet (besides the first record) using Edit and Update or DeleteRecord now works.
  • FIX 28066 Database: PreparedSQLStatement.Bind(values() As Variant) function no longer ignores the last array element. This affected every database plug-in except ODBC (which got it right).
  • Debugger:
  • FIX 24548 Debugger display uses the same editor as the code editor so the break point hit spot is the same size
  • FIX 28896 Debugger: No longer shows partially mangled names in the stack viewer. This was most notable with shared methods.
  • Desktop:
  • FIX 26390 Desktop: ContainerControl: Removed Maximize, Minimize, and Restore events since they were never triggered anyway.
  • FIX 22697 Desktop: IPCSockets with long paths (over 103 bytes on OS X) no longer causes crashes when connecting or listening.
  • FIX 19296 Desktop: SegmentedControl HelpTags are now displayed on Windows and Linux.
  • FIX 25112 Desktop: TextField/TextArea Mask no longer prevents the same character from being inserted, and invalid input no longer changes the text.
  • FIX 27655 Desktop: The framework no longer allows you to create instances of FolderItemDialog directly. One of its subclasses must be used instead.
  • FIX 23354 Desktop: The long obsoleted Window.CloseBox, GrowIcon, and ZoomIcon properties have been removed.
  • Framework:
  • FIX 23265 Framework: Instr now returns the correct result when dealing with base and search strings of different encoding.
  • FIX 26721 Framework: JSONItem now supports values of type Single.
  • IDE:
  • FIX 28809 Home & End keys work again on OS X
  • FIX 26201 IDE: After duplicating an item, the duplicate is selected.
  • FIX 24740 IDE: All the bottom pane titles are localized.
  • FIX 29011 IDE: Build Automation items change their names when you update them in the Inspector.
  • FIX 26525 IDE: Build Automation: Fixed a NilObjectException in the Copy File Step Editor when you try to remove a missing file.
  • FIX 27461 IDE: Build errors list clears before next build.
  • FIX 27451 IDE: Canceling the export of localized values no longer causes an exception.
  • FIX 28167 IDE: Changing a controls super class on a web page works again.
  • FIX 28788 IDE: Closing the parent item no longer changes the selection to be multiple selection.
  • FIX 27333 IDE: Constants inside modules inside modules no longer refuse to allow you to change them.
  • FIX 12038 IDE: ContainerControls AcceptTabs property shows correctly in the Inspector.
  • FIX 23492 IDE: Controls being dragged now appear on top of all other controls during the drag.
  • FIX 27994 IDE: Converting methods and properties to / from shared updates the Navigator properly.
  • FIX 23518 IDE: Copying and pasting items into a folder no longer results in multiple items with the same name.
  • FIX 28717 IDE: Custom project controls disappear from the Library when they are removed from the project.
  • FIX 26984 IDE: Debugger: Clicking edit takes you to the right method.
  • FIX 20640 IDE: Debugger: Fixed being unable to step into namespaced classes that have the same name as framework classes.
  • FIX 26375 IDE: Debugger: The debugger always opens in its own tab
  • FIX 28145 IDE: Debugger: The filter field does nothing on the tab that holds the debugger so you cannot use it to accidentally move focus to something else.
  • FIX 28055 IDE: Debugger: When we stop on a break point in the debugger and hit "Edit" we actually go to the editor (but maybe in a different tab so we don't navigate away from the debugger in the tab it's running in).
  • FIX 28139 IDE: Deleting menu items from a menu bar no longer causes an assertion.
  • FIX 28217 IDE: Duplicating a Web page with controls properly retains all the UI components as well.
  • FIX 27038 IDE: Editing a container control as a project item and setting the tab stop property no longer causes an assertion.
  • FIX 28179 IDE: External WebDialogs in projects no longer cause compilation errors.
  • FIX 29227 IDE: File metadata, like Finder comments, are now preserved when saving projects.
  • FIX 28874 IDE: Find field no longer gets focus simply deactivating and activating the IDE.
  • FIX 28212 IDE: Fixed a bug in the interface editor which caused an IDE assertion if one or more interfaces were implemented by the current item but no longer existed in the project.
  • FIX 28023 IDE: History navigation in the local Language Reference should be more reliable.
  • FIX 27733 IDE: IDE Scripting IPCSocket is now named XojoIDE (instead of REALStudioIDE).
  • FIX 24561 IDE: Illegal cast exception of Int32's when reading preferences no longer occurs.
  • FIX 28300 IDE: Images on redirect pages in the offline Language Reference window should render properly.
  • FIX 28800 IDE: Initial values show properly in the PopupMenu inline editor again.
  • FIX 29044 IDE: Making controls member of control sets no longer switches the selection.
  • FIX 27159 IDE: Messages sent to the messages pane via System.DebugLog no longer eat backslashes.
  • FIX 22263 IDE: Methods with non-ASCII characters are now displayed correctly in the stack frame list.
  • FIX 28695 IDE: Minor updates to build settings.
  • FIX 26199 IDE: Navigator now remembers its place after a Debug run.
  • FIX 27426 IDE: Navigator: Collapsing the group row when an item in the group is selected longer shifts the navigator to the "top" or overall view but to the enclosing row
  • FIX 25503 IDE: Navigator: Deleting an event, constant, method etc no longer shifts the navigator to the "top" or overall view but to the enclosing row
  • FIX 24052 IDE: Navigator: Deleting the selected item no longer resets the list to the top of the project.
  • FIX 26962 IDE: Navigator: Double clicking when you have a filtered list or the unfiltered navigator list obeys the double click open new tab preference as expected
  • FIX 28098 IDE: Navigator: Make it so removing an implemented event actually doesn't write it to the project so it doesn't magically reappear after removing it
  • FIX 24385 IDE: Navigator: Selection now redraws properly when several items are deleted.
  • FIX 27565 IDE: No longer asserts when reading old plist data but does NOT load it.
  • FIX 28974 IDE: No longer crashes if a WebSDK control has an empty NavigatorIcon constant.
  • FIX 24410 IDE: No longer raises NilObjectException when a file path cannot be located.
  • FIX 28696 IDE: No longer read and write the Class View Property Inherited From as we actually recalculate it anyways.
  • FIX 28532 IDE: No longer shows internal interfaces twice.
  • FIX 28910 IDE: Now longer allow delegates, properties, events, methods, etc. to be added to web styles.
  • FIX 22336 IDE: Old projects that saved colors would sometimes NOT read the value back correctly in Xojo resulting in the color appearing to be truncated.
  • FIX 28629 IDE: On Mavericks, file tags are now preserved when saving projects.
  • FIX 29098 IDE: On OS X, the parameters field no longer changes apparent font size when you put focus back into it.
  • FIX 28417 IDE: On Windows and Linux the popup menu for setting the group no longer contains a separator as it is/was selectable and this is just wrong there.
  • FIX 28530 IDE: On Windows, Local Language Reference should now work with User accounts on drives other than C:.
  • FIX 28025 IDE: Profile Code is no longer treated like a project property and is moved to the "Project" menu much like Break On Exceptions.
  • FIX 20031 IDE: Rapidly removing rows in the web style editor no longer causes stack overflows.
  • FIX 28021 IDE: Removing ContainerControls from windows now longer can cause crashes.
  • FIX 28726 IDE: Report Editor no longer randomly switches to another tab.
  • FIX 27324 IDE: Scope on methods inside modules inside modules acts as expected (this is closely related to 27333).
  • FIX 28599 IDE: Search pane sets itself up properly when you alter the location in the Navigator.
  • FIX 27932 IDE: Search results for web projects properly include the control name so when you click the result row it can go to the right spot.
  • FIX 23961 IDE: Select super no longer shows interfaces.
  • FIX 27059 IDE: Selecting a BUILDS folder for a project no longer raises an exception.
  • FIX 28056 IDE: Selecting text in the Code Editor and contextual clicking and selecting "Find" does the find and populates the search pane and its field showing what was searched for.
  • FIX 27157 IDE: Selecting to add a new external script or modifying the properties of an existing one allows you to pick either an RBS or Xojo Script.
  • FIX 26624 IDE: Setting the row and/or column count of a WebRadioGroup to a large value when the group is set to be quite small no longer asserts.
  • FIX 27822 IDE: Show all breakpoints works again.
  • FIX 28190 IDE: Spotlight query dropped on a window no longer gets a complaint about not having a default constructor.
  • FIX 3352 IDE: Stepping quickly in the debugger no longer can cause the debugged application to resume.
  • FIX 26849 IDE: Syntax help messages in the lower pane should no longer show odd captions.
  • FIX 27114 IDE: Tabs should no longer get out of sync when reordering.
  • FIX 20327 IDE: Templates folder can now contain sub folders again.
  • FIX 199 IDE: The application being debugged no longer 'randomly' crashes. This occurred most often when stepping quickly in the debugger or stepping out of methods.
  • FIX 22587 IDE: The code assistant for creating new method from selected text no longer chokes on methods called like: Self.MethodName( parameters )
  • FIX 16827 IDE: The issue that caused projects to warn that data would be lost on save has been fixed. Some data is supposed to be skipped, as it is no longer required but is created by older IDEs.
  • FIX 22092 IDE: The load of the project Navigator now examines this timestamp to know if it should in fact reload, which should reduce the number of times it is reloaded.
  • FIX 12355 IDE: The local Lang Reference now support searching for #pragma etc and also works if you select #pragma in the code editor.
  • FIX 20528 IDE: The main toolbar can now be hidden and shown.
  • FIX 27928 IDE: The report layout editor no longer accepts non-report controls.
  • FIX 28715 IDE: Typing speed should be greatly improved.
  • FIX 28198 IDE: Updater no longer refers to the IDE as Real Studio.
  • FIX 28614 IDE: View behaviors are honored properly and do not reset themselves when you place the first instance on the page. And they are retained when you save and reopen projects.
  • FIX 20953 IDE: When adding a method and editing the name pressing tab moves you to the next logical part of the method definition (parameters then return type and then scope).
  • FIX 23813 IDE: When building with languages that may turn the word "Untitled" into a multi-word phrase "Ohne Titel" it was possible that we would craft an invalid project item name with a space in it, which could cause compilation errors.
  • FIX 28693 IDE: When saving a version control project, spaces are no longer added around the CompatibilityFlags section of a ComputedProperty declaration.
  • FIX 29057 IDE: When you change the name of a method (in a group of overloaded ones or on an individual one) you DON'T get an extraneous new row in the Navigator .
  • FIX 27848 IDE: When you delete a code item (method , event, menu handler etc) the editor is also closed so the code is no longer present.
  • FIX 28559 IDE: XML projects are now saved in a way the OLD UI can open them without visual anomalies. NOTE : XML projects will NOT open their saved state the first time you open them. Once saved again they will.
  • FIX 25504 IDE: You can always insert a project item when the project is open regardless of whats selected (or not).
  • FIX 27270 IDE: You can copy & paste controls on a report. The library also switches to showing report controls when you edit a report.
  • Lingua:
  • FIX 27185 Lingua: "Export -> To Application" now copies over framework strings when running on OS X. This makes it more accurately match the applications that the IDE builds.
  • FIX 28819 Lingua: Fix for "black" text backgrounds.
  • Linux:
  • FIX 27768 Linux IDE: Closing the help window, before loading has completed, no longer crashes.
  • FIX 24996 Linux IDE: MenuBar and ToolBar icons now appear properly in the Navigator instead of showing up as white boxes.
  • FIX 29425 Linux IDE: Recent projects list in the Project Chooser dialog no longer has missing project icons.
  • FIX 8148 Linux IDE: Typing accented characters in the code editor now works.
  • FIX 26760 Linux IDE: WebButton and WebSegmentedControl now render properly in the layout editor.
  • FIX 26410 Linux: Filling, Scrolling, and then Clearing TextArea no longer crashes.
  • FIX 23744 Linux: FolderItem.CreationDate: Setting the creation date on Linux now throws an UnsupportedOperationException.
  • Cocoa:
  • FIX 28277 MacCocoa: EndOfLine's comparison operator works correctly.
  • FIX 18455 MacCocoa: Fix rotated PixMapShapes drawing a white background.
  • FIX 27922 MacCocoa: Fixed a crash that occurred when HTMLViewer.UserAgent was read without previously assigning to it.
  • FIX 26878 MacCocoa: Fixed a crash that would occur when trying to iterate over an alias that didn't resolve.
  • FIX 28166 MacCocoa: If a MenuItem that has a descendent that isa ApplicationMenuItem is added to the menubar, the menubar now notices and places the ApplicationMenuItem in the correct place.
  • FIX 23015 MacCocoa: Mouse move events now work correctly after transitioning to full-screen mode
  • FIX 27836 MacCocoa: Non-textual strings (buckets of bytes) in AppleEvents are now sent as typeData instead of being sent as typeUnicodeText.
  • FIX 28134 MacCocoa: ServerSockets now are now polled regularly instead of relying on user events.
  • FIX 27595 MacCocoa: StyledText.Font and TextArea.SelTextFont now return font family names instead of Postscript names. Note that this still may not be the exact name that you assigned to the property due to things like font fallbacks.
  • FIX 28230 MacCocoa: The maximum number of visible rows in a ComboBox has been increased to 15 from 5. If you wish to adjust the number, the following declare can be used (passing in the ComboBox's handle for 'controlHandle'): Declare Sub setNumberOfVisibleItems Lib "AppKit" selector "setNumberOfVisibleItems:" ( controlHandle As Integer, count As Integer )
  • FIX 28228 MacCocoa: Threads now yield reliably when there are no timers, user input events, or sockets.
  • FIX 28333 MacCocoa: Threads now yield reliably when there are no timers, user input events, or sockets.
  • FIX 6145 MacCocoa: Toolbars appear properly on full screen windows.
  • FIX 28196 MacCocoa: Trailing separators are now stripped from menus after calling EnableMenuItems instead of before.
  • Misc:
  • FIX 21265 Navigator: Styles can no longer be placed within modules
  • FIX 24576 Navigator: When you delete a group row (methods, constants, etc) it will now delete all the contained items NOT the parent item.
  • FIX 27531 Plugin SDK: Calling REALUnlockPictureDescription no longer crashes for Console pictures.
  • FIX 8715 PluginSDK: Updated readme.txt.
  • FIX 27560 Replace/ReplaceB: now returns the source string unchanged when the search string is an empty string
  • FIX 28551 Search pane no longer steals focus
  • FIX 26942 Templates: Updated CGI, Service and Console templates for Xojo.
  • Web:
  • FIX 28838 Web: Added user-agent support for Internet Explorer 11.
  • FIX 27718 Web: Duplicating a web view (web page, web container, web dialog) properly duplicates all the controls on that container.Not duplicating the contained controls was particularly noticeable if you clicked on the item in the navigator & selected duplicate. The resulting copy would not have the controls on it.
  • FIX 26488 Web: Fixed a bug in WebSegmentedControl where ListIndex couldn't be set to -1.
  • FIX 28028 Web: Fixed the expiration date for cookies.
  • FIX 28316 Web: Hide the IE10+ clear button on WebTextField.
  • FIX 27841 Web: The WebSessionContext constructor now requires the WebSession parameter.
  • FIX 28888 Web: WebContainer scrollbar visibility can now be set at runtime.
  • FIX 21278 Web: WebControls now consistently change appearance when enabled/disabled.
  • FIX 15800 Web: WebDialog now obeys WebStyles that are applied to it.
  • FIX 27929 Web: WebImageView PictureChanged event is no longer sent to the server if the PictureChanged event is not implemented.
  • FIX 28103 Web: WebSession LanguageCode now uses the first preferred language when a browser supplies more than one.
  • FIX 24611 When you delete a code item (event, method , etc) the editor gets closed as well so it doesn't leave a phantom item behind
  • Windows:
  • FIX 28731 Windows IDE: Added ability to choose an ActiveX Control for an OLEContainer by right-clicking on it and selecting "Choose ActiveX Control".
  • FIX 27906 Windows IDE: Entering Japanese strings using IME in the code editor no longer puts the first character at the end.
  • FIX 28180 Windows IDE: Inspector no longer flickers when you hide/show it.
  • FIX 28669 Windows IDE: Typing in the code editor no longer mangles words (i.e. it no longer inserts characters out of order).
  • FIX 27867 Windows/Linux IDE: Pressing Ctrl+Up or Ctrl+Down in the code editor now scrolls the content one line up or down respectively.
  • FIX 27375 Windows: App.LongVersion returns the Long Version info again, instead of the Product Name info. Also added a File Description version info to the Windows build settings (this was mapped to Package Info so to maintain compatibility if Package Info is filled but File Description is not, we use the Package Info string to fill the version info). App.PackageInfo will always return the Package Info string, even if the File Description field is filled out and Package Info is blank.
  • FIX 27859 Windows: Assigning a picture, that includes an alpha channel, as an Icon for a MenuItem now works instead of raising an UnsupportedOperationException.
  • FIX 28259 Windows: DrawPicture with Graphics.Transparency > 0 no longer leaks memory.
  • FIX 26981 Windows: Fixed a bug with how file types are registered prevented file drops on controls after an OpenDialog with a filter was assigned.
  • FIX 28413 Windows: Listbox: Calling EditCell on the same cell that is being edited, no longer clears the contents.
  • FIX 23050 Windows: MouseWheel events are now received for controls that have the focus, regardless of where the mouse cursor is. This matches the default behavior on Windows.
  • FIX 27439 Windows: OLEObject no longer crashes when passing a non-variant array.
  • FIX 27805 Windows: PushButtons, Checkboxes, and RadioButtons on a TabPanel no longer disappear when the Alt key is pressed.
  • FIX 23572 Windows: Refreshing the Listbox on in tight loops now works properly.
  • FIX 23509 Windows: Running different versions of the IDE is now possible (at least starting with 2013r3 onward). For example: Running 2013r3 first, then 2013r2 is not possible, Running 2013r2 first and then 2013r3 will work, Running 2013r3 and any future version of Xojo in any order will work.
  • FIX 26638 Windows: Variant string to double conversion no longer returns bad values in cases where a 3rd party has set a default locale (i.e. Venice COM component).
  • New Items:
  • NEW 28714 Desktop: Added MenuItem.Handle, which provides access to the appropriate underlying platform menu implementation. If the requested handle type doesn't make sense for the platform the application is running on, a PlatformNotSupportedException is raised.
  • CocoaNSMenuItem - Returns the underlying NSMenuItem. If there is a submenu, the NSMenu can be got through NSMenuItem's submenu method.
  • WindowsParentHMENU - Returns the HMENU of the MenuItem if it is a submenu, otherwise it returns the parent's HMENU
  • WindowsCommandID - Returns the unique menu item identifier for the MenuItem, used by various Win32 APIs such as GetMenuItemInfo
  • Note: If you modify the contents or structure of the menu in any way (i.e. using declares with these values) the behavior is undefined
  • NEW 27520 Desktop: Window/ContainerControl: Added Invalidate method.
  • NEW 27908 IDE: Building a web or console project no longer says "Carbon" as the framework since that makes no sense .
  • NEW 28099 IDE: Buy now button exists and has an icon now.
  • NEW 28755 IDE: Default is to show Library instead of Inspector when starting a new project and selecting the initial layout.
  • NEW 28223 IDE: Disabling animations for now as there are a handful of crashes that relate back to them being enabled. Will reappear when we can do them in a way they don't cause problems.
  • NEW 21957 IDE: Encoding marker for XML project files added.
  • NEW 28264 IDE: Items in Tab Order Editor with a text property (Labels, TextFields and TextAreas) will be listed with the contents of that field following the name.
  • NEW 27943 IDE: Library: Filter field is now at the top. User custom subclasses of controls have a section. Made it possible to shrink the library further than you can now. Filter respects the popup and acts as a search in selected group. Popup switches to show "report controls" when you switch to a report layout. Subclasses of web control now show in the project controls. Web SDK controls now show in the project controls. Web dialogs (but not web pages) show in the project controls.
  • NEW 26262 IDE: Library: The library filter is now at the top.
  • NEW 24694 IDE: Navigator: Contextual clicks on any single item will have an additional contextual menu item that will "Find" use of the items name in the project. This works for project items & code items (constants, properties, events, event definitions, etc)
  • NEW 27097 IDE: Now supports full screen mode on OS X Lion or newer.
  • NEW 27334 IDE: Right clicking on an item in the Navigator again includes "Find" as an option.
  • NEW 26260 IDE: The Library automatically switches to show report controls when viewing a report.
  • NEW 27986 IDE: The main window, the IDE script editor, and the Language Reference windows can now be made full-screen on OS X Lion and above.
  • NEW 24491 IDE: You can make the library a lot smaller now (half its current minimum width).
  • NEW 21308 IDE: You can make the navigator a LOT narrower (still not down to 0 width though).
  • NEW 27193 Lingua: Lingua is now a Cocoa application.
  • NEW 27901 MacCocoa: A new property, FullScreenButton, has been added to the Window class. This specifies whether or not the Lion-style fullscreen button will be present in the window's titlebar at runtime.
  • For a window which has the FullScreenButton property set, the window's FullScreen property will reflect the state of the window. It can also be used to adjust the full screen state.
  • On Snow Leopard, the FullScreenButton does nothing and the FullScreen property continues to behave as it did before.
  • NEW 26003 Run in tab is implemented
  • NEW 28528 Web: Added a File property to WebRequest for spooling a file directly from disk.
  • NEW 19124 Web: Files uploaded through WebFileUploader are now spooled to disk when the request is over 256K if the web app has the ability to write to the temporary folder.
  • Changes:
  • CHANGE 28366 Database: MySQLCommunityServer, ODBCDatabase, and MSSQLServer: removed the Multithreaded property. A SQLSelect or SQLExecute statement is now implicitly executed pre-emptively dependent on whether or not it was called from a Xojo thread.
  • CHANGE 22801 IDE: Added basic Marketing messages for unlicensed users.
  • CHANGE 29262 IDE: Local Language Reference updated as of Sep 1, 2013.
  • CHANGE 28564 IDE: Local Language Reference updated for 2013r3 (as of July 30 , 2013).
  • CHANGE 28577 IDE: More localization updates.
  • CHANGE 29029 IDE: New local Language Reference updated as of Aug 23th.
  • CHANGE 28835 IDE: Updated LR for as of Aug 14, 2013.
  • CHANGE 28083 Lingua: Updated to new Xojo icons.
  • CHANGE 28403 Profiler results show in a Profiles section instead of the Run section since the debugger now runs in a tab of its own
  • CHANGE 28513 removed implementations of maximize, minimize & restore from action cancel buttons
  • CHANGE 29143 Web: Overloaded the WebSDK LoadLibraries method to take a String Array so library lists can be built incrementally.
  • CHANGE 28286 Web: WebFiles can now point directly at a Folderitem and the framework will send data to the socket incrementally in 64K chunks, so we don't have to load the whole thing into RAM first.
  • WebFile.Open now takes a second parameter InMemory as Boolean (defaults to True) which allows you to determine whether you want the data to be loaded into memory or not. Please note that if you decide to point to a folderitem, the Data property becomes Read Only.
  • CHANGE 29096 Windows/Linux: Accessing the UI from a non-main thread now raises a ThreadAccessingUIException.
  • CHANGE 27699 Windows: No longer triggering an immediate refresh after a single control has moved/resized. We now wait until all controls have repositioned before refreshing.
  • Documentation and Examples:
  • FIX 28628 DocLangRef: Clarified how XMLDocument.PreserveWhiteSpace works.
  • FIX 19944 DocLangRef: Clarified that the IDE Script PropertyValue command only allows you to get or set predefined property values (stuff in the Inspector) for framework project items.
  • FIX 29122 DocLangRef: Clarified UI access from threads in Thread and ThreadAccessingUIException.
  • FIX 28941 DocLangRef: Fixed error in example for TextOutputStream.
  • FIX 28641 DocLangRef: Fixed RegEx table entry so that it is not messed up by wiki parser for "|" character.
  • FIX 29248 DocLangRef: Fixed typo in example for Application.NonReleasedVersion.
  • FIX 29080 DocLangRef: Fixed typo in example for GameInputManager.WaitForElement.
  • FIX 28105 DocLangRef: Fixed typo in example for SQLiteDatabase.
  • FIX 28813 DocLangRef: Fixed typo in wiki for XojoScriptAlreadyRunningException.
  • FIX 28598 DocLangRef: FolderItemDialog.CancelButtonCaption cannot be changed on OS X or Linux.
  • FIX 28155 DocLangRef: For Each…Next page updated with additional information.
  • FIX 29076 DocLangRef: Indicate that HTMLViewer.Print does not work with OS X Carbon apps.
  • FIX 29089 DocLangRef: Methods on WebPage topic had incorrect super class causing some problems with the links.
  • FIX 28152 DocLangRef: Moved Office class names out of Reserved Words page and to Office Automation page.
  • FIX 28291 DocLangRef: Noted that ToolStyleSeparator is not supported on OS X 10.7 and later.
  • FIX 28992 DocLangRef: On page for Optional, clarified use of multiple optional parameters.
  • FIX 27947 DocLangRef: Removed "Real Studio" reference from example in EncodeHex topic.
  • FIX 28377 DocLangRef: Removed lingering references to RBScript and Realbasic.
  • FIX 23924 DocLangRef: Updated IDE Scripting to show currently available build values for CurrentBuildTarget.
  • FIX 10388 DocLangRef: Updated ListBox.ColumnType and CellType to include TypeEditableTextField and TypeEditableTextArea.
  • FIX 24240 DocLangRef: Updated Semaphore example.
  • FIX 28799 DocLangRef: Updated Thread.Run notes and example.
  • FIX 29054 DocLangRef: WebAnimator.Play is used to start the animation, not "Run".
  • FIX 26868 DocUserGuide: Added additional information about Console Remote Debugger.
  • FIX 28252 DocUserGuide: Fixed typo in MonthPopup example in Example Subclasses section of User Guide Book 1: Fundamentals, Chapter 6: Classes.
  • FIX 28892 DocUserGuide: Updated Development book to correctly indicate Command+Option on OS X is used to drag external items into projects.
  • FIX 20131 Examples: Added a simple example for Build Automation that uses a script to save the project before building or running.
  • FIX 10067 Examples: Added examples for extension methods, method assignment, ByVal and Parameter Arrays.
  • FIX 28101 Examples: AddressBook: Removed old Fax number from sample AddressBook record.
  • FIX 28464 Examples: Changed user from "realsoftwarevideo" to "goxojo" for YouTube example.
  • FIX 28345 Examples: Cleaned up license and project settings in SynchronousTCPSocketClass.
  • FIX 28465 Examples: Fixed a crash in Line State Change Tester that occurred when a serial port was not selected before clicking the watch button.
  • FIX 29111 Examples: Fixed issue with 8Queens example not always allowing its thread to quit.
  • FIX 28490 Examples: Fixed RadioButton width for OS X and Linux in GroupBox example.
  • FIX 28441 Examples: Removed YahooYQL example as the service is relied on is no longer available.
  • FIX 28340 Examples: ServerSocketClientTest, ServerSocketServerTest: Changed port to 11234 to reduce potential usage; prevent client from requesting new sockets when none are available.
  • FIX 28346 Examples: TwilioAnswerCall example can now be run from IDE in debug mode.
  • FIX 28371 Examples: WebServer example now creates ServerRoot folder on desktop if it is not available.
  • NEW 22600 DocLangRef: Added example for ActionNotificationReceiver.
  • NEW 28691 DocLangRef: New ContainerControl examples have been added.
  • NEW 29291 DocLangRef: Updated Structure page to refer to User Guide Book 3: Framework, Chapter 10: Advanced Features, Section 5: Structures for more information.
  • NEW 28343 Examples: SOAPConversionRate: Added default currency codes and included link to currency codes.

New in Xojo 2013 Release 2 (Jul 24, 2013)

  • Bug Fixes:
  • Database: MySQLCommunityServer Plugin no longer crashes or gives incorrect values when querying DECIMAL fields on a RecordSet returned by a Prepared Statement.
  • Database: With SQLiteDatabase, the RecordSet is now editable if the rowid is includes in the SELECT when there is no other primary key.
  • Debugger Stub Desktop: Fixed a text error on the Download Directory Not Found dialog.
  • Desktop: CancelClose is now triggered for each window before any window closes.
  • Desktop: Control.DrawInto no longer throws an exception if the control's width or height are 0 (or less).
  • Desktop: Setting the ListBox.HeaderType to NotSortable now works properly.
  • Doc: Added example code to Debugger section of Upgrade Guide.
  • Doc: Added NativePath to FolderItem section.
  • Doc: Removed iBooks Author plugin doc.
  • Doc: Updated examples in SQLite section to ensure they all use SQLiteDatabase.
  • Doc: Updated User Guide to indicate the Notes for CGIApplication are in the template itself, not the Lang Ref.
  • Doc: Upgrade Guide updates.
  • Doc: Uploaded latest version of "Introduction to Programming with Xojo" for wiki/web site.
  • DocLangRef (local): Encodings section now displays the Encoding Names table.
  • DocLangRef: Added &b, &h, &o, * and \ to Math category.
  • DocLangRef: Added missing BinaryStream.ReadByte method.
  • DocLangRef: Clarified framework method display in RuntimeException.Stack.
  • DocLangRef: Clarified use of Exit to exit a function or sub.
  • DocLangRef: Corrected Word example in OLEObject.
  • DocLangRef: Fixed operator links on Operator Compare page.
  • DocLangRef: Fixed typo in examples for Database.Error and Database.ErrorCode.
  • DocLangRef: Fixed typo on AddHandler page.
  • DocLangRef: Removed duplicate methods on TextField.
  • DocLangRef: Removed EOF from BinaryStream properties as it already appeared as method because it is part of the Readable interface.
  • DocLangRef: Removed MySQLEnterpriseServer.
  • DocLangRef: TextOutputStream.Delimiter now indicates it uses platform default for EndOfLine.
  • DocLangRef: Updated FolderItem.Child to specify when Nil is returned.
  • DocLangRef: Updated FolderItem.NativePath to indicate a trailing slash is not included for folders on OS X.
  • DocLangRef: Updated IPCSocket topics to use FolderItem.NativePath.
  • DocLangRef: Updated to RuntimeException.Stack to indicate the current method name is displayed.
  • DocLR: Added topics for ListSelectionNotificationReceiver and ListSelectionNotifier.
  • Examples: Fixed SlidersWeb control order problem.
  • Examples: Updated the paths to the graphics used by XojoUnitDesktop.
  • Framework: Application super classes now fire any no param constructors they may have had.
  • Framework: Certain kinds of arrays stored in variants no longer cause crashes when later using methods in the Runtime module.
  • Framework: The 'Format' function no longer leaks memory with certain patterns.
  • Framework: The framework now disallows creating StyledTextPrinter objects via "New". This never has been useful and could cause crashes. You must get them from TextArea.StyledTextPrinter.
  • IDE: About window now closes when you press the appropriate platform "close window" key combination.
  • IDE: Altering the tab order in a web project dirties the project as expected.
  • IDE: An issue in the code that could lead to an infinite loop, when using one of the Asian languages like Japanese, has been fixed.
  • IDE: Can no longer add modules to Windows or Web Pages.
  • IDE: Changed how constants for web projects are resolved to prevent a NilObjectException.
  • IDE: Control indexes should not be incremented by 2 each time you duplicate an existing one.
  • IDE: Controls being dragged now appear on top of all other controls during the drag.
  • IDE: Copy and duplicate for databases are disabled as they really can't be duplicated
  • IDE: Copy files steps will properly copy from one project to another. Note that this will mean that copy backwards to 2012r2.1 and earlier still wont work (can't old versions) unless the project is saved first and copied from 2012r2.1 and earlier. Copying from 2012r2.1 and earlier to 2013r1 should not cause exceptions BUT since those older version don't put much information on the clipboard the file list may not be copied.
  • IDE: Copy/pasting Control Sets no longer skips index 0.
  • IDE: Debugger is not inadvertently closed when using the history (back/forward) navigation buttons in some cases.
  • IDE: Debugger is not inadvertently closed when using the history (back/forward) navigation buttons in some cases.
  • IDE: Delete and Cut in the menu no longer kill the running app if you have it selected and try to use those short cuts or menu items.
  • IDE: Duplicating a report control now properly selects the newly added one. Selecting controls on the layout properly highlights the rows in the navigator and vice versa.
  • IDE: Editing several report controls at the same time work again.
  • IDE: Editing subrows that are a menu item array no longer causes an exception.
  • IDE: Empty copy files steps now load properly.
  • IDE: Entering the name field and pressing enter without changing anything no longer marks the project dirty.
  • IDE: Exteral items now properly display event handlers that have no code after reloading the project.
  • IDE: Fixed an error in international input where selecting from the suggestion drop down that shows up in languages like Japanese could replace the wrong incomplete text.
  • IDE: Fixed an issue where if you had one item in a control array it would allow you to add another control of a differing type to the array just by renaming it OR if you selected two different types of controls you could make a control array out of them.
  • IDE: Fixed one more straggler in the Xojo name switch.
  • IDE: Help->Tutorials no longer shows a "Page Deleted" webpage.
  • IDE: Importing items no longer lists the items twice. The hierarchy is maintained upon import and the Navigator is updated properly.
  • IDE: Inspector no longer tries to open with width or height = 0 in certain situations.
  • IDE: Jump bar shows Xojo document icon.
  • IDE: LangRef no longer crashes when displaying some pages.
  • IDE: Length fields of columns in the database editor can now be changed.
  • IDE: Loading projects no longer drops parenting.
  • IDE: Login confirmation dialog no longer shows the current document name.
  • IDE: Modified file indicator is now properly cleared after saving.
  • IDE: New smaller switch is no longer pixelated on Windows/Linux
  • IDE: No longer crashes if an ExternalScriptStep can't open the script.
  • IDE: Real ID is no longer present on the sign in window.
  • IDE: Relocating files updates the manifest with the selected files path.
  • IDE: Removing a tab no longer removes controls from tab or page panels that may be enclosed that are on the same page or tab # as the one being removed.
  • IDE: Removing items from a control array no longer results in the Navigator being out of sync.
  • IDE: Resolving a deprecated super class also updates inherited view behaviors. We had been just updating the class' stated super.
  • IDE: Right clicking on a database and then NOT selecting an item in the contextual menu no longer raises an exception.
  • IDE: Save As functions as expected again.
  • IDE: Search results for web projects properly include the control name so when you click the result row it can go to the right spot.
  • IDE: Search should be reporting results for every possible item type - both in the name and the value.
  • IDE: Selecting the running application in the Navigator and pressing delete is not longer allowed.
  • IDE: Spotlight query has been removed from search results.
  • IDE: Text in the Navigator no longer has a chiseled look to it.
  • IDE: The Back and Forward buttons should work better when you are moving about within a layout, its controls and the events on those controls.
  • IDE: The check item for errors on the code editor toolbar now works.
  • IDE: The index.php file in www.xojo.com/doc was pointing to the wrong site.
  • IDE: The message displayed when the debugged application cannot connect to the IDE no longer mentions the 'REALbasic IDE'.
  • IDE: The online reference no longer causes an exception if you closed it while it was waiting to load (due to slow or offline Internet or web site).
  • IDE: The Scope and Interfaces items should NOT show for menu items.
  • IDE: Undoing the change of a super no longer changes the name of the item.
  • IDE: Various editors no longer cause NilObjectExceptions when used in a floating palette.
  • IDE: Web projects with a toolbar no longer get marked dirty when compiling.
  • IDE: Web Viewer has been renamed back to HTML Viewer for web projects.
  • IDE: When expanding rows in the Profiler, the parent row now only shows the amount of time that was actually spent in that method, not including the methods it has called. When it is collapsed, it shows a summary again.
  • IDE: When resolving missing images, resolving one image now attempts to resolve all others in the same location.
  • IDE: When you delete a project item the selection is set to something reasonable. In the specific case mentioned the app class is selected since the real item to select would be the "Contents" row which is not selectable. In other cases the enclosing item (parent item) will be selected.
  • IDE: When you filter a list and alter an item (by making it internal or external) the filter is automatically rerun so the item remains in the visible list of items.
  • IDE: When you have a code item (constant , event, method, property , etc ) selected the "analyze Item" is enabled. It will offer to analyze the container item (since you can't analyze a single method, property, constant, event, etc).
  • IDE: _PhantomProfiler no longer shows in the class browser when setting a super.
  • Lingua: "Export -> To Application" now generates correct strings files on OS X.
  • Linux IDE: Database column inspector fields no longer contain extraneous characters for Name and Length labels
  • Linux: Now uses the correct default font on Ubuntu Studio 13.04.
  • Linux: Now uses the system default stack size for the main thread.
  • MacCocoa: AppleScripts that return a value that can't be directly coerced to a string, like a list, now are coerced as 'human readable'. This matches the Carbon behavior.
  • MacCocoa: ApplyMask now works correctly for pictures without alpha channels.
  • MacCocoa: Assigning any value to Window.LiveResize no longer breaks window resizing.
  • MacCocoa: Changing Canvas.UseFocusRing while the canvas has focus now works correctly.
  • MacCocoa: Checkboxes in a ListBox are now drawn disabled if the Listbox is disabled.
  • MacCocoa: Default buttons no longer draw a white rectangle if the caption is too large for the button.
  • MacCocoa: Fixed an assertion that would occur when using RGBSurface.FloodFill on a picture with an alpha channel.
  • MacCocoa: No longer asserts when trying to open an EPS file.
  • MacCocoa: Non-resizable metal windows no longer have a border on the bottom.
  • MacCocoa: Single line labels now center vertically.
  • MacCocoa: The AppleEvent classes are now Unicode savvy.
  • MacCocoa: When drawing or filling a round rectangle with a Width or Height of zero, a message about "CGPointApplyInverseAffineTransform" is no longer logged to console.
  • MacCocoa: When drawing or filling a round rectangle with an OvalHeight or OvalWidth of zero, a message about "CGPointApplyInverseAffineTransform" is no longer logged to console.
  • Profiler: Clicking on the name column no longer sorts the profiler as it can get things out of order.
  • Web: Setting cookies now works more consistently.
  • Web: WebHTMLViewer's default URL is now http://www.xojo.com/
  • Web: WebSession.ConfirmationMessage now gets disabled if the browser disconnects from the web app.
  • Web: WebSessionContext stores and returns valid sessions for the current thread again.
  • Web: Windows CGI apps now build properly on Mac/Linux again.
  • Windows IDE: adding an icon to a BevelButton no longer distorts the image each time the project is compiled
  • Windows IDE: Inspector no longer flickers so much.
  • Windows IDE: No longer need to press Del twice in Attributes editor to start deleting text.
  • Windows IDE: Pressing Del in the Attributes editor no longer deletes the selected item.
  • Windows IDE: Pressing the Enter key (the one on the numeric keypad) in the code editor now inserts a new line.
  • Windows: Playing sounds (other than WAVs) no longer leak memory.
  • Windows: SaveAsDialog no longer locks (which would prevent you from modifying/deleting it while your app was still running) the parent directory when selecting a file to save
  • Windows: WebKit based HTMLViewer no longer suppresses the spacebar key.
  • New Items:
  • Doc: User Guide and Wiki updated with sections for useful code editor keyboard shortcuts.
  • DocLangRef: Added a template for displaying methods that are used like properties.
  • DocLangRef: Added ActionSource as an interface to Timer, PushButton, BevelButton and added an example to ActionSource.
  • DocLangRef: Added example to ActionSource interface.
  • DocLangRef: Clarified Window.Maximize, Minimize and Restore event handlers and methods.
  • DocLangRef: Improved ListBox.ListIndex docs.
  • DocLangRef: Removed NewMemoryBlock.
  • DocLangRef: Test apps for deployment now accessible via doc wiki "Web Deployment Overview" page.
  • Examples: Added IDECommunicator project to controlling the IDE using IDE Scripts from a command-line app.
  • IDE: Added "Introduction to Programming" item to the Help menu.
  • IDE: Attributes editor columns are now resizable.
  • IDE: Changes to Find pane: the search scope is a segmented control so its easy to switch with icons for the segments; you can sort by type again (so all constant sort together , methods , etc); if you have sorted the list by one heading then that sort is reapplied when you just type a search term.
  • IDE: Class instances placed on a layout that have NO default constructor and no public zero parameter constructor will cause compilation to fail.
  • IDE: Cmd-Option-H hides other applications.
  • IDE: In the LR viewer, external links should now open in the default browser (including he online reference external links for the PDF's & books).
  • IDE: Menu title changed to read Xojo Support Forum.
  • IDE: Profiler data can now be saved by right clicking on the profiler list
  • IDE: Rows in the ListBox and PopupMenu inline editors can be reordered using drag and drop.
  • IDE: Search segmented control has help tags to explain the settings.
  • IDE: The Behavior Inspector dialog/sheet is now resizable to make it easier to edit default values.
  • IDE: Thread(0) shows as "Main Thread" in profile results.
  • IDE: Tightened the spacing on the Inspector.
  • IDE: You can now override the default for each project type by having a binary project in the "Project Templates" folder with these names: Default Desktop Project.xojo_binary_project; Default Web Project.xojo_binary_project; Default Console Project.xojo_binary_project; Default iOS Project.xojo_binary_project (when we do this). If present, the above files are used as the default when creating a project (instead of an empty project). If both a xojo_binary_project and rbp are present the xojo_binary_project will be used.
  • Windows IDE: pressing enter/return to commit change to an inspector field no longer beeps
  • Changes:
  • Doc: Removed unused images from online wiki.
  • Framework: Removed deprecated binding interfaces namely: BooleanProvider, ListInterface, StringInterface, StringProvider, DataAvailableProvider, BindingInterface, BindPartInterface, ListDataProvider, ListDataNotifier, ListDataNotificationReceiver, TupleInterface, EnablingBinder, ActionBinder, StringBinder, and ListBinder.
  • IDE: Local LR updated as of June 28, 2013.
  • IDE: The local language reference has been completely revamped so it looks like the online one. Content matches as of June 11, 2013.

New in Xojo 2013 Release 1 (Jun 21, 2013)

  • Bug Fixes:
  • Compiler: Fixed a bug that could cause incorrect code generation when reading/writing double values to a pointer with a non-zero offset.
  • Compiler: The Hide, Hide Others and Quit menus no longer have multiple entries in localized strings files.
  • Database: Calling PostgreSQLDatabase.Connect without specifying additional parameters no longer fails.
  • Database: In order to use RecordSet.Edit or RecordSet.Update, the primary key (or identifying integer columns) must appear in the list of columns of the SELECT statement.
  • Database: REALSQLDatabase.ShortColumnNames now returns the correct value instead of always returning false
  • Database: REALSQLDatabase: BLOB data returned from a query now has a Nil string encoding instead of UTF8.
  • Database: Removed Database.GetProperty (this was only used by the defunct 4D plugin).
  • Database: Setting the Value of a DatabaseField to an empty string no longer saves a Null byte.
  • Debugger: Enumeration values with non-ASCII names are now displayed correctly in the debugger.
  • "Debugger: Using ""Step Out"" when debugging code running on a thread no longer behaves the same as single stepping."
  • Desktop: A disabled Listbox now looks disabled (contents grayed and header grayed).
  • Desktop: Child controls contained in several nested containers now properly reveal themselves when its ancestor(s) become visible. This was a bug mainly seen on Windows only.
  • Desktop: Clipping an already clipped Graphics with negative X/Y now works properly.
  • Desktop: Closing a window while editing a cell in a listbox no longer crashes.
  • Desktop: Embedding a ContainerControl on another ContainerControl which has not been embedded on a window yet now throws an UnsupportedOperation exception instead of asserting.
  • Desktop: HTMLViewer WebKit: Tabbing between controls now works on Windows.
  • Desktop: HTMLViewer's Close event now fires.
  • Desktop: Listbox no longer crashes when removing rows during a drag reorder event.
  • Desktop: No longer raises an OutOfMemoryException when moving a Listbox off the side of a window.
  • Desktop: Reports: Fixed a pair of bugs that prevented report footers from rendering in the right place.
  • Desktop: SegmentedControl: On Windows and Linux setting the selected segment of a single mode SegmentedControl in code now resets the other segments properly instead of clearing the wrong selection.
  • Desktop: Setting Checkbox.Value to True of an Indeterminate Checkbox now works as expected (i.e. the Checkbox state changes).
  • DocLangRef: Fixed typo in Declare example.
  • DocLangRef: Added Delegate constructor.
  • DocLangRef: Added HashTag property to WebSession class.
  • DocLangRef: Added missing properties to ConsoleApplication, ServiceApplication and WebApplication.
  • DocLangRef: Added Target32Bit and TargetLinux to the Compiler category.
  • "DocLangRef: Added WebCanvas to the ""Web"" category."
  • DocLangRef: Added WebPopupMenu.Text to LR.
  • DocLangRef: Changed to indicate RecordSet is a method, not a property.
  • DocLangRef: Clarified ConstructorInfo example text.
  • DocLangRef: Fixed an issue preventing local help for MenuItem from displaying propely.
  • DocLangRef: Fixed DataControl.Update event link.
  • DocLangRef: Fixed operator formatting on MemoryBlock.Operator_Compare page.
  • DocLangRef: Fixed typo in example for If…Then…Else.
  • DocLangRef: Fixed typo in WebDialog example code.
  • DocLangRef: Fixed WebHTMLViewer.LoadPage example for loading HTML from a file.
  • DocLangRef: FolderItem.MacType marked as deprecated.
  • DocLangRef: For XMLDocument, removed duplicate methods, cleaned up examples, added example for XMLDocument.CreateElement.
  • DocLangRef: Local LR content has been updated.
  • DocLangRef: PrinterSetup works on Linux.
  • DocLangRef: Removed invalid Window.GetPID method from LR.
  • DocLangRef: Removed PostgreSQLPreparedStatement.BindType.
  • DocLangRef: Removed use of FileTypes from TextOutputStream examples to eliminate confusion.
  • DocLangRef: Significant updates to all database-related topics.
  • DocLangRef: TextInputStream.PositionB is now marked as read/write.
  • DocLangRef: Updated Canvas.DoubleBuffer and Canvas.EraseBackground notes and example.
  • DocLangRef: Updated ContainerControl events, removing CancelClose and adding GotFocus and LostFocus.
  • DocLangRef: Updated DataAvailable page to indicate it is shared by several classes.
  • DocLangRef: Updated docs for Clipboard to note usage of UTIs.
  • DocLangRef: Updated example for RecordSet.ColumnType.
  • DocLangRef: Updated examples for Exit command.
  • DocLangRef: Updated LR to remove UCS4 and add UTF32 to Encodings.
  • DocLangRef: Updated notes for SortWith.
  • DocLangRef: Updated Picture.IsImportFormatSupported and Picture.Save to indicate formats not supported on console/web apps.
  • DocLangRef: Updated WeakRef example.
  • DocLangRef: Updates to AND regarding expression evaluation.
  • DocLR: Fixed typo in RectControl.DrawInto example.
  • Docs: Fixed a bug in the wiki example for HTTPSocket.Post.
  • Docs: Fixed a grammar error in the Wiki for HTTPSocket.Post.
  • DocTutorial: Tutorials have been rewritten.
  • DocUserGuide: Added section on Control Sets.
  • DocUserGuide: Fixed typo in Encoding example.
  • Examples: Fixed typo in AddHandler example.
  • Examples: Fixed YearPopup in Desktop/Custom Controls/CalendarWindow project.
  • Examples: Updated EddiesElectronics example to properly use HashTagChanged event handler and to fix issues running on mobile phones.
  • Framework: Dates created using the Copy constructor are copies including the GMT offset.
  • Framework: In RBScript, the message passed to the CompilerError event no longer has a trailing NULL. However, it is still useless and should be ignored in favor of providing your own localized messages based off of the RBScript error codes in the documentation.
  • Framework: JSONItem no longer takes the computer's number format into account when serializing.
  • Framework: JSONItem now converts non-visual ASCII and unicode characters to their escaped unicode equivalents.
  • Framework: RBVersion constant should not have slight errors & be testable against values like 2012.010 (2012r1 had been showing up as 2012.09999999).
  • Framework: RTF parsing no longer treats the \u keyword as being dependent on the document's codepage and RTF writing no longer writes out an invalid codepage for the document.
  • Framework: SSLSocket: Linux builds that use SSLSocket no longer crashes when built from Windows IDE.
  • Framework: StyledText.RTFData now writes the file out with ANSI codepage 256 instead of an invalid codepage.
  • Framework: TextArea.Open has been implemented under Cocoa in order to open existing documents. However, TextArea.Open and TextArea.Save have been deprecated in favor of TextArea.StyledText.RTFData.
  • Framework: TextArea.SetTextAndStyle is now deprecated on all platforms and unavailable under Cocoa.
  • Framework: TextArea.TextStyleData is now deprecated on all platforms and unavailable under Cocoa.
  • Framework: The use of paramarrays no longer causes an error in plugin defined classes.
  • Framework: When parsing RTF data, the framework now assigns the file's encoding to the generated StyleRuns instead of a bogus encoding that caused crashes.
  • "IDE Scripting: TypeOfCurrentLocation now returns ""Constant"" for Constants instead of an empty string."
  • IDE: The issue that caused projects to warn that data would be lost on save has been fixed. Some data is supposed to be skipped, as it is no longer required but is created by older IDEs.
  • IDE: A NilObjectException in the templates window has been fixed.
  • IDE: A silent exception is no longer raised when removing a report control preventing you from removing it.
  • IDE: A situation that could lead to an IDE experiencing a nil object exception in the database editor has been corrected. Also the delete contextual menu item should be enabled & disabled in the same cases the command bar is so you can't get into a state where you can delete a column using the contextual menu but not the command bar.
  • IDE: Adding columns using the DB Editor on Windows no longer raises a NilObjectException.
  • IDE: An issue that could cause a NilObjectException when deleting project caches and checking for plugin changes has been fixed.
  • IDE: An out of bounds error loading web projects that use subclassed controls has been fixed.
  • IDE: Attribute names need to be legal identifiers or quoted strings and now we will enforce that when we load old projects and when we add new attributes.
  • IDE: Attributes no longer mess up VCP projects.
  • IDE: BuildMacCarbon and BuildMacCocoa both exist as a way to select which runtime to use via IDE Scripting.
  • IDE: Builds folder now uses project name + extension.
  • IDE: Can now edit ByRef parameter values in the debugger.
  • IDE: Certain regular expressions no longer create infinite loops when searching.
  • IDE: Classes with deprecated super classes now properly save in VCP format.
  • IDE: Classes with the names of internal classes no longer get the internal class icon.
  • IDE: Code editor properly aligns text when using a monospaced font like Courier.
  • IDE: Code hints now work for items nested more than two levels deep.
  • IDE: Color picker now starts with the color shown in the Style Editor instead of black.
  • IDE: ContainerControls AcceptTabs property shows correctly in the Inspector.
  • IDE: Control Arrays are now called Control Sets.
  • IDE: Controls on windows should no longer have changes to their property values in Text project files.
  • IDE: Delegates will no longer incorrectly appear to allow being made shared. As a datatype, it makes no sense to share them.
  • IDE: EULA adjusted.
  • IDE: Export Localization Dialog resizes better to handle long strings that occur in German.
  • IDE: External modules refuse to allow you to drag items into them as they cannot contain anything anyways.
  • IDE: Extract Interface window is no longer resizable.
  • IDE: Faster start-up time by delaying loading of Language Reference data.
  • "IDE: Fixed a ""Saving will lose data"" issue."
  • IDE: Fixed a bug where a missing image, if not fixed at project opening time, could cause a report that used the image to cause a NilObjectException.
  • IDE: Fixed a bug where PopUpMenus could stick around in the inspector and cause all sorts of display problems.
  • IDE: Fixed a sporadic NilObjectException that could happen when cleaning out auto saved projects and plugins.
  • IDE: Fixed an error in reading the scope of a VCP class that had attributes attached to it.
  • IDE: Icon editor has been completely revamped.
  • IDE: Icon editor is no longer resizable.
  • IDE: Icon Editor: 48 x 48 has both 32 and 8-bit editors again and ICNS files import on OS X again.
  • IDE: If a picture item fails to render, the IDE now reports the errors instead of throwing an unhandled exception.
  • IDE: If you have non standard background colors the color literals attempt to draw in a way they will still be visible.
  • IDE: Importing certain ActiveX controls on Windows (mainly those that depend on other DLLs being in the current directory) no longer causes the IDE to crash.
  • IDE: Importing RBO / XML files that are modules with classes etc in them are now imported properly.
  • IDE: Improved ability to set compatibility flags.
  • "IDE: Initial build setting for web projects defaults to ""current platform""."
  • IDE: Internal properties are marked as {Internal} in the Property Behavior window.
  • IDE: Issues where the LR could end up in an infinite loop have been resolved.
  • IDE: Line numbers reported for errors in IDE scripts are now correct. They had been off by one.
  • IDE: Loading a project can now be cancelled.
  • "IDE: Local LR no longer causes an assertion on the """" page for literals."
  • IDE: Missing UI state file (*.rbuistate) in rbvcp projects no longer can cause an unhandled IOException.
  • IDE: No longer crashes when debug app quits/stops on Linux (and possibly Windows).
  • IDE: No longer get an exception removing a report control.
  • IDE: Norwegian Bokmal and Norwegian Nynorsk localization codes to the IDE.
  • IDE: Now provides a compile time error for windows with the drawer frame type instead of asserting at runtime.
  • IDE: Plugin load failures again appear in the Debug Log.
  • IDE: Plugins that register methods or events with fully qualified type names (like REALbasic.Rect) for parameters or return types now work correctly.
  • IDE: Property list behaviors for ContainerControls (web & desktop) are saved and restored.
  • IDE: Quitting from the dock on OS X with the issue resolution sheet open no longer raises an exception.
  • IDE: Reduced disk access to improve performance.
  • IDE: Relocating items when loading a Text project file DOES dirty the project again.
  • IDE: Saving will lose data message no longer displays for old projects with Mac Classic app names.
  • "IDE: Searches using regex that indicates ""line start"" and ""line end"" anchors will behave as users expect on declarations (even though the declaration really isn't the way they think it is)."
  • IDE: Selecting an IDE script from the Scripts menu now edits it if you hold down the option key (OS X) or the shift key (Windows, Linux). Previously all modifiers performed this action.
  • IDE: The IDE no longer forces users to use a fully qualified class name as the super when the compiler will reject it.
  • "IDE: The last change rbbf tag, which is no longer used, is now ignored properly and will not cause ""loss of data"" warnings."
  • IDE: The preferences system on OS X now avoids more variant conversions and is generally more efficient.
  • IDE: The user can no longer set WebApplication.Port to an invalid value.
  • "IDE: Using the ""Define missing method"" entry in the contextual menu in the code editor no longer causes an issue when you use it in a method in a module."
  • IDE: VCP and RBP projects that contain absolute paths now load properly.
  • IDE: Web Controls whose text is defined with a dynamic constant now update properly when the Language is changed in Shared Settings.
  • IDE: Web project layouts perform significantly faster.
  • IDE: Web styles can be placed in a module and will compile as expected.
  • IDE: Web toolbars retain their icons when saved in RBVCP format.
  • IDE: WebApplication.HandleSpecialURL page has been adjusted manually in the local documentation.
  • IDE: WebPage controls no longer draw on top of the tray controls.
  • IDE: You can no longer drag, cut or copy the Build item in the build step list.
  • JSONItem: Now correctly encodes chars with ASCII values < 31 and 127.
  • JSONItem: Now uses the formatted version of Str instead of Format for converting numbers.
  • Profiler: Fixed a bug that could cause a crash if two threads tried to record profile data at the same time.
  • Remote Debugger: Remote Debugging no longer fails for applications with Unicode characters in their name.
  • Web: Build process no longer includes hidden files in framework.
  • Web: Calling WebPage.Close removes the page from the browser again.
  • Web: Cursor assignment can now be overridden on a control by control basis.
  • Web: Fixed a bug where sending a request to /framework/ and an invalid filename would result in a file being downloaded which contains the filename itself.
  • Web: Fixed a bug which caused an OutOfBoundsException in the internal session/thread map.
  • Web: Fixed a bug which could select an incorrect session if the current session suddenly disappeared in the middle of a call to Session.
  • Web: Framework Code sections that are locked behind a CriticalSection will now automatically release if an exception occurs so other threads can continue.
  • Web: Framework no longer crashes inside WaitingForSync method.
  • Web: Framework: Changed eval to JSON.parse for security purposes (This is for information only, this was implemented in 2012r2 already).
  • Web: Framework: Fixed a bug which could result in all session threads waiting for one another and the app appearing to hang.
  • Web: Framework: Fixed a subtle bug in how the parent folder of a CGI script is calculated.
  • Web: iOS devices no longer disconnect prematurely.
  • Web: Showing a contextual menu that hasn't been rendered on the browser yet no longer causes a Javascript error.
  • Web: Showing a WebDialog now scrolls the page back to the top.
  • Web: Speed optimizations for CSS code rendering.
  • Web: Stepping over Session objects in the debugger should no longer more than one click.
  • Web: Using the global Session method from within the Session class now returns Self instead of going and looking it up in the master table. A message is also written to the messages panel asking the user to use Self instead.
  • Web: WebButton: Setting the cursor property for now works properly.
  • Web: WebContainers and WebDialogs now only fire their Open and Shown events once whether they are created at design time or runtime.
  • Web: WebPopupMenu no longer sends duplicate lines to the browser when some are added in the Open event.
  • Web: WebPopupMenu: AddRow and InsertRow RowTags now default to Nil
  • Web: WebRadioGroup: Single quotes can be used in the design-time caption again.
  • Web: WebRequests no longer have the Entity appended to the querystring unless the mime-type is application/x-www-form-urlencoded or multipart/form-data.
  • Web: WebSDK control icons are no longer cropped when the control is smaller than the icon itself.
  • Web: WebSegmentedControl now initially positions captions correctly when the captions have spaces in them.
  • Web: You cannot define a class with the same name as a web framework item nor can you use web framework classes in a desktop or console project.
  • Web: Z-Index and Layering set up in the Web Page editor are now obeyed.
  • WebCanvas: Added and implemented EraseBackground property to Refresh and Invalidate to match desktop behavior.
  • WebCanvas: Fixed a bug which caused the graphics object to be invalid when the canvas object was created at runtime.
  • WebCanvas: IE8 Text baseline calculations have been updated.
  • WebCanvas: Now resizes correctly when the size is set in code.
  • WebCanvas: On Internet Explorer 8, DrawString now uses Arial as the fallback font if the specified font does not exist.
  • WebCheckbox: Setting the cursor now affects the entire control.
  • WebControlWrapper: Fixed a bug that could prevent custom icons from rendering in the IDE.
  • WebFile: The URL property now appears in the debugger.
  • WebListBox: No longer throws an OutOfBounds exception when the number of defined columns is less than the number of defined headers.
  • WebListbox: Now responds correctly to changes in the cursor property.
  • WebSDK: Custom web controls can now be subclassed.
  • WebSDK: EventIsImplemented method now autocompletes.
  • WebSDK: Fixed a place where Xojo was changed back to RS and was causing JS errors.
  • WebSlider: Fixed a bug where setting the Maximum at runtime would not refresh the slider.
  • WebStyle: Hid the undocumented methods and properties.
  • Windows IDE: Wndow title in the form editor now displays unicode text properly.
  • Windows: App.Close now fires on Windows Logout/Shutdown.
  • Windows: Application no longer fails to launch if the name contains an ampersand character in it.
  • Windows: Builds no longer uses the LongVersion build setting for its Copyright field, instead we use the Company Name value.
  • Windows: Converting a UTF16LE string to another encoding no longer raises an assertion.
  • Windows: Dragging a file onto a TextArea control no longer crashes.
  • Windows: DragItem.DragPicture now works properly for alpha pictures with colored transparent gradients.
  • Windows: Exceptions now work in service applications. Note that this does introduce a behavior change: the Pause, Stop, and Resume events now only fire when DoEvents is called.
  • Windows: Fixed a strange background redrawing bug which manifests itself with certain controls on a TabPanel.
  • Windows: Fixed some clipboard issues with inverted pictures.
  • Windows: Format function no longer returns bad values in cases where a 3rd party has set a default locale (Some ActiveX/COM components were doing this).
  • Windows: Printing a styled text block no longer mangles the rest of the printing process.
  • Windows: Redundant exponential value is now stripped off when a Variant double is converted to a string.
  • Windows: WebKit based HTMLViewer no longer displays a dialog when you press the space bar.
  • New Features
  • Database: DB editor improved.
  • Database: SQLiteDatabase/REALSQLDatabase: updated to SQLite 3.7.14.1.
  • Desktop: Canvas/ContainerControl: added Transparent property, whose default value is True, this maintains current compatibility. If set the False then the Canvas/ContainerControl will become opaque (i.e. background will not show through). On Linux this has particularly special meaning in that child controls on an Opaque Canvas/ContainerControl can be clipped.
  • DocLangRef: Clarified notes for ByVal and ByRef.
  • DocLangRef: Noted that array.Pop raises an OutOfBoundsException if the array has no values.
  • DocLangRef: Updated OLEObject with note and example using dot notation to access properties.
  • "DocLangRef: Updated System.EnvironmentVariable to mention ""ROOT"" and ""DOCUMENT_ROOT"" that might be useful for web apps."
  • DocLangRef: Updated topic for Static variables in LR and User Guide.
  • Framework: Added a PrintingCancelled property to the Graphics class that can be used to detect when the user has cancelled a print job. For non-print Graphics contexts, this property always returns False.
  • Framework: FolderItem has gained a NativePath property. On Windows and Linux, this is the same as the current AbsolutePath. On OS X, this returns the POSIX path instead of AbsolutePath's HFS path. Since HFS paths are obsolete, AbsolutePath has been deprecated in favor of NativePath. Also added is FolderItem.PathTypeNative, which can be passed to the FolderItem's Constructor or GetFolderItem. This must be explicitly passed if you wish to use it, as the two functions continue to default to FolderItem.PathTypeAbsolute for compatibility reasons.
  • IDE: Added a Xojo forums entry to the Help menu.
  • IDE: Added a contextual menu to allow you to see the locations of its menu handlers in the project. Selecting a location from the list takes you to the handler.
  • IDE: Added the comment tool button for Built Steps IDE scripts.
  • IDE: All-new splash screen.
  • IDE: All-new text input based code editor.
  • IDE: Can now select multiple project items (such as folders) and choose Insert to add a project item to each of the selected items.
  • "IDE: Code editor and debugger implement a new ""floating help tag"" style to show help information and debugger status that used to appear in the status bar of the old UI."
  • IDE: Constant instance editor now automatically sets focus on the text after selecting a language.
  • IDE: Controls have default events and event descriptions from Language Reference appear when the event name is selected.
  • IDE: Cut, copy and paste now function in the menu editor.
  • IDE: Debugger looks more like the rest of the new IDE. No functional changes.
  • IDE: External tools using IPC to drive IDE scripts can now receive data back from the script. To do this, the tool should send a NULL when it has finished sending the IDE script's source code (instead of terminating the connection). The IDE script can send data back to the external tool by calling the Print method.
  • IDE: Holding down the Alt/Option while selecting Project->Run Remotely now appends the IP Address to the machine name.
  • IDE: IDE scripts have command bar with comment item.
  • IDE: Improved handling of build steps.
  • IDE: Improved startup time by limiting indexing of internal docs at startup.
  • IDE: Improved startup time.
  • IDE: It is possible to drag controls between layouts using the Navigator.
  • IDE: Navigator size is stored in preferences, synced between tabs, and has a much greater maximum width of 65% of the window width.
  • IDE: New licensing model in use.
  • IDE: Now shows raised exceptions in the variables pane with the other local variables.
  • IDE: Office classes (i.e. WordApplication, ExcelApplication, and PowerPointApplication) are no longer loaded automatically. You can find the MSOfficeAutomation.rbx plugin in the Extras folder.
  • IDE: Project Chooser window only loads recents, templates and examples when those items are selected in the source list.
  • IDE: Run in GDB will be enabled for ALL users on OS X if they have a Debug Plugins directory next to the IDE.
  • IDE: Search results and filters have updated user interface to present results more clearly.
  • "IDE: Selecting ""Open In Tab"" from the navigator contextual menu will drill the navigator in the new tab to the selected item."
  • IDE: Show / Hide toolbar pill no longer shows on OS X in versions where it should not.
  • IDE: Showing the find pane automatically moves the focus to the search field.
  • IDE: System.DebugLog output is now visible from the debugger.
  • IDE: Tabs have a lock icon that when clicked will prevent you from accidentally switching the contents of that tab to another item.
  • IDE: The debugger now shows System.DebugLog console output using the Messages pane.
  • IDE: The Interface Editor window is now resizable.
  • IDE: Updates to License Agreement.
  • IDE: Users can now optionally send anonymous system specs to Xojo.
  • IDE: What used to be known as control arrays are now referred to as control sets.
  • IDE: Without an appropriate build license you can only save as Binary whether you start with a new project or an existing on in XML or Text format.
  • IDE: You can add an event to multiple controls at the same time by selecting the controls then choosing Add Event Handler.
  • IDE: You can now choose to sort the Library alphabetically.
  • This change will break applications which rely on EndOfLine being a carriage return. Those applications should switch to explicitly specifying EndOfLine.Macintosh or Chr(13)."
  • Moved to more appropriate places in the project menu and the profile code item to the shared settings
  • Plugins SDK: Added a way to forward events from a plugin's NSView to the framework. An example project, HostedPluginExample, has been added to demonstrate how to do this.
  • Plugins SDK: Enums inside of classes are now supported.
  • Profiler: Number columns are now right justified and widths are determined by the column titles.
  • Remote Debugger Desktop: Destination Select dialog now defaults to SpecialFolder.Desktop.
  • Remote Debugger Desktop: Missing download directory dialog now shows Use Temporary/Change instead of No/Yes.
  • "Web: Added ""/api/"" as an alias to ""/special/"" for directing requests to App.HandleSpecialURL."
  • "Web: Error pages no longer say ""Powered By Real Studio Integrated Web Server"" on them."
  • Web: WebMapViewer: Added APIKey property so users can add their developer key for better access.
  • WebContainer: Added ScrollTo method to set the scrolled content position; added ContentScrolled Event which fires when the content is scrolled.
  • WebFile: Added a property UseCompression which determines if the web framework should compress a file before sending it to browsers that support compression.
  • WebGraphics: Added a TextAlignment property for drawing Center and Right Aligned text.
  • WebSDK: Added a constant IncludeInTabOrder which when set to True includes the control in the tab order.
  • WebSDK: Added a mechanism to allow a WebSDK control to know if a particular shared library has already been loaded for a particular session.
  • Changes:
  • Compiler: The DisableAutoWaitCursor pragma has been deprecated. There is no replacement because this pragma doesn't actually do anything at runtime (and hasn't in quite some time).
  • Debugger Stub: Updates for 2013 Release.
  • Desktop: BevelButton's AcceptFocus property now is set to True when BevelButtons are added to a layout.
  • Doc: Added QuickStart for web apps (PDF and iBooks).
  • Doc: Added Tutorial for web apps (PDF and iBooks).
  • Doc: All-new User Guide in 4 books: Fundamentals, User Interface, Framework and Development (PDF and iBooks).
  • Doc: Cleaned up docs in Readme folder (for release packaging).
  • Doc: Created testing guide (PDF and iBooks).
  • Doc: Local Language Reference updated from wiki as of Feb 18, 2013.
  • Doc: QuickStarts and Tutorials are now available in PDF and iBooks formats.
  • DocLangRef: Added note about Dictionary key values and case.
  • DocLangRef: Clarified App method and Application class.
  • DocLangRef: Expat version is now listed on XMLDocument page.
  • DocLangRef: Marked Graphics.UseOldRenderer as deprecated (since 2012r1).
  • DocLangRef: Updated examples for TextEdit.LineNumAtCharPos.
  • Documentation: WebSDK docs have been updated for 2013r1.
  • DocUserGuide: All-new screenshots.
  • Framework: Deprecated RealSQLDatabase, RealSQLBlob, and RealSQLPreparedStatement in favor of the replacements SQLiteDatabase, SQLiteBlob, and SQLitePreparedStatement respectively. Note that these new classes may not be completely compatible with the old RealSQLDatabase databases. For example, the new SQLiteDatabase class no longer supports the AutoCommit property, transactions must be started explicitly. A rowid is no longer implicitly injected into the result set, you should always select a primary key if you plan on using the RecordSet update/delete functions.
  • Framework: Removed deprecated binding interfaces namely: BooleanProvider, ListInterface, StringInterface, StringProvider, DataAvailableProvider, BindingInterface, BindPartInterface, ListDataProvider, ListDataNotifier, ListDataNotificationReceiver, TupleInterface, EnablingBinder, ActionBinder, StringBinder, and ListBinder.
  • Framework: The XojoScript class has been added, which supersedes the RBScript class. The language remains unchanged, but the XojoScript class provides more information from the compiler about errors and warnings.
  • IDE: A toolbar that is dragged to a Window now appears on the shelf.
  • IDE: Accept files types is a sheet on OS X.
  • IDE: Add Event Handler dialog supports typeahead.
  • IDE: Added inline editing support for most desktop controls.
  • IDE: All rebranding issues are completed.
  • IDE: All URLs have been updated to point to Xojo.com.
  • IDE: All-new dialog for changing tab order.
  • IDE: App.IncludeFunctionNames is now enabled by default for newly created projects.
  • IDE: Code and Project item names can no longer be created starting with an underscore.
  • IDE: Constant Editor Platform menu now only allows users to select a supported target.
  • IDE: Control instances with missing supers are now shown with a ? instead of a generic RB icon (or nothing at all).
  • IDE: GUI / Desktop projects default to using Cocoa if you build for OS X.
  • IDE: HTML help can be loaded from ZIP plugins.
  • IDE: Implemented a Tooltip for project items in the Navigator to show SuperClass and Interface information.
  • IDE: Improved speed of checking for duplicate plugin classes.
  • IDE: License agreement is now displayed in a third pane in the about box.
  • IDE: Modules only show disclosure triangles when they have objects in them.
  • IDE: New VCP projects will default to using Unix line endings on OS X. Current line endings will be preserved in existing projects.
  • IDE: Now supports proxy servers.
  • "IDE: Profile runs now show a ""run number"" as part of the title in the listings."
  • IDE: Profiling now tracks per thread activity better by segregating out each thread by its thread id.
  • "IDE: ServerSocket now has a sockets group in the Inspector showing ""Minimum"" and ""Maximum"" rather than ""MinimumSocketsAvailable"" and ""MaximumSocketsConnected""."
  • IDE: The Debugger stack list box now lists most recently called to least recently called methods (a true stack).
  • IDE: The default menu bar name is now MainMenuBar instead of MenuBar1. Subsequent MenuBars will be numbered MenuBar2 and so on.
  • IDE: The inline editor (pencil) icon scales up to a maximum of 18 x 18 but is never more than 50% of the width or height. Below 6 x 6 its not shown at all as its so tiny as to be unhittable and a control that size won't have a useful caption. And if you do need to edit the caption you can still use the Inspector.
  • IDE: The Interface Aggregates property inspector now uses the Interface editor for editing aggregates.
  • IDE: The preference to only show one error at a time while compiling has been removed.
  • "IDE: The splash screen now consistently uses ""Loading"" when describing the items being loaded."
  • "IDE: Updated the ""Load Intrinsics"" message on the splash screen to say ""Loading Frameworks""."
  • "IDE: User objects can no longer be called ""Xojo""."
  • IDE: Window position is now stored in preferences instead of the project UI state. Default position now intelligently avoid overlapping with floating palettes.
  • IDE: Xojo plugins must be in ZIP format.
  • IDE: xojo_plugin files now have the right icon.
  • Profiler: Added color highlights to expanded rows and the row that the mouse is currently hovering over to make reading on large screens easier.
  • Profiler: Times are now shown in milliseconds.
  • RBScript: Now uses LLVM 3.2 internally.
  • SpecialFolder: AppleMenu has been deprecated.
  • Web: Deprecated the WebFile FileDownloaded delegate and replaced with the Downloaded event handler.
  • Web: Optimized a few of the images in the default framework.
  • WebListbox: Optimized the routine for changing the data size when inserting, appending or removing rows.
  • WebSDK: Controls created using RS namespace now work in the new Xojo namespace.
  • Windows/Linux: With the Use Build Folder setting unchecked, a debug build no longer creates a build folder.

New in Xojo 2012 Release 2.1 (Jan 24, 2013)

  • Debugger Stub: Now checks to make sure the destination folder Exists and isWritable before trying to write to it.
  • Debugger Stub: Spaces in the app path are now escaped when launching console apps on Linux.
  • Desktop: Toolbar items (ToolItem) can be usefully subclassed now.
  • Framework: SSLSocket events no longer fire on a non-main thread (unless Poll is called from that thread).
  • IDE: An issue where changes to web projects saved in vcp format were not being saved has been corrected.
  • IDE: default.lproj localization files are no longer generated.
  • IDE: Notes in properties no longer get leading or trailing blank lines stripped when saved in VCP format.
  • IDE: Profiler times are now properly reported in seconds (not milliseconds).
  • MacCocoa: KeyDown events no longer forces the key to be ASCII and instead passes it through in its full Unicode glory.
  • Remote Debugger Stub: Now identifies itself as "Remote Debugger Stub" instead of "Real Studio" to Windows.
  • Remote Debugger Stub: Transfer speed to Windows has been greatly improved.
  • Web: Fixed a bug where an empty string sent to the browser could cause a JSON error.
  • Web: Framework: Data no longer leaks between sessions.
  • Web: Framework: Fixed a bug that caused extra data to be sent to browsers, causing JavaScript errors.
  • Web: WebPage.Title now correctly renders dynamic constants assigned in the IDE.
  • WebCanvas: Fixed a bug on international systems that caused RoundRect corners to be drawn inverted.
  • WebCanvas: Fixed a case where the Invalidate method could become unresponsive if no changes were made between Paint events.
  • DocLangRef: Updated local LR for 2012r2.1.

New in Xojo 2012 Release 2 (Jan 8, 2013)

  • 20+ Web updates
  • 10+ Windows updates
  • A new Web Control SDK that allows you to create web controls for use in Real Studio web applications using HTML/CSS/JavaScript. This makes it possible to use JQuery and other web frameworks in Real Studio web apps.
  • Faster remote debugging for improved cross-platform support
  • A WebCanvas for easily creating graphical, interactive custom controls
  • Crypto module (Hashing) with support for MD5, SHA1, SHA256, SHA512, HMAC and PBKDF2 for 1-way encryption
  • Web applications can now easily be localized to support multiple languages in exactly the same way you localize desktop applications
  • PostgreSQL SSL support for improved security

New in Xojo 2012 Release 1 (Jan 8, 2013)

  • Webkit Support for HTMLViewer on Windows
  • Incremental Reading/Writing of BLOBs in SQLite/REALSQLDatabase

New in Xojo 2011 Release 4.3 (Apr 3, 2012)

  • Greatly Improved Support for Cocoa: Significant improvements have been made in this release on Real Studio’s Cocoa-based Mac framework and many projects will now simply work when built with it. There are more than 60 Cocoa-specific bug fixes in this release.
  • Alpha Channels: Graphics now have support for opacity allowing colors to be drawn that are anywhere from totally opaque to completely transparent.
  • Improved Graphics on Linux: On Linux printing at a high resolution can now be done just as it would on Windows or Mac OS X.
  • Improved Graphics on Linux: Graphics on Linux now supports smoother drawing, anti-aliasing, translucency, and hardware acceleration.
  • Improved ODBC Support: Prepared Statements are now supported for ODBC which improves security.
  • Portuguese Support: The Real Studio IDE has now been fully localized into Portuguese.

New in Xojo 2009 Release 5 (Dec 17, 2009)

  • REALbasic 2009 Release 5 continues with a focus on quality and adds over 68 improvements and 17 new features. This release introduces support for Linux distribution Ubuntu 9.10 and includes an updated SQLite version, which adds foreign key support.

New in Xojo 2009 Release 4 (Sep 29, 2009)

  • This release offers 97 improvements and 39 new features including a new report editor, which will be included in all versions of REALbasic, and build automation, a feature exclusive to REAL Studio.
  • The new report editor allows developers to visually create a layout for printing by dragging and dropping labels, fields, images and more. Reports can be created to print a single page or multiple pages. The layout is divided into sections (header, body, footer as well as grouping sections for reports that have sorted data).
  • The new build automation feature of the Project Editor is only available in the REAL Studio Edition. With Build Automation developers can now automate the most common functions of building their applications without having to write IDE scripts.

New in Xojo 2009 Release 3 (Sep 29, 2009)

  • This release boasts more than 100 improvements and 31 new features including the addition of OpenGL support for 3D images and animation.

New in Xojo 2009 Release 2 (May 6, 2009)

  • This release includes more than 70 improvements and 18 new features. The new features are:
  • COM Automation Support: Applications can take control of any other Windows application that supports COM automation.
  • MySQL Support: The Community Edition (free) of MySQL is now officially supported.

New in Xojo 2009 Release 1 (Mar 9, 2009)

  • Adds 27 new features and 100 improvements. Also, this release includes a new Quickstart window that helps new users get started developing software in REALbasic.

New in Xojo 4.1.0.0 (Oct 15, 2008)

  • Control Locking: Control Locking adds the ability to lock a control in the IDE so it's position and size cannot be edited. This is useful for positioning controls at design time on complex User Interface's to prevent accidentally modifying the control.
  • Tab Stops: Tab Stops allow users to specify controls to be skipped over when tabbing through the user interface at runtime.
  • Auto-adjust Tab Indexes: REALbasic can now automatically determine the tab order for all controls.
  • Warning System Updates: REALbasic now includes several new warnings, as well as a new User Interface to set per-project preferences on what warnings to receive.
  • Constants in Declarations: The REALbasic compiler now allows the use of constants and enumerations in declarations. For example, constants can now be used as part of a method's optional parameter declaration or to define enumeration values in terms of other constants.
  • Codesign for Mac OS X Applications: Codesign enables developers to digitally sign REALbasic applications. Digitally signed applications provide greater security because the application can be traced back to the author. One way this is used on the Mac is with Mac OS X Leopard Server. Applications installed on Leopard Server must be authorized by the user each time they are launched. Digitally signed applications need only be authorized once.

New in Xojo Release 4 (Sep 28, 2007)

  • Over 80 improvements including debugger enhancements
  • 9 new features including Ubuntu support
  • Faster ODBC and faster database access