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
  • Statistics:
  • Bugs fixed: 258
  • Features added: 31
  • Documentation changes: 4
  • Examples changed: 1
  • 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)

  • 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)
  • Examples:
  • Resolved Issues:
  • The CombitListAndLabel example project now opens correctly. (74569)

New in Xojo 2023 Release 3.1 (Oct 25, 2023)

  • 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:
  • Resolved Issues:
  • Web: Fixed an issue causing loading web projects from earlier versions to convert ColorGroups to the default control color. (74376)
  • Framework:
  • Resolved Issues:
  • Fixed a regression where drawing a picture in PDFDocument resulted in a blurry image. (74475)
  • macOS: Typing a new text value in a DesktopComboBox on macOS updates the SelectedRowIndex property accordingly. (74353)

New in Xojo 2023 Release 3 (Oct 11, 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.
  • Statistics:
  • Bugs fixed: 233
  • Features added: 44
  • Documentation changes: 2
  • Examples changed: 1
  • 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)

  • 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)
  • Android: Added Android project type with support for Android OS apps (Beta). (11151)
  • iOS: The Code Signing section for a new iOS project now selects the first available Team profile by default (if any). (73067)
  • 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)
  • iOS: Fixed setting the color properties for iOS controls through the Inspector panel. (72885)
  • Linux: Linux IDE: no longer crashes at startup on certain distros of Linux, including openSUSE and some variants of CentOS. (70080)
  • macOS: DesktopDateTimePicker now defaults to DateOnly mode on macOS. (72718)
  • macOS: Preferences... menu item is named now Settings... when the IDE is ran on macOS Ventura. (72342)
  • Web: WebRadioGroup.SelectedIndex can now be set directly in the IDE Inspector. (66004)
  • Web: Fixed an issue causing WebImageViewer and WebLocation subclasses to display a generic icon in the IDE Navigator. (73243)
  • Web: Fixed how the IDE was drawing the preview on some field based controls, when being disabled. (73191)
  • Web: Fixed a Web SDK issue causing the LibraryIcon special constant to be ignored. (70763)
  • Web: WebListBox has an inline editor now in the IDE that can be used pressing on the edit pencil. (68946)
  • Web: Fixed a WebImageViewer issue not showing the preview, when loading the project. (72930)
  • Web: Fixed an IDE issue, it wasn't displaying the icon for bootstrap.min.css file type. (72776)
  • Web: Fixed an IDE bug that was overwriting the Width and Height on WebContainers, when its super was being changed. (69564)
  • Web: Fixed a Web SDK issue causing DrawControlInLayoutEditor to take any line starting with REM as a comment. (72004)
  • 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)
  • iOS: Added URL field to the Inspector Panel for MobileImageViewer on iOS. (68249)
  • iOS: Changed MobileTextArea.AddText value parameter to Text on iOS to match Android. (73037)
  • iOS: Added Reduced option to MobileLocation.Accuracies enum so, when selected, the use of device battery is highly preserved reducing the frequency of location change updates. (73161)
  • iOS: Added AllowBackgroundUpdates property to MobileLocation on iOS. (65205)
  • iOS: Added PDFViewer control for iOS. (72098)
  • iOS: Added Format property to Desktop/MobileChart. (72738)
  • iOS: Added Minimum iOS Version entry in the Inspector Panel for iOS Projects. (72651)
  • iOS: MobilePopupMessage.Show has been overloaded on iOS so it accepts now a double as the second parameter to set the amount of seconds the message is going to be displayed. (65917)
  • iOS: Added Backdrop As Picture property to DesktopChart and MobileChart. (72344)
  • iOS: Added DrawTextBlock and TextBlockSize methods to the Graphic class on iOS. (68504)
  • iOS: iOSMobileTable supports now Left (Leading) iOSMobileTableRowAction. Also added BackgroundColor and Image properties to iOSMobileTableRowAction. (68283)
  • iOS: Added KeyDown Event Handler to MobileCanvas on iOS. Fixed Enabled property bug for MobileCanvas on iOS. (72013)
  • iOS: Added Press method to MobileButton on iOS. (68808)
  • iOS: Added KeyDown, KeyUp events to Screen and KeyDown event to TextField/TextArea on iOS. (71935)
  • Web: Added WebComboBox.SelectedRowValue. (73051)
  • Web: Added Dark Mode support for Web projects, using Bootstrap 5.3.0. (68505)
  • Web: Added WebListBox.LastColumnIndex property, to match DesktopListBox. (72994)
  • Web: WebChart's Chart.js dependency has been upgraded to v4.2.1. (72346)
  • Web: Added WebListBox.ColumnTagAt, for setting Variant tags on columns, like in Desktop projects. (72305)
  • 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 lines 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)
  • iOS: Fix: iOSFont now returns the expected font even when the received name in the Constructor is one of the reserved/illegal system font names (those starting with a dot), instead of letting the underlying iOS framework use the fallback Times font. (73359)
  • iOS: Fixed a bug in iOSMobileTable.SelectRow when it is called from the iOSMobileTable.Opening event on iOS projects. (73280)
  • iOS: Calling NotificationCenter.RequestDeliveredNotifications on iOS was firing the PendingNotifications event instead of DeliveredNotifications event. (73195)
  • iOS: To match current versions of Xcode, default height of MobileTextField on iOS is now 34pt. The Height constraint can now also be modified, which is often necessary for accessibility and other reasons. (73148)
  • iOS: Now iOSMobileTable returns the expected values for Section and Row when there is no selection in the table (0,-1). (65266)
  • iOS: The Search field of a iOSMobileTable keeps the focus when using a Datasource and the scroll position changes. (73083)
  • iOS: GraphicsPath.AddArc() parameters are now consistent across all platforms. (71997)
  • iOS: Now Bars are drawn with some gap between them when DesktopChart is set to Line / Bar / Stacked. (72793)
  • iOS: Fix for VersionData when it is used on iOS with security update installed and the language of the app is set to any with non-roman character set based one (for example, Japanese). (72678)
  • iOS: Fixed modal screen hidding the status bar on iOS. (72442)
  • iOS: Fixed Picture.SystemImage working with fallback picture on iOS. (67202)
  • iOS: Fixed MobilePopupMessage not being displayed when called from modal MobileScreen on iOS. (64365)
  • iOS: Changed LaunchScreen super from deprecated iOSView to MobileScreen on iOS projects. (66190)
  • iOS: Now MobilePicturePicker returns the Picture with the proper orientation on iOS. (71454)
  • iOS: Fixed setting the TintColor on MobileSwitch. (66092)
  • Linux: MySQLCommunityServer no longer fails to load with a Runtime Error on startup for Linux ARM64 builds. (72549)
  • Linux: Setting a breakpoint in code that is never called/used no longer triggers a failed assertion. This assertion was mostly seen when debugging Linux builds, but could have appeared on macOS and Windows too. (73127)
  • Linux: Updating the caption of a MenuItem (especially from a separator to a regular menu caption) no longer causes the app to crash on closing the MenuItem. (73129)
  • Linux: PostgreSQLDatabase: updated the client libraries used for Linux 32-bit x86 builds to support the newer authentication methods. (73089)
  • Linux: URLConnection no longer crashes with a segmentation fault when passed an empty URL, it now raises an exception. (73072)
  • Linux: Linux: closing a FolderItemDialog no longer crashes on some distros of Linux, like openSUSE. (68952)
  • macOS: Fixed Color.FrameColor on macOS so it returns the expected color value. (69696)
  • macOS: Console: Graphics.Rotate now works correctly on macOS and Linux ARM64. (73328)
  • macOS: Fixed DesktopTextField losing the entered text when Enabled is set to False and the control instance still has the focus. (73323)
  • macOS: Fixed a bug in DesktopDateTimePicker on macOS when setting the Enabled property through its parent class (DesktopUIControl). (73183)
  • macOS: App no longer crashes when accessing the RuntimeException.Stack in certain situations, especially when sandboxed on Intel macOS Ventura. (72314)
  • macOS: macOS builds no longer include an invalid rpath, which some apps have flagged as being incorrect by using an additional path separator. (64896)
  • macOS: AppleEventDescList.ObjectSpecifierItem now returns an AppleEventObjectSpecifier instead of an AppleEventRecord (71808)
  • macOS: ODBCDatabase: fixed a connection issue on macOS Ventura 13.3 (72450)
  • macOS: Fixed DesktopProgressBar.DrawInto clipping both sides when used on macOS. (72653)
  • macOS: Fixed resulting drawing of DesktopImageViewer.DrawInto on macOS. (72652)
  • macOS: Fixed an OutOfBounds exception on TextArea control (macOS) when setting the text color for a long text containing a high number of end of lines. (72062)
  • macOS: Fix: GraphicsPath is not offseted when the target Graphic context is from a Printer on macOS. (60032)
  • macOS: Fixed a bug setting a long text to TextArea.StyledText.Text property on macOS. (71476)
  • macOS: Now the cursor defaults to StandardPointer when App.MouseCursor is set to Nil on macOS. (71940)
  • Web: WebDialog will be centered now on smaller screens. (69767)
  • Web: WebToolbar won't show the hamburger menu anymore, if there are no items to show inside. (71612)
  • Web: WebMessageDialog.CancelButton will be rendered with a background, at runtime. (72982)
  • Web: WebLabel won't raise the Pressed event anymore if isn't Enabled. (66933)
  • Web: WebFileUploader and WebCombobox will apply now the Style property to its elements. (64600)
  • Web: Fixed a WebButton issue causing its WebMenuItem to be smaller than needed, overflowing its contents. (64517)
  • Web: WebSlider.ValueChanged will also be fired now, when the value has changed by code. (62399)
  • Web: WebDatePicker.DateChanged event will include a selectedDate parameter now, like in Desktop projects. (73157)
  • Web: Fixed a WebImageViewer issue that was preventing the user to remove the image. Setting the image to Nil will work now. (73138)
  • Web: Fixed an issue causing large files to not be fully sent, when using WebResponse.File in HandleURL. (71350)
  • Web: Fixed an issue causing ImageViewer to capture pointer events, making impossible to scroll on mobile devices. (69753)
  • Web: WebMoviePlayer HasController, AllowAutoPlay and AllowLooping can now be updated by code. (71883)
  • Web: Fixed a WebToolbarItem issue causing the Badge property to not be shown without an icon. (70051)
  • Web: WebSearchField can be cleared programmatically now. (72099)
  • Web: Deprecated WebImageViewer.Picture, you should use WebImageViewer.Image instead. (72893)
  • Web: Fixed UnsupportedOperationException being raised when calling PDFGraphics.TextHeight(value As String, WrapWidth As Double) from a Web project. (72491)
  • Web: It is possible now to tab into WebBreadcrumb controls. (59947)
  • Web: WebPagination and WebSegmented button will be accesible now using tab key. (59949)
  • Web: WebChart will honor ChartLinearDataset.Fill property for bar charts. It didn't have effect in the past. (71416)
  • Web: Fixed a WebChart issue causing Pie or Doughnut charts to not show the value in tooltip. (71435)
  • Web: Fixed WebChart issues while resizing the control in the browser, when locking was enabled. (71125)
  • Web: Graphics: ClipToPath, DrawPath and FillPath are not currently supported on Console/Web so we now raise an UnsupportedOperationException when used in Console/Web apps. (70965)
  • Web: Fixed a WebListBox issue causing the header column size to not be in sync with the content, when the scroll bar was present. (70887)
  • Web: Fixed a WebListBox issue causing the Enabled property to not be applied. (69989)
  • Web: Fixed a WebListBox issue when selecting multiple rows by code, causing the selection in the backend to not be in sync with the browser. (70770)
  • Web: Added some missing exceptions, when the WebDataSource methods aren't returning any data. They will appear in UnhandledException events. (65202)
  • Web: Fixed a WebListBox issue causing its contents to be shown above other controls. (64395)
  • Web: Fixed an issue causing some dropdown menus to appear below WebToolbar controls. (63894)
  • Web: WebListBox InitialValue won't override ColumnCount property anymore, to match DesktopListBox behavior. (66576)
  • Web: WebSegmentedButton, or individual segments, won't trigger the Pressed event anymore when they are not enabled. (72085)
  • Web: Web SDK control instances used for initializing Sessions will be cleaned up, as soon as they are not needed anymore. (71080)
  • Web: Changing WebListBox height, or its parent height, will be applied on the browser. (71986)
  • Web: Web developer tools won't show a Source map error anymore on the inspector console. (69646)
  • Web: Fixed a WebChart issue causing some bars to not be shown when WebChart.Type was set to Line mode. (71914)
  • 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 29, 2023)

  • Bugs fixed: 85
  • Features added: 19
  • Documentation changes: 34
  • Examples changed: 3

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

  • Bug fixes

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

  • 7 bugs were fixed.

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

  • 13 bugs were fixed, including support for macOS Ventura.

New in Xojo 2022 Release 1 (Apr 6, 2022)

  • Notable changes include:
  • All-new documentation window that includes all documentation.
  • iOS on-device debugging
  • The report editor now supports HiDPI
  • Code Assistants allow you to add your own code parsing features to the Code Editor
  • Lots of other improvements and bug fixes.
  • Bug fixes:
  • 118 bugs were fixed.

New in Xojo 2021 Release 3.1 (Dec 14, 2021)

  • Bug Fixes:
  • Crashes & Assertions » IDE Unhandled Exception 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.
  • Framework » Desktop A DesktopCanvas, that’s embedded on a Container, now fires the DoublePressed event correctly.
  • Framework » Desktop DesktopListBox now fires CellFocusReceived and CellFocusLost events.
  • Framework » Desktop Built apps with Workers no longer raise an IllegalCastException on Windows/Linux when running projects that use DesktopApplication.
  • Framework » Desktop The last parameter for DesktopUIControl.Refresh with x,y,width,height,immediately is now optional as documented.
  • Framework » Web Weblistbox sorts properly again.
  • Framework » Web Web applications should no longer disconnect after 140 seconds.
  • Framework » Web Fix an issue with our EventSource implementation which caused the app to disconnect prematurely.
  • Framework » Web WebImageViewer pressed event fires again when placed on a TabPanel or PagePanel.
  • Framework » Web Fixed a bug in the retrieval of data from a Weblistbox datasource.
  • Framework » Web WebImageViewer again fires its Pressed event on touch enabled devices that also accept mouse input.
  • Framework » Windows HTMLViewer.ExecuteJavaScriptSync can now return booleans, integers and doubles correctly, instead of returning back Nil.
  • Framework » macOS DesktopPopupMenu.SelectionChanged event no longer fires needlessly when the SelectedRowIndex doesn't change.
  • IDE » Layout Editor Locked position badge no longer bleeds through TabPanels/PagePanels.
  • IDE » Layout Editor Assigning a ColorGroup to plugin controls (DesktopBevelButton for example) now reflects the change in the layout editor.
  • IDE » Layout Editor IDE now picks up initial ColorGroup property values that are defined for plugin controls.
  • IDE » Menu Editor 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.
  • IDE » Miscellaneous Fixed Desktop control conversion of Color properties (most likely seen when loading up XML projects).
  • IDE » Rendering Running iOS projects on M1 Macs with Extensions Visible now works.
  • Bug Fixes:
  • Docs and Examples:
  • Examples PDF-TOC-Example project version fixed.

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 (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.1 (Apr 23, 2021)

  • Bug Fixes:
  • Build Worker Helper console apps can be built as Universal.
  • Array dimension bounds are no longer reset to -1 for multi-dimensional arrays if the first bounds was setup as -1.
  • JSONItem.Child, ChildAt, Value and ValueAt return the contained object instead of a copy again.
  • 6JSONItem.ValueAt no longer raises an exception when replacing one value with another.
  • Fixed an issue which caused Toolbar item updates to be slower than they needed to be, which also affects IDE performance.
  • macOS: Graphics.ShadowBrush, in combination with an assigned GraphicsBrush, no longer ignores the PenSize.
  • CalendarControl doesn't send the DateChanged event on Windows every time the user clicks the months arrows and GraphicalDisplay is set.
  • Windows doesn't "beep" anymore when the SearchField control has the focus and the user hits the Enter key.
  • Fixed a bug when the SearchField control loses the focus on macOS and the instance is released (for example, the containing control/window is closed).
  • Windows/Linux: Object2D rotation now rotates around the correct center-point again.
  • When compiling with Normalize Control Sizes enabled, the controls are now correctly resized to the height specified instead of resized to their natural height.
  • Fixed a memory leak in the web app HTTP request engine.
  • WebDatePicker will now automatically strip the locale from a session locale if it doesn’t have a specific localization configuration.
  • Fixed a WebFileUploader buffer overrun issue which caused files smaller than 10MB to have extra data tacked onto the end of the file.
  • Now using a more accurate method for detecting touch vs mouse events to avoid doubled events on mobile devices while maintaining event behavior on Google Chrome.
  • iOSGraphics Width/Height no longer reports negative values.
  • Windows with a Toolbar on macOS Big Sur no longer have their contents truncated.
  • Graphics: Drawing Text with Outline enabled on a printer Graphics context now works properly.
  • The default event handler for the SearchField control is TextChanged.
  • Back and Forward toolbar buttons work again.
  • Lingua now correctly redraws the UI when switching between light/dark modes when it is open.
  • Remote Debugger Console: fixed auto launching console apps on macOS.
  • Changes:
  • Linkers on macOS are now Universal.
  • TextChanged is now the by default Event Handler for SearchField.
  • Debugger Stubs, Lingua and Image Maker apps are now macOS Universal.
  • The Desktop Remote Debugger Stub on macOS is now a Universal Binary.
  • New Items:
  • Build iOS apps now run natively as arm64 builds in the Simulator on M1 Macs.
  • Added DesktopColorPicker control which allows use of the asynchronous Color Picker control on macOS and continues to use synchronous picker on Windows & Linux.
  • Added LocalizedStringName Lingua scripting command.
  • Added Clipboard Lingua scripting command.
  • Docs and Examples:
  • Updated all Desktop/Web examples so that macOS Architecture setting is Universal.

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 (Dec 15, 2020)

  • Bug Fixes:
  • 62783 Build * 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.
  • 62805 Build 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.
  • 62910 Build 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).
  • 62940 Build Removed the macOS photos entitlement from iOS projects.
  • 63060 Compiler Resizing an Array of Structures no longer crashes for macOS ARM builds.
  • 62824 Crashes & Assertions » Failed Assertion Linux: Color.SelectedFromDialog no longer raises a failed assertion on if the prompt supplied is an empty string.
  • 62847 Crashes & Assertions » IDE Unhandled Exception Fixed a NilObjectException that could occur when attempting to identify build errors in the Worker Console project.
  • 62895 Crashes & Assertions » IDE Unhandled Exception Display a rendering error if the MobileApplication.DefaultiPhoneLayout or DefaultiPadLayout is blank (instead of causing an IDE NilObjectException).
  • 63057 Crashes & Assertions » IDE Unhandled Exception Changing the super of a control to a control type that is not compatible with the current project type no longer crashes the IDE.
  • 62807 Database Plugins » ODBC ODBCDatabase no longer fails to connect (with Actual Technologies ODBC drivers for example).
  • 59705 Framework » All Ptr method offsets are now capable of addressing values larger than Int32 for 64-bit builds, instead of crashing.
  • 62889 Framework » All Fixed an iOS Introspection issue to allow changing a property value, invoking a Constructor with parameters and invoking a method with parameters.
  • 62894 Framework » All ParseJSON no longer raises a Failed Assertion when passed an empty string.
  • 62960 Framework » All Fixed TextHeight / TextAscent returning wrong values in PDFGraphics when a new Font is set.
  • 62973 Framework » All ReplaceB/String.ReplaceBytes no longer raises failed assertion when the replacement string is an empty string.
  • 62881 Framework » Console Now the DateTimePicker control uses the standard border width under Windows.
  • 62756 Framework » Desktop DateTimePicker control Height changed to 22 points on Windows.
  • 62825 Framework » Desktop 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.
  • 62826 Framework » Desktop Now the DateTimePicker control honors the Top value when displayed in Text mode on macOS
  • 62880 Framework » Desktop Now the DateSelected property returns a valid/updated DateTime object on Windows.
  • 62885 Framework » Desktop TabPanel.RemovePanelAt no longer throws an OutOfBoundsException if the Tab to be removed actually exists.
  • 62928 Framework » Desktop Do not call Worker Error event when Worker Helper quits normally.
  • 62937 Framework » Desktop 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.
  • 62849 Framework » Linux Listbox border is no longer cut-off on the right/bottom edges.
  • 62897 Framework » Linux No longer leaks objects/memory when Gtk related objects (like Controls, Windows, MenuItems, etc.) are destructed with Normalized Control Sizes enabled.
  • 61772 Framework » Web WebDatePicker week start day is now Sunday for the en-US locale.
  • 62996 Framework » Web Fixed an issue which caused debugged web apps to stop in the debugger multiple times during startup.
  • 63022 Framework » Web WebListbox.RemoveRowAt now throws an OutOfBoundsException if the row parameter is after the last row in the list.
  • 62671 Framework » iOS » Mobile Adding non-UI controls to iOS project no longer crashes on run.
  • 62851 Framework » iOS » Mobile Global.Speak is now System.Speak.
  • 62875 Framework » iOS » Mobile UDPSocket usage no longer causes app to terminate after unlocking phone.
  • 62896 Framework » iOS » Mobile Runtime module methods (like ObjectCount, MemoryUsed, etc.) are now accessible for iOS.
  • 62908 Framework » iOS » Mobile Graphics.Font now returns a Font object instead of iOSFont.
  • 62936 Framework » iOS » Mobile Graphics FontSize, Bold and Italic have been removed. Please use the equivalent functionality found in the Font class instead.
  • 63051 Framework » iOS » Mobile Fixed an issue where MobileScreen.Closing was firing incorrectly for non-modal views.
  • 62841 Framework » macOS Brush/gradient offsets are now control relative.
  • 62947 IDE » Auto Complete Fix a regression which caused autocomplete to omit project items after IsA.
  • 62948 IDE » Auto Complete 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.
  • 62822 IDE » Graphics Enumeration and Attribute editor add/remove buttons now transition properly between OS light and dark modes.
  • 62903 IDE » Library WebSDK controls now use the correct icon in the library.
  • 62878 IDE » Miscellaneous macOS Universal builds no longer fails when the App name is a constant.
  • 62678 RBScript XojoScript no longer crashes due to incorrectly generating AVX instruction code for CPUs that don’t support it.
  • Changes:
  • 63001 Framework » Desktop 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.
  • 62901 Framework » Windows 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.
  • 62605 IDE » Debugger A link to view all Controls embedded on a MobileScreen is now available when debugging the MobileScreen object.
  • 62620 IDE » Debugger Global variables list now supports viewing all MobileScreens when debugging iOS projects.
  • New Items:
  • 62763 IDE » Build Automation CopyFilesSteps can now be specified by architecture.
  • 62773 IDE » Build Automation - 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".
  • 62919 IDE » Miscellaneous 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:
  • 62871 Documentation » Miscellaneous Added missing Render method from the XojoVisualControl documentation section of the WebSDK.
  • 62791 Examples Updated GradientExample to use Graphics.Brush and ShadowBrush properties along with ShadowBrush, LinearGradientBrush and RadialGradientBrush classes.
  • 62811 Examples Fixed compile errors in iOS ShortcutExample, iOS Tabs, Notification Categories and Simple Notification example projects.
  • 62846 Language Reference » Documentation DataSourceNames and DriverNames methods have been deprecated. DataSources and Drivers methods have been added.

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

  • 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:
  • SearchField control
  • DateTimePicker control
  • ColorGroups
  • Worker:
  • Take advantage of your multiple CPU cores with the Worker class.
  • 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.2 (Oct 7, 2020)

  • Bug Fixes:
  • Framework » Web: The web framework now runs correctly on systems where the primary language uses double-byte characters.

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.
  • 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.
  • 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.
  • 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 2020 Release 1 (Sep 29, 2020)

  • Xojo 2020 Release 1 is now available with over 320 changes and improvements.
  • Major changes include:
  • Draw custom ListBox headers with ListBox.HeaderBackgroundPaint and ListBox.HeaderContentPaint
  • Large text projects now open more quickly
  • Web 2.0:
  • All-new web framework with new controls and improved performance
  • PDF generation
  • XojoScript improvements:
  • API 2.0 methods
  • Save/Load compiled scripts
  • Release Notes:
  • Bug Fixes:
  • 48102 Compiler Incorrect expressions in For Each statements now raise a compile error instead of a failed assertion.
  • 58137 Compiler Building 64-bit Windows apps in the Linux IDE no longer raises an assertion, but should now work.
  • 59155 Compiler Fixed a compile error that could occur when adding a SerialConnection to a window and implementing the LineStateChanged event.
  • 59266 Compiler Analyzing a project no longer slows down subsequent debug runs or builds.
  • 59371 Compiler Var can now be used in XojoScript class definitions when defining properties.
  • 59598 Compiler Casting Nil to an Object no longer crashes.
  • 59381 Crashes & Assertions » Crash Incorrect expressions used in For Each statements now raise an error instead of crashing for iOS builds.
  • 58894 Crashes & Assertions » Failed Assertion Windows: Placard/UpDownArrows controls no longer raises a failed assertion if its width/height are 0 (or negative).
  • 59307 Crashes & Assertions » Failed Assertion Passing an invalid floating point number (i.e. a value like NaN or Inf) to Graphics.DrawString, TextSize, or StringHeight no longer raises a failed assertion, or crashes/hang.
  • 58696 Crashes & Assertions » IDE Unhandled Exception IDE no longer crashes if controls are sized too small or too large in the layout editor.
  • 58699 Crashes & Assertions » IDE Unhandled Exception BuildDateTime now uses the same Timezone at Buildtime and Runtime.
  • 58784 Crashes & Assertions » IDE Unhandled Exception Windows: Certain TimeZones could not be constructed by name (like Turks and Caicos), this is now fixed with the update to a newer version of ICU 65.1.
  • 59449 Crashes & Assertions » IDE Unhandled Exception The IDE no longer crashes when dragging Library items to the debugger's Navigator.
  • 11597 Database Plugins PostgreSQLDatabase: now correctly takes the database schema into account when updating records from a RowSet.
  • 41633 Database Plugins PostgreSQLDatabase no longer leaves orphaned prepared statements on the server.
  • 59390 Database Plugins » MySQL Checking DatabaseColumn.Value for Nil now works correctly when these originate from DatabaseRow.
  • 58567 Database Plugins » PostgreSQL Error messages when failing to connect are now correctly encoded as UTF8 strings.
  • 58909 Database Plugins » PostgreSQL Any errors that occurred before performing SelectSQL or ExecuteSQL calls are now cleared properly.
  • 59604 Database Plugins » SQLite SQLitePreparedStatement.ExecuteSQL now properly raises an exception on error.
  • 59659 Debugger CGFloat values now show up in the debugger.
  • 26147 Framework » All Graphics.FontUnit now works for Console/Web apps.
  • 38272 Framework » All Console Graphics: Fixed incorrect StringWidth and StringHeight calculations.
  • 43527 Framework » All Console graphics: calling DrawText right after DrawPicture no longer incorrectly aliases the text.
  • 58604 Framework » All Added IteratorException that is raised when an error or a change occurs in the data being iterated over.
  • 58845 Framework » All Global Val is no longer shown as deprecated in docs. Global Titlecase is now shown as deprecated when you Analyze Project.
  • 58934 Framework » All DatabaseColumn.Value now returns a Variant of the correct type instead of always returning a String, unless of course the value is actually String.
  • 58940 Framework » All GenerateJSON on a Variant Array no longer only creates a JSON array of string values, unless of course the Variant Array only contains strings.
  • 58956 Framework » All When DateTime.FromString is passed an empty Date string it now raises an InvalidArgumentException instead of crashing (on Windows).
  • 59041 Framework » All Fixed some incorrect Window.Types enum values, i.e. Window.Types.Floating should be 3 instead of 1.
  • 59068 Framework » All Added AddAllRows function that takes a ParamArray for PopupMenu/ComboBox.
  • 59092 Framework » All IsNumeric is now compatible with incoming Text values.
  • 59100 Framework » All Trying to change the Modification/Creation DateTime of a FolderItem when that FolderItem is busy/open now properly throws an IOException.
  • 59105 Framework » All String.ToDouble now takes into account the current localization when parsing the string.
  • 59114 Framework » All Creating a new DateTime from a DateTime returned by DatabaseColumn.DateTimeValue no longer throws a NilObjectException.
  • 59125 Framework » All SerialConnection.Connect now raises an IOException on error. If a Device is not assigned when connecting the error code returned is SerialDeviceNotAssigned.
  • 59163 Framework » All Updated RGBSurface.Transform page to have correct parameter types.
  • 59174 Framework » All Setting the HorizontalScrollPosition of a TextField no longer causes a StackOverflowException.
  • 59185 Framework » All Assigning a Picture to a DatabaseRecord.PictureColumn or DatabaseField.PictureValue no longer crashes.
  • 59232 Framework » All Assigning a Picture to DatabaseField.PictureValue no longer crashes.
  • 59284 Framework » All Closing a MenuItem that was just clicked on no longer crashes. When this MenuItem is clicked on and then closed from an EnableMenuItems event an UnsupportedOperationException is raised.
  • 59467 Framework » All Added Crypto.HashAlgorithms.SHA1 enum value (was incorrectly named Crypto.HashAlgorithms.SHA before).
  • 59523 Framework » All Point doc page updated to remove mention of operators.
  • 59589 Framework » All PrinterSetup.Landscape property should not be deprecated and IsLandscape property should not have been available (and is now marked as deprecated).
  • 59595 Framework » All Added missing TabPanel.AddPanelAt and RemovePanelAt methods, deprecated Insert and Remove. Overloaded AddPanel for compatibility.
  • 59605 Framework » All FolderItem.IsFolder no longer raises an IOException if the folder doesn't exist, it'll return False instead.
  • 59650 Framework » All Color.CMY now matches output of deprecated CMY when an alpha is specified.
  • 59653 Framework » All Added POP3SecureSocket.RemoveMessageAt() to replace DeleteMessage(). Deprecated incorrectly added RequestMessageAt().
  • 59753 Framework » All RectControl.RefreshRect() is deprecated with a Refresh() overload as its replacement.
  • 59764 Framework » All Removed a few extraneous properties on TextField/TextArea that were not intended to be usable (i.e. IsBold, IsItalic, etc.)
  • 59781 Framework » All FolderItem: getting/setting the CreationDate/CreationDateTime and ModificationDate/ModificationDateTime now correctly offsets any daylight savings time.
  • 59815 Framework » All XojoScript: Mid String extension function no longer acts like MidB, but now correctly parses unicode points.
  • 59881 Framework » All BevelButton, ImageWell, Placard, and PopupArrow’s MouseUp coordinates now correctly report negative values.
  • 60056 Framework » All No longer crashes when assigning a Nil WString to a String.
  • 60063 Framework » All Removed Timer.Tolerance property as it was not documented and did not do anything.
  • 60202 Framework » All Analyze project can now report that StrComp is deprecated with a replacement of String.Compare.
  • 60237 Framework » All Cleaned up POP3SecureSocket events by removing unused ServerReplied, LoginSucceeded, RollbackSucceeded.
  • 60288 Framework » All Added SpecialFolder.Caches property.
  • 60323 Framework » All Updated StyledText:
  • Deprecated AddStyleRunAt(Run as StyleRun,Index as Integer) in favor of
  • AddStyleRunAt(index as Integer, run as StyleRun)
  • 60358 Framework » All MenuItem: LastRowIndex is now a Property instead of a Method.
  • 60527 Framework » All When iterating through a RowSet using For Each Loop, we now reset the RowSet to the beginning before iterating.
  • 60767 Framework » All Ptr to String conversion no longer truncates the Ptr to a 32-bit value for 64-bit builds.
  • 60271 Framework » Desktop Window.Types.Sheet enum value has been corrected.
  • 60304 Framework » Desktop HTMLViewer.NewWindow event now expects an HTMLViewer as return value instead of just a plain Object.
  • 55508 Framework » Linux MouseDrag events now fire correctly when using a touchscreen.
  • 57685 Framework » Linux Setting the BinaryStream.BytePosition now flushes the buffer. This fixes an occasional file I/O misread on certain platforms.
  • 58254 Framework » Linux Changing the Label TextColor no longer leaks memory.
  • 58917 Framework » Linux A raised RuntimeException no longer causes a segmentation fault on Raspberry Pi (mainly an issue on Jessie & Stretch).
  • 59346 Framework » Linux Linux IDE: now uses the preferred control heights (of the OS/theme) when new controls are added to the layout editor.
  • 59385 Framework » Linux Updating the font properties on a Control (like FontSize on a Label) no longer leaks memory.
  • 60293 Framework » Linux 64-bit and ARM Linux apps now correctly display their app icons in the desktop task/launch bar instead of being blank/generic looking.
  • 16273 Framework » Web Web controls are now consistently disabled when the Enabled property is False.
  • 17345 Framework » Web Enabling and disabling web controls no longer displays them inconsistently.
  • 21791 Framework » Web Modal WebDialogs no longer allow users to interact with controls in the background.
  • 28438 Framework » Web Modal WebDialogs no longer allow users to interact with controls in the background.
  • 34177 Framework » Web Web Controls are now responsible for disabling themselves at runtime so they'll always have a consistent appearance.
  • 34372 Framework » Web Disabling a WebContainer now correctly disables all contained controls.
  • 35159 Framework » Web Controls on containers that are disabled in the IDE are now correctly disabled when the container is first displayed in the browser.
  • 42152 Framework » Web WebDialogs no longer become translucent at odd times.
  • 49635 Framework » Web Web tooltips (helptags) can now be set in code.
  • 51140 Framework » Web Tooltips which contain quotes now render correctly when set at runtime.
  • 54064 Framework » Web WebButton now can now be triggered with the spacebar when it has focus.
  • 54115 Framework » Web WebFileUploader 2.0 now works with iOS devices.
  • 58058 Framework » Web Localized constants work again in Web projects. Added a fallback protocol so that if the supplied language code contains a hyphen and the Xojo framework doesn't have an exact match, we try again with just the first segment.
  • 58537 Framework » Web WebFileUploader's Add button is now disabled when an upload is in progress.
  • 59914 Framework » Web Exceptions in WebUploadedFile.Save are no longer intercepted so they can be handled by user code.
  • 20796 Framework » Windows FolderItem.ModifcationDate/CreationDate now correctly offset the daylight savings time.
  • 34561 Framework » Windows Setting the UserAgent for WebKit based HTMLViewer now works, although this needs to be done in the Constructor of your HTMLViewer subclass for it to take affect.
  • 50476 Framework » Windows System.MouseX/Y now reports the virtualized X, Y coordinates which matches macOS behavior when dealing with multiple monitors of different DPI scale factors.
  • 54398 Framework » Windows We now throw an exception instead of raising failed assertions when something goes wrong with drawing pictures. The likely scenarios are 1. Out of memory or 2. The Picture is too big to be drawn (depending on the Graphics target).
  • 58605 Framework » Windows Drawing an alpha Picture on to itself now works instead of raising a failed assertion.
  • 58611 Framework » Windows When there's not enough memory to create a Picture we now raise an OutOfMemoryException instead of crashing.
  • 58674 Framework » Windows Closing the window with an active editable cell on a Listbox no longer crashes.
  • 58683 Framework » Windows MenuItem.Popup now accounts for multiple monitors with multiple DPI scale factors when popping up the menu.
  • 58697 Framework » Windows URLConnection/Xojo.Net.HTTPSocket response header value is no longer incorrectly truncated if there exists a colon in the value itself.
  • 58819 Framework » Windows BinaryStream.Read no longer crashes when reading > 3GB of data for 64-bit Windows builds.
  • 58949 Framework » Windows Native HTMLViewer no longer hangs the app in an infinite exception loop if the window doesn't have a menubar.
  • 59270 Framework » Windows If MoviePlayer.HasController is set we now show the full controller set (this really only affects Windows since no other platform actively supported the mini set).
  • 59732 Framework » Windows Invalidating other controls in a Paint related event no longer prevents the other controls from invalidating/painting.
  • 59750 Framework » Windows When loading animated gif files we no longer return all the image parts. For cross platform compatibility we now return the first image in the set.
  • 60487 Framework » Windows Debugger now consistently breaks correctly to the source line that triggered an Exception for 64-bit Windows builds. Depending on where the Exception was raised this had not been consistent, and often times would break in the debugger but show no code.
  • 60780 Framework » Windows Hierarchical Listbox: selection highlight no longer exceeds the cell bounds . This could happen when the cell text exceeded the amount of space allocated for that cell.
  • 58924 Framework » iOS » Mobile iOSCustomTableCell controls now responds correctly to dark mode changes.
  • 59113 Framework » iOS » Mobile iOSTextField default text color is black again on iOS versions lower than 13.
  • 59542 Framework » iOS » Mobile Fixed a place where we'd used the wrong case for the library of an iOS declare which caused it to fail on a case-sensitive file system.
  • 60853 Framework » iOS » Mobile Setting iOSSegmentedControl.Value (within range) after removing/adding segments no longer raises an OutOfBoundsException.
  • 31888 Framework » macOS Tooltips on controls embedded in a parent container and added within a TabPanel or PagePanel now shows correctly when switching between tabs/pages.
  • 36919 Framework » macOS Listbox: Header height now dynamically adjusts to fit various font sizes. This was already the case on Windows/Linux.
  • 52659 Framework » macOS SerialDevice.WithName now returns a proper device that SerialConnection can connect to.
  • 54439 Framework » macOS FolderItem: optimized child by index APIs to match performance before the switch to using the newer NSURL APIs.
  • 58903 Framework » macOS Mac IDE: Loading internal plugins from a unicode path now works again.
  • 59275 Framework » macOS FolderItem memory is now cleaned up immediately after FolderItem.Parent or FolderItem.Name is called instead of being released after the main loop iteration runs.
  • 59334 Framework » macOS GraphicsPath drawing no longer incorrectly offset on HiDPI Retina displays.
  • 59660 Framework » macOS Getting the FolderItem.ModificationDate (or ModificationDateTime) now immediately releases memory instead of waiting on the next event loop to do so.
  • 60575 Framework » macOS DrawInto no longer crashes when drawing to a clipped Graphics.
  • 60591 Framework » macOS Graphics: setting the FontUnit to Pixels, Inches or Millimeters now works correctly when drawing text on HiDPI displays.
  • 61025 Framework » macOS Our macOS framework no longer relies on the non-public API getsectiondata.
  • 59723 IDE New project windows no longer show as all black when they first open on macOS.
  • 58765 IDE » Auto Complete The word Selector now autocompletes when typing it in a declare.
  • 58993 IDE » Auto Complete Autocomplete now matches "Allow" prefix instead of "Allows".
  • 58994 IDE » Auto Complete Added "Is" to autocomplete prefix list.
  • 59235 IDE » Code Editor When using super-return to expand an inline if, the keywords for then, else, end if now match the case of the initial if (or all use standardize format if the "use standardize format" at end of line preference is enabled).
  • 59326 IDE » Code Editor The code editor no longer jumps back to the last edited line if you scroll and then click & drag to make a new selection and have code reformatting turned on.
  • 59372 IDE » Code Editor The code editor no longer suggests Super.Destructor when adding a Destructor method to the subclass of a class which also has a Destructor. This change was made because the framework calls both class and subclass Destructors automatically and calling it in user code actually causes it to fire twice.
  • 48119 IDE » Debugger Viewing Text types that contain a lot of content no longer hangs the IDE.
  • 56047 IDE » Debugger Hex viewer no longer appears blurry at HiDPI.
  • 58665 IDE » Debugger DatabaseRow contents can now be viewed in the debugger.
  • 59438 IDE » Debugger Debugging objects, whose classes include Hidden attributes, no longer crashes.
  • 60057 IDE » Debugger Numeric conversions, i.e. FromBinary, FromHex, FromOctal, FromString and ToString no longer raise Xojo.Core exceptions. While these were being re-raised as InvalidArgumentExceptions, in the debugger you would still see both.
  • 58609 IDE » FileIO Images attached to ImageSets that have to be relocated when a project opens now save the location change properly in text projects.
  • 58999 IDE » FileIO Checkbox inconsistency between the VisualState as seen in the IDE vs. Runtime is fixed.
  • 60980 IDE » FileIO IDE now tries to load plist files as soon as they are dropped on the IDE so it can give feedback about files that are inaccessible or malformed in some way.
  • 59666 IDE » Icon Editor Fixed a bug where the IDE unexpectedly stalled when dragging a PDF file on the Icon Editor on macOS.
  • 60109 IDE » Icon Editor Labels on the icon editor are now the right color on macOS light and dark mode.
  • 58629 IDE » Inspector Method Edit Panel is now a little more intelligent about what methods are available to be overridden and the initially generated code.
  • 59388 IDE » Inspector Overriding a method in a subclass now uses the capitalization from the super's class method name.
  • 59397 IDE » Inspector Newly added Plugin controls now displays the Tooltip property in the Inspector instead of the deprecated HelpTag property.
  • 59926 IDE » Inspector TextArea: Multiline property now shows up in Inspector.
  • 60093 IDE » Inspector SegmentedButton: Tooltip and Tabstop property now appear in the Inspector.
  • 57533 IDE » Language Reference Linux IDE: local Language Reference links now work correctly instead of doing nothing.
  • 58624 IDE » Language Reference Search field on the Language Reference on macOS 10.14 and above now switches correctly between light and dark mode when the window isn't visible during the transition.
  • 53168 IDE » Layout Editor WebPopupMenu now renders properly in the layout editor on HiDPI screens.
  • 53903 IDE » Layout Editor WebTextArea resizes live in the layout editor again.
  • 57989 IDE » Layout Editor Linux IDE: Window Backdrop image is now properly drawn in the Layout Editor.
  • 60204 IDE » Layout Editor Adding a Right layout constraint for iOSSegmentedControl no longer hangs the IDE.
  • 58566 IDE » Miscellaneous Mac and iOS projects containing an invalid plist file will now show a warning in the Resolve Issues dialog when the project is first opened.
  • 58587 IDE » Miscellaneous Removed the ability to export classes that are already external.
  • 59055 IDE » Miscellaneous Added back the Help->QuickStart->Getting Started menu item.
  • 60393 IDE » Miscellaneous Cleanup from previous debug-runs is now a little faster.
  • 60498 IDE » Miscellaneous IDE now properly cleans up any plugin related resources that may have remained in the temporary folder.
  • 58662 IDE » Navigator When cancelling a Navigator Filter, always force it to refresh.
  • 58679 IDE » Navigator A Database project item is now usable for 64-bit builds instead of throwing NilObjectExceptions when accessed.
  • 59617 IDE » Navigator IDE no longer crashes if you try to undo the addition of a Module while the navigator has the Classes group name selected.
  • 60452 IDE » Navigator Navigator scrolling speed has been optimized.
  • 58564 IDE » Preferences Changed "Menu short cuts" in Preferences window to "Menu shortcuts".
  • 58759 IDE » Rendering In event handlers, the CurrentMethodName constant no longer replaces underscores (“_”) in control names with periods (“.”).
  • 58616 IDE » UI IDE no longer shows a warning about building 32-bit apps in an iOS project on macOS 10.15+.
  • 59272 Installer Debian installer now correctly looks for libwebkit2gtk dependencies.
  • 59225 Miscellaneous RoundRectangle: OvalWidth and OvalHeight property values are now correctly converted to their new replacement properties (i.e. CornerWidth and CornerHeight).
  • 45450 Plugin SDK Linux & macOS IDE can now load 64-bit shared library plugins that are found directly in the Plugins folder (i.e. without a packaged hierarchy).
  • 55210 Plugin SDK Updated EyeControl makefiles to be more current and appropriate for 64-bit builds.
  • 58512 Plugin SDK REALUnregisterBackgroundTask now properly cleans up memory instead of leaking ~16 bytes worth.
  • 161 Bug Fixes
  • Changes
  • 58701 Database Plugins » SQLite Updated SQLite plugin to 3.30.1.
  • 59490 Database Plugins » SQLite Updated SQLite Plugin to 3.31.1.
  • 58925 Framework » All Added new Crypto.HMAC function that takes Crypto.HashAlgorithms instead of the deprecated Crypto.Algorithm.
  • 59300 Framework » All Deprecated DrawPolygon, use DrawPath instead. Deprecated FillPolygon, use FillPath instead.
  • 59984 Framework » All HTMLViewer: changed our injected sendtoxojo Javascript function to sendToXojo to match Javascript naming convention.
  • 60594 Framework » All Listbox: the sort widget is now drawn as part of the HeaderContentPaint event instead of HeaderBackgroundPaint. i.e. returning true from HeaderBackgroundPaint no longer suppresses the sort widget from drawing.
  • 17353 Framework » Web When a WebToolbar is positioned at the bottom of a page, WebToolbarMenus now appear above the toolbar instead of below.
  • 17355 Framework » Web WebToolbarMenus now show a downward caret after the caption to indicate that they contain a menu.
  • 18949 Framework » Web CMD/CTRL-A now selects all rows in WebListBox.
  • 23571 Framework » Web WebMenuItem now works more like the desktop MenuItem class.
  • 25373 Framework » Web Add LastAddedRowIndex and LastRowIndex to WebPopupMenu.
  • 28615 Framework » Web WebSegmentedControl now supports keyboard navigation.
  • 31967 Framework » Web Contextual menus on web controls now appear at the cursor location.
  • 34369 Framework » Web Control enabled state is now properly retained when the parent control's enabled state is changed.
  • 46413 Framework » Web Radio Buttons can now be added to a WebRadioGroup at runtime.
  • 50961 Framework » Web Added WebStorage API for local storage.
  • 55191 Framework » Web Application.HandleURL now has a second object specifically for Response information.
  • 59447 Framework » Web Web framework has been updated to support Bootstrap 4.
  • 59560 Framework » Web Session History data is now stored on the server to allow data larger than 2048 bytes.
  • 59686 Framework » Web Added WebListbox cell types.
  • 59771 Framework » Web WebApplication now has a Sessions iterator.
  • 59864 Framework » Web Modernizr library no longer reorders the body and head tags.
  • 59993 Framework » Web WebUIControl Shown and Hidden events will now fire every time a visual control is shown or hidden.
  • 60144 Framework » Web App.DoEvents, App.SleepCurrentThread and App.YieldToNextThread will now raise an exception if called when a WebSession Context exists. This includes events due to user interactions on the browser. If your intention is to send changes to the browser, please use the UpdateBrowser method on the control you are trying to update to push changes immediately.
  • 60195 Framework » Web The WebTextField.Value property can now be set.
  • 60197 Framework » Web Session.Activated and Session.Deactivated now also fire when the browser window gains or loses focus, respectively. Added Visible as Boolean parameter to the Deactivated event so you can tell if the page is still visible to the user, depending on browser support (defaults to True).
  • 60333 Framework » Web Added WebSession.Pages iterator.
  • 60334 Framework » Web Added Controls iterator to WebContainer, WebDialog and WebPage.
  • 60342 Framework » Web WebRadioButton.ValueChanged event now includes the selected button.
  • 60432 Framework » Web WebContainerControl has been renamed back to WebContainer.
  • 60496 Framework » Web WebFileUploader will now return a 400 BAD REQUEST response to the browser if the uploaded data is corrupt in some way.
  • 61052 Framework » Web WebToolbarItem now has a Badge property.
  • 61059 Framework » Web Bootstrap icons are now directly available as WebPictures in the framework and can be used anywhere a WebPicture is used.
  • Usage: me.icon = WebPicture.BootstrapIcon("bar chart")
  • The list of available icons is at: https://icons.getbootstrap.com
  • 61140 Framework » Web WebListbox.CellAction event has been renamed to CustomCellAction.
  • 61278 Framework » Web WebListbox.Selected setter has been deferred to a later release.
  • 59373 IDE » Code Editor Change Code Reformat script optimization from Low to High.
  • 59597 IDE » FileTypes Editor FileType editor icon editor now renders disabled when the control is not enabled so it's more obvious that you can't add an icon.
  • 60339 IDE » Graphics The DefaultButton control now has white text instead of black when displayed in the Library and Navigator.
  • 58463 IDE » Miscellaneous Duplicate method dialog for plugins is now more specific about where the problem occurred.
  • 58919 IDE » Miscellaneous Added a button to close the Getting Started window.
  • 60110 IDE » Miscellaneous Removed unused 256x256 and 128x128 icons from default web projects.
  • 50882 IDE » Plugins macOS IDE now loads the native 64-bit plugin targets before attempting any other variations.
  • 60315 XojoScript XojoScript: added ability to save compiled XojoScript object
  • - Added XojoScript.Compile(optimizationLevel As OptimizationLevels) As MemoryBlock
  • - Overloaded XojoScript.Run(cachedObject As MemoryBlock = Nil)
  • 43 Changes
  • New Items
  • 52546 Compiler Removed 32-bit macOS parts from the framework. Only 64-bit macOS apps can be built.
  • 58654 Compiler MachO executables are now padded with an additional 2048 bytes of header space for 3rd party apps to poke into.
  • 10701 Framework » All Support for creating PDF documents on macOS, Windows, Linux ( Desktop), Web and Console.
  • 11467 Framework » All Updated Graphics.DrawPicture to use clearer parameter names so that they are more useful in the Syntax Help area and match what is in the Language Reference.
  • 11665 Framework » All Listbox: added two new header paint events
  • HeaderBackgroundPaint(g As Graphics, column As Integer) As Boolean HeaderContentPaint(g As Graphics, column As Integer) As Boolean These new events are triggered whenever the header requires repainting. Returning True means override our drawing, False otherwise. For the end cap (the column above the scrollbar if any), only the HeaderBackgroundPaint event will be triggered.
  • 48140 Framework » All HTMLViewer now has the JavaScriptRequest event which is called by a special JavaScript function called executeInXojo() or executeInXojoSync() which accepts any number of numeric and string parameters. You have to use the WebKit renderer for this to work on Windows.
  • 58548 Framework » All SerialConnection: Added new Parities enumeration values Space and Mark.
  • 58902 Framework » All Windows/Linux: Updated frameworks to use latest version of ICU 65.1, this mainly affects DateTime, TimeZone and Locale.
  • 58933 Framework » All Added String.Characters iterator. Just like Text.Characters this iterator will iterate through all the Characters (including grapheme clusters) and not individual codepoints.
  • 59339 Framework » All Widened Web EmailAddressField.
  • 59344 Framework » All Extended Double and Single with IsNaN and IsInf functions. Use IsNaN to determine if a floating point calculation yields NaN (Not-A-Number), and IsInf to determine if a floating point calculation yields an infinity value (either positive or negative).
  • 59486 Framework » All Added the following convenience methods to PopupMenu:
  • — SelectRowWithValue(targetValue As String)
  • — SelectRowWithTag(targetValue As Variant)
  • 59550 Framework » All Added Color.ToString and FromString methods to match equivalent API 2.0 methods on other datatypes.
  • 59680 Framework » All The new available methods: AddAllRows(items() As String), and AddAllRows(ParamArray item As String), will add the received values at the end of the ListBox, or at the end of the first column for multi-column ListBoxes.
  • 59936 Framework » All Updated HTMLViewer for improved JavaScript communication:
  • - ExecuteJavaScript (executes JavaScript asynchronously) - ExecuteJavaScriptSync (new, executes JavaScript synchronously, returns Variant) - executeInXojo (new, called from JavaScript to trigger JavaScriptRequest event asynchronously) - executeInXojoSync (new, called from JavaScript to trigger JavaScriptRequest event synchronously, returns String) - New event JavaScriptRequest(method As String, parameters() As Variant) As String
  • 60212 Framework » All Added new UnicodeMode property to TextArea, this allows Codepoint or Character selection modes:
  • - Added UnicodeModes enum (0-Native, 1-Characters, 2-Codepoints) with the default being Native which is Codepoints on Windows/macOS and Characters on Linux - On Linux only Native/Characters is supported, an UnsupportedOperationException is thrown otherwise - This new property can be found in the Advanced tab in the Inspector - Updated StyledText to also support Characters UnicodeMode when associated with a TextArea
  • 61021 Framework » All Fixed text size and truncation when printing reports on PDF Document.
  • 54117 Framework » Linux Added a new "Normalize Control Sizes" build option for Linux Desktop targets which normalizes all the controls widths/heights, removing any theme specific padding and adjustments to make controls on any Linux distro look similar without having to adjust the heights individually depending on theme/distro.
  • 12822 Framework » Web WebListbox now supports Single, Multiple and No Selection.
  • 13417 Framework » Web Added WebComboBox control.
  • 13809 Framework » Web XojoWebButton now has Cancel and Default properties just like it does on the desktop.
  • 14542 Framework » Web There are now two dialogs which can appear when a user is losing connection to a WebApp, one when the browser first notices that it didn't get a response to a request and the second when it determines that the server is actually gone. The text on both of these dialogs can be customized on the Session class.
  • 15365 Framework » Web WebListbox columns are now sortable.
  • 15601 Framework » Web WebButtons now have a Cancel option which causes the button to fire when the ESC key is pressed.
  • 15639 Framework » Web WebFileUploader has been refactored so that the interface and upload engine are now separate entities. The default interface is now simply a text field and a button. More UIs will be available in the future and developers will be able to create their own when the new WebSDK is released later this year.
  • 16038 Framework » Web WebLinks can now have the appearance of a button.
  • 16749 Framework » Web Pressing Return or ESC on a page or dialog which contains a Default or Cancel button will now automatically fire their Pressed events respectively.
  • 17424 Framework » Web WebMapViewer now has support for Directions.
  • 17460 Framework » Web WebButton now has a Press method which directly fires the Pressed event.
  • 18047 Framework » Web WebMoviePlayer playback position can now be set precisely by specifying the position in fractions of a second.
  • 18048 Framework » Web Added Read-Only Duration property to WebMoviePlayer.
  • 18068 Framework » Web WebFileUploader has been refactored so that the interface and upload engine are now separate entities. The default interface is now simply a text field and a button. More UIs will be available in the future and developers will be able to create their own when the new WebSDK is released later this year.
  • 18181 Framework » Web Added a DatePicker control to the web framework.
  • 18991 Framework » Web Added UpdateBrowser method which pushes the current state of the control to the browser even if in the middle of a long running process.
  • 19812 Framework » Web WebListbox now supports the selection type of "None".
  • 19813 Framework » Web Added WebListBox.SelectedRowColor for setting the selection color.
  • 23041 Framework » Web Web projects now have PagePanel and TabPanel controls.
  • 23071 Framework » Web The browser contextual menu is now shown if you don't assign your own page level contextual menu.
  • 26822 Framework » Web HTMLViewer source can now be retrieved using "var code as String = EvaluateJavascript("document.html.outerhtml”)”.
  • 29417 Framework » Web WebMenuItems can now include separators.
  • 32486 Framework » Web The WebListbox now supports lazy loading data.
  • 33658 Framework » Web Added a WebAudioPlayer control.
  • 35643 Framework » Web WebMapViewer now supports StreetView.
  • 37388 Framework » Web Contextual menus can now be added to controls in their Opening event.
  • 38067 Framework » Web WebPopupMenus now use WebMenuItems under the hood which have a disabled property.
  • 40939 Framework » Web WebTextArea now has a MaximumCharactersAllowed property for limiting the number of characters a user can enter.
  • 46795 Framework » Web Web Framework now includes Bootstrap 3 controls.
  • 49714 Framework » Web Added History API to allow saving state on the user's browser so that if the user clicks the BACK/FORWARD buttons you can figure out where they were and what was loaded.
  • 50746 Framework » Web Added a command-line option (uploadpath) for overriding the location where upload temporary files will be created.
  • 59837 Framework » Web Added an AllowTabOrderWrap property to WebPage which can be set to False before the page's Opening event has finished to entirely disable the built-in tab order system.
  • 59986 Framework » Web Added Activated and Deactivated events to Session which fires when the app's tab or window is shown or hidden, depending on browser support.
  • 59988 Framework » Web Session.UserDisconnected now fires when the web browser is closed.
  • 60007 Framework » Web WebListbox underlying control now uses its Bootstrap 4 theme.
  • 60067 Framework » Web WebCheckbox now has an Indeterminate property, which when set changes the appearance of the checkbox but not the Value property. When the user clicks the checkbox to make a choice, the Indeterminate property is automatically set to False.
  • 60236 Framework » Web WebSession now has an AppearanceChanged event and an IsDarkMode boolean property which reflect the state of the end-user's system appearance settings. This functionality relies on browser support for detection.
  • 60370 Framework » Web WebMessageDialog is now available in the Library.
  • 60652 Framework » Web Removed WebMoviePlayer.PlaybackReadyThroughEnd event.
  • 61043 Framework » Web WebListbox now has a Pressed event.
  • 61202 Framework » Web WebListBox.NoRowsMessage no longer has a default value.
  • 52330 Framework » macOS Updated HTMLViewer on macOS to use WKWebView.
  • 54603 Framework » macOS Updated the look of Listbox headers to match macOS behavior.
  • 22796 IDE » Layout Editor The basic button control in the Library now has the same name and default caption across all platforms.
  • 51404 IDE » Layout Editor All controls now use the same base Bootstrap theme.
  • 61004 IDE » Layout Editor New TextAreas added to the layout now defaults to Characters for the UnicodeMode property.
  • 56394 IDE » Navigator Added a new “Import” entry for the Module contextual menu, so it can import several Classes, Modules, Interfaces… at once.
  • 60715 IDE » Scripting Build Target architectures can now be set in and IDE script using the PropertyValue method. the property names are: "App.MacArchitecture", "App.WindowsArchitecture" and "App.LinuxArchitecture". The values may be set to "x32", "x64", "ARM32" or "ARM64" depending on the specified target. If the target does not support the new value, the value is not changed.
  • 43531 IDE » Style Editor WebStyles can now accept any CSS value.
  • 42922 IDE » Xojo Cloud Xojo Cloud apps now each have their own domains.
  • 60718 Miscellaneous Modernized Spotlight importer on macOS for Xojo project files.
  • 59076 Plugin SDK Added additional Plugins SDK function to Add/Remove event handlers and a function to determine if an event is being handled, see PluginMain.cpp in the Plugins SDK for more details.
  • 60509 Reporting Now it is possible to print Reports to PDFDocument instances.
  • 59361 XojoScript Updated XojoScript to support API 2.0 feature set.
  • 72 New Items
  • Docs and Examples
  • 58769 Documentation Cleaned up various doc pages regarding usage of Application.Copyright, Application.Description and Application.Version.
  • 58804 Documentation Added missing tables to HiDPI doc page (https://docs.xojo.com/UserGuide:HiDPI_Support) to indicate which properties are valid for the various picture types.
  • 60513 Documentation UserGuide:Deploy Web App to Linux topic updated with link to Load Balancing XDC video.
  • 59603 Documentation » Miscellaneous Updated Serial Device Tutorial so that proper control name (DeviceListUpdater) is used in code.
  • 61153 Documentation » Quick Start Guide Added new Web Tutorial and Quickstart PDFs to the documentation folder.
  • 58941 Documentation » User's Guide General Control Set page (https://docs.xojo.com/Control_Sets) in docs now has links to both desktop and web control set doc pages.
  • 60031 Examples Removed unused variables/code in GradientExample project.
  • 60164 Examples WordCounterGUI example now uses Shell.Completed event instead of ResultsReturned event.
  • 36500 Language Reference » Documentation Added some clarifications to array section of Var doc page.
  • 55499 Language Reference » Documentation Graphics.FontUnit and TextUnit pages now note that this is only available for Desktop projects.
  • 57159 Language Reference » Documentation Cleaned up sample code on Double.ToText and Single.ToText pages.
  • 57160 Language Reference » Documentation Cleaned up formatting problem in sample code for Xojo.Core.Date.ToText.
  • 57554 Language Reference » Documentation Correct code error in sample code on Date.TotalSeconds page.
  • 57826 Language Reference » Documentation ListBox.ColumnAlignmentAt page now indicates that this method uses the ListBox.Alignments enumeration.
  • 57835 Language Reference » Documentation Added clarification about exceptions to SQLiteDatabase and DatabaseException pages.
  • 57924 Language Reference » Documentation Added missing page for PopupMenu.RowTagAt.
  • 58180 Language Reference » Documentation URLConnection.ResponseHeaders page now correctly shows iterator is a Pair.
  • 58513 Language Reference » Documentation Fixed typo in RowSet.EditRow description.
  • 58543 Language Reference » Documentation Fixed error in sample code on ListBoxRow.Columns page.
  • 58588 Language Reference » Documentation Fixed type in syntax area of ColorGroup.AddColorPair page.
  • 58606 Language Reference » Documentation Fixed sample code errors on RowSet page.
  • 58637 Language Reference » Documentation Fixed a typo in sample code on String.ChrByte page.
  • 58638 Language Reference » Documentation Fixed typo in sample code on SQLiteDatabase page.
  • 58706 Language Reference » Documentation Fixed two bugs in example code for SQLite on the Database.Connect page.
  • 58729 Language Reference » Documentation Updated docs to indicate that Picture.ImageAt is the replacement for Picture.IndexedImage.
  • 58803 Language Reference » Documentation Doc pages for ContainerControl.EmbedWithin/EmbedWithinPanel indicate that the Top value of the ContainerControl is added to what is specified in the method call.
  • 58895 Language Reference » Documentation Updated ColorGroup doc page to note Operator_Convert and Operator_Compare abilities.
  • 58958 Language Reference » Documentation Rect.Contains page now also lists the declaration for Rect.Contains(X As Double, Y As Double) As Boolean.
  • 58995 Language Reference » Documentation TextEdit.InsertionPoint page has been updated to be InsertionPosition as that is the actual method name added in API 2.0.
  • 59130 Language Reference » Documentation Fixed sample code on MoviePlayer.OpenURL page.
  • 59208 Language Reference » Documentation Fixed code example that adds a menu to the BevelButton.
  • 59216 Language Reference » Documentation Fixed a few bugs in the code examples at the bottom of Single.ToText and Double.ToText pages.
  • 59238 Language Reference » Documentation Removed ListBox.ColumnFromPoint and RowFromPoint pages from docs since those methods do not exist in the framework.
  • 59293 Language Reference » Documentation Removed unnecessary While loop in SQLiteDatabase page sample code.
  • 59318 Language Reference » Documentation FigureShape methods Add, AddAt, RemoveValue and RemoveAt have been updated to their actual names: AddCurve, AddCurveAt, RemoveCurve and RemoveCurveAt respectively.
  • 59333 Language Reference » Documentation Graphics.AntiAliasMode page now properly shows the type as Graphics.AntiAliasModes enum.
  • 59345 Language Reference » Documentation Window.Bounds sample code now uses Rect rather than Realbasic.Rect.
  • 59355 Language Reference » Documentation Updated sample code on RectShape page to use BorderOpacity.
  • 59363 Language Reference » Documentation GraphicsPath page now shows the correct CurrentPoint property.
  • 59368 Language Reference » Documentation On RegEx page, updated notes to clarify that b matches a word boundary and [b] matches a backspace.
  • 59399 Language Reference » Documentation Corrected sample code on NthField page.
  • 59406 Language Reference » Documentation Added “Is” to Operator Precedence table.
  • 59455 Language Reference » Documentation Updated link to official SQLite encryption docs.
  • 59456 Language Reference » Documentation Updated Timer.CallLater doc page to make it clearer that the delegate for passing a parameter must use a parameter of type Variant.
  • 59477 Language Reference » Documentation Now using correct enum in sample code on ListBox.Sort page.
  • 59536 Language Reference » Documentation The IDE Scripting Project Commands page (https://docs.xojo.com/UserGuide:IDE_Scripting_Project_Commands) now shows that “Application Identifier” can be used with the PropertyValue method.
  • 59574 Language Reference » Documentation The Boolean.ToString and FromString methods are now documented.
  • 59577 Language Reference » Documentation Color.RGBA has been marked as deprecated. Color.RGB is the replacement function.
  • 59583 Language Reference » Documentation TabPanel page now properly shows that the AddTab method is used to add tabs.
  • 59600 Language Reference » Documentation Picture.IndexedImage sample code updated to use AddRow method for array.
  • 59620 Language Reference » Documentation GraphicsPath.AddCurveToPoint no longer displays an incorrect restricted platform message.
  • 59658 Language Reference » Documentation The missing closing parenthesis in the example code on the Array.Count page has been added.
  • 59687 Language Reference » Documentation Updated XMLNode.XQL page with correct link to W3Schools Xpath Tutorial URL.
  • 59688 Language Reference » Documentation Fixed typo on String.IndexOfBytes page.
  • 59690 Language Reference » Documentation The last parameter of both Color.SelectedFromDialog as well as the second FolderItem constructor are now indicated as being optional.
  • 59721 Language Reference » Documentation Added explanation the notes for RectControl.ContextualMenuAction about when to return true or false.
  • 59741 Language Reference » Documentation Fixed a typo in the SSLSocket example code.
  • 59752 Language Reference » Documentation Updated sample code for FolderItem.Exists.
  • 59791 Language Reference » Documentation Replaced sourceString with stringVariable for arguments for String.Middle, String.Left, String.Replace and String.ReplaceLineEndings.
  • 60019 Language Reference » Documentation Updated sample code on Pop page to use FolderItem iterator.
  • 60143 Language Reference » Documentation Searching for “darkmode” in the Docs Wiki now redirects to the UserGuide:Dark Mode topic.
  • 60354 Language Reference » Documentation WebFileUploader.UploadError now has more information in the Notes describing what could cause it and what the values can contain.
  • 60454 Language Reference » Documentation Added Encoding property to list of properties on TextOutputStream page.
  • 60486 Language Reference » Documentation Fixed a small error in the sample code on the Sound page.
  • 60569 Language Reference » Documentation Added additional sample code to EmailAttachment page to demonstrate MIMEType usage.
  • 60728 Language Reference » Documentation The SQLiteDatabase.AddDatabase password parameter is no longer documented as optional.
  • 60822 Language Reference » Documentation The second example has been updated to use TextShape rather than StringShape.
  • 60836 Language Reference » Documentation The example code for URLConnection.ResponseHeaders has been modified to reflect that the headers are pairs.
  • 60864 Language Reference » Documentation Shell.Result is now listed as read-only.
  • 60981 Language Reference » Documentation The Postgres.Connect page no longer incorrectly indicates that it returns a boolean.
  • 61375 Language Reference » Documentation The formatting issues with the TextArea.SelectionAlignment entry in the Language Reference have been resolved.

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

  • macOS Mojave Dark Mode support for the Xojo IDE and your own apps
  • Full changelog here: http://developer.xojo.com/2018r3-release-notes

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

  • Added SpecialFolder.Resources and GetResource methods
  • SQLiteDatabase updated to 3.23.1
  • iOS Improvements:
  • iOSTable supports pull-to-refresh
  • iOSTable better supports varying row heights with iOSCustomTableCell
  • iOSView support large titles on iOS 11+
  • iOSHTMLViewer now uses WKWebView for better compatibility
  • 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.
  • 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.
  • 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.
  • 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.

New in Xojo 2018 Release 1.1 (Jul 20, 2018)

  • Bug Fixes:
  • 52137: Compiler: Fixed a 2018r1 performance regression in 64-bit Windows built apps with optimizations on.
  • 47557: Crashes & Assertions » IDE Unhandled Exception: A NilObjectException that could be caused by an undo has been fixed (see 51883).
  • 51976: Crashes & Assertions » IDE Unhandled Exception: Fixed a NilObjectException that could be caused by selecting a method name from the method name combo box.
  • 52100: Crashes & Assertions » IDE Unhandled Exception: Viewing the unicode representation of large text variables no longer causes exceptions or hangs.
  • 52103: Crashes & Assertions » IDE Unhandled Exception: Compilation of an iOS project that has a launch screen with an image on it that has no actual pictures in the image no longer causes an OutOfBoundsException.
  • 51960: Debugger: Fixed a 2018r1 regression that prevented breakpoints from working reliably in 32-bit applications.
  • 51940: Framework » Windows: A hidden TabPanel no longer leaves a visible blank space around.
  • 52004: Framework » Windows: Controls on a TabPanel no longer have a gradient background.
  • 52011: Framework » Windows: Sliders/Scrollbars on TabPanels no longer cause the Tabs to scroll off the TabPanel.
  • 52017: Framework » Windows: Drawing on a clipped Printer Graphics region now works again.
  • 52037: Framework » Windows: Canvas now refreshes properly after Scroll is called.
  • 52106: Framework » Windows: Last Tab in a TabPanel is no longer clipped when scale factor changes.
  • 51883: IDE: Undo no longer causes a crash.
  • 51963: IDE: Undo of a newly added control no longer leaves the Inspector in an odd state.
  • 44864: IDE » Debugger: Viewing large text variables unicode no longer hangs or causes exceptions.
  • 52021: IDE » Debugger: Debugger now stops at breakpoints correctly for 64-bit and ARM targets.
  • 52051: IDE » Debugger: Windows IDE: Global variables can now be viewed when debugging 64-bit apps.
  • 52114: IDE » Xojo Cloud » Statistics: Hosting Stats window no longer leaks sockets.
  • 51786: Lingua: Translated TextField is now disabled by default.

New in Xojo 2018 Release 1 (Apr 20, 2018)

  • Xojo 2018 Release 1 features:
  • Windows IDEs can now Run and Debug 64-bit Windows applications.
  • Windows framework updates to reduce flicker.
  • iOS builds now use iOS 11 SDK and support iPhone X screens.
  • You can now display server stats for your Xojo Cloud servers.
  • WebFileUploader has many improvements, including: Drag&Drop, multiple file selection, filtering, upload progress, supports files > 2GB.
  • Bug Fixes:
  • 51328: Build: Windows version editor is not clipped off.
  • 38529: Compiler: Fixed a failed assertion that would occur when using currency constants.
  • 42189: Compiler: Fixed a compiler failed assertion that would occur when doing pointer subtraction on a 64-bit target.
  • 47822: Compiler: Currency comparison works correctly under 64-bit.
  • 49306: Compiler: Fixed a failed assertion in SubprocessPOSIX.cpp that could happen if all code generation processes failed to launch.
  • 50288: Compiler: Fixed a failed assertion that would occur when passing Nil when expecting a PString, WString, or WindowPtr.
  • 50665: Compiler: Windows IDE no longer pre-compiles plugins unnecessarily.
  • 50698: Crashes & Assertions » Failed Assertion: Running a project that contains compilable items named with one of Windows reserved file names no longer fails.
  • 49895: Crashes & Assertions » IDE Unhandled Exception: Dragging more than one script file onto the IDE no longer causes an exception.
  • 51126: Crashes & Assertions » IDE Unhandled Exception: If autosave cannot write it no longer causes an exception and will instead warn the user that it has failed.
  • 51440: Crashes & Assertions » IDE Unhandled Exception: Copy paste and delete of web style with background colors no longer causes stack overflow exception.
  • 51472: Crashes & Assertions » IDE Unhandled Exception: Selecting a Using clause and pressing any keys that would edit code (inserting text, deleting etc) no longer causes an exception.
  • 51475: Crashes & Assertions » IDE Unhandled Exception: Moving style with background colors into a folder no longer causes a stack overflow exception.
  • 51668: Crashes & Assertions » IDE Unhandled Exception: A non-privileged user trying to save a script to a location they do not have write access to no longer causes the IDE to generate an exception.
  • 34037: Database Plugins: MSSQLServerDatabase no longer crashes on SQLSelect when the result contains multiple result sets. This can happen with #temp tables in a stored procedure for example.
  • 42544: Database Plugins: SQLiteDatabase now yields to other threads while SQLite is busy performing a long operation. Please see the ThreadYieldInterval property to control how often it yield.
  • 50685: Database Plugins: Importing a SQLite Database (via drag and drop) now connects to the database properly.
  • 51358: Database Plugins: SQLiteDatabase: When compiling a prepared statement fails, we now return the error that SQLite reports, instead of a custom "unable to prepare" error message.
  • 13276: Debugger: The debuggers listbox viewer has column headings that match the way columns are referred to in listbox methods, like the Cell and CellTag methods, where they are 0-based not 1-based.
  • 15972: Framework » All: With ListBox.DragReorderRows enabled it is now possible to drag and drop at the end of a folder when the Listbox isn't positioned exactly on the left border of the window.
  • 19158: Framework » All: Container controls have a DoubleBuffer property that can be set at design time or runtime to reduce flicker when scrolling. This only takes effect on Windows.
  • 41711: Framework » All: Fixed precision loss when dividing Currency values, also the results are now rounded properly, and will now raise overflow exceptions if the result cannot be represented.
  • 45954: Framework » All: Converting floating point to unsigned integer types now works correctly under 64-bit.
  • 46572: Framework » All: Xojo.Core.TimeZone.SecondsFromGMT: fixed miscalculation of daylight savings time on Windows/Linux.
  • 46836: Framework » All: Waiting on a Mutex, that is eventually released, now properly resumes execution instead of continuing to block the app.
  • 48021: Framework » All: Fixed a failed assertion in RuntimeThread.cpp that could be triggered by a specific sequence of raising exceptions and plugins yielding to other threads.
  • 50650: Framework » All: Drawing to a Graphics object whose backing has been destroyed (for example if the Graphics object came from a Picture and that Picture was destroyed before the Graphics object was) a NilObjectException is now raised instead of crashing.
  • 50669: Framework » All: JSONItem no longer fails to parse JSON strings when the application's language is set to Japanese.
  • 50928: Framework » All: HTMLViewer no longer displays internal properties in the debugger.
  • 51325: Framework » All: Text ToHex/ToOctal/ToBinary now correctly converts negative numbers.
  • 46161: Framework » Linux: RuntimeException.Stack now works correctly on 64-bit programs.
  • 46585: Framework » Linux: Linux IDE: viewing string properties in the debugger no longer crashes.
  • 49369: Framework » Linux: Raspberry Pi font attributes for controls now works consistently.
  • 49401: Framework » Linux: Controls placed on a non-Transparent ContainerControl are properly clipped on Linux.
  • 50280: Framework » Linux: Application.ExecutableFile and GetFolderItem("") now correctly return the resolved alias path if the app was started from a short-cut.
  • 50613: Framework » Linux: Listbox.AddRow no longer crashes when adding additional columns that contain checkboxes in them.
  • 50936: Framework » Linux: Labels no longer automatically selects all the text when Selectable is enabled.
  • 50945: Framework » Linux: HighlightColor now returns the correct color on CentOS 7.
  • 51091: Framework » Linux: SpecialFolder.Desktop, Documents, Music, Pictures, and Movies now correctly return the localized path.
  • 49586: Framework » Macintosh: Listbox no longer crashes when quitting app while a cell is still in edit mode.
  • 50220: Framework » Macintosh (Cocoa): PushButton.Push now invokes the user's Action handler even if there's a modal dialog presented in front of the button's window.
  • 50846: Framework » Macintosh (Cocoa): ToolTip.Show now appears in the correct position on screen and wraps appropriately.
  • 18426: Framework » Web: WebTextField.KeyPressed now fires when the period (.) key is pressed.
  • 19275: Framework » Web: WebMoviePlayer now shows native HTML5 video controls on all supported browsers.
  • 37367: Framework » Web: WebMoviePlayer now uses the native HTML5 video player for all browsers.
  • 38479: Framework » Web: Refactored KeyDown and KeyUp handling so that certain keys that were being omitted will now be correctly fired.
  • 46086: Framework » Web: WebMoviePlayer now uses the built-in HTML5 video player on all browsers.
  • 46929: Framework » Web: WebLabels and WebLinks whose MultiLine property is set to True will now refresh their appearance when visibility is set to True so text changes made while the control was invisible will appear correctly.
  • 49418: Framework » Web: WebMoviePlayer no longer interferes with other controls when placed on a WebContainer.
  • 50127: Framework » Web: Pulling a URL from a WebFile with no attached session no longer warns about there being no session context.
  • 50214: Framework » Web: Windows Standalone Web apps running with an SSL certificate no longer require the certificate to contain the prefix Debug.
  • 50273: Framework » Web: WebFileUploader no longer fails when filenames contain ampersands or apostrophes.
  • 50359: Framework » Web: WebFileUploader no longer fails when the total size of the files > 2GB.
  • 50776: Framework » Web: WebMoviePlayer now honors right and bottom locks.
  • 50809: Framework » Web: WebMapViewer no longer calls into the Google Maps API more than once per browser session.
  • 50810: Framework » Web: WebMapViewer now stores the Latitude and Longitude provided when calling GoToLocation.
  • 50832: Framework » Web: Hid the malformed progress bar which appeared on the web app launch screen when displayed on a Retina/HiDPI screen.
  • 51143: Framework » Web: Web framework "raw" tags now support more than one set in the same string.
  • 51242: Framework » Web: WebImageViews whose Picture property is defined by an Image object will now transfer the image that best matches the resolution of the current session when behaving as the source of a drag and drop operation.
  • 51525: Framework » Web: Web offline ping URLs have been changed to an absolute URL so they include the script name for CGI apps.
  • 22987: Framework » Windows: FolderItem.Exists now reports correctly for the root level folder of a network share.
  • 30624: Framework » Windows: When scrolling a listbox, the CellBackgroundPaint event is now called for all visible cells.
  • 31791: Framework » Windows: Made it so when an ActiveX control is added all its code is wrapped in #if / #endif to make the code not executed on non-Windows platforms.
  • 43749: Framework » Windows: MSSQLServerDatabase no longer crashes in 64-bit builds when running a SQLSelect statement and closing the subsequent RecordSet.
  • 44999: Framework » Windows: Showing a Modal window now properly deactivates the main window.
  • 46398: Framework » Windows: Labels are no longer redrawn when tabbing through controls.
  • 46520: Framework » Windows: Listbox focus ring now correctly moves to the selected item when set using Listbox.Selected.
  • 46942: Framework » Windows: Windows/Linux: Adjusted the position of the TextField for editable cells in a Listbox so that the TextField better aligns with the text for the default case.
  • 47182: Framework » Windows: Listbox.InvalidateCell no longer invalidates the entire row on Windows.
  • 47503: Framework » Windows: Listbox no longer scrolls badly at fractional DPI scale factors when the DefaultRowHeight is odd.
  • 48186: Framework » Windows: Listbox: painting the cell's background no longer produces pixel cracks between rows at fractional DPI scales.
  • 49643: Framework » Windows: Canvas.Scroll now redraws the childs control properly.
  • 49651: Framework » Windows: Assigning a negative value to Graphics.TextSize no longer raises a failed assertion.
  • 50137: Framework » Windows: Setting BinaryStream.Position to -1 now moves the position to the end of the stream (as documented), instead of throwing an IOException.
  • 50296: Framework » Windows: Showing a Modal Window now properly deactivates its parent window.
  • 50484: Framework » Windows: MouseMove event now only fires if the mouse cursor has actually moved, which matches the behavior on macOS and Linux.
  • 50531: Framework » Windows: Listbox no longer shows a 1px white line when handling CellBackgroundPaint.
  • 50574: Framework » Windows: Val now consistently converts 64-bit hex/binary/octal values as 64-bit integers instead of 32-bit when app is built as 64-bit.
  • 50672: Framework » Windows: Setting the TextSize of a TextArea control no longer resets the TextColor.
  • 50707: Framework » Windows: When running app from command line, an OpenDocument event no longer fires if no parameters were passed.
  • 50813: Framework » Windows: DrawPolygon/FillPolygon now respects the origin offsets (these can be modified by Plugin controls via the REALSetGraphicsOrigin function call).
  • 50842: Framework » Windows: BevelButton: Caption is now aligned properly when an icon is set and the DPI scale factor is greater than 100%.
  • 50847: Framework » Windows: Printing no longer crashes on older Windows operating systems that do not support printing with Direct2D.
  • 51011: Framework » Windows: No longer get a NilObjectException when using the HTMLViewer as it cleans up temporary files on Windows.
  • 51044: Framework » Windows: Deleting a top-level menu on Windows no longer crashes.
  • 51064: Framework » Windows: Graphics: TextUnit.Pixel is no longer incorrectly treated as if its unit were in points at > 100% DPI scale factors.
  • 51072: Framework » Windows: An OpenDialog returning a file from an external device no longer returns Nil.
  • 51117: Framework » Windows: BevelButton menu arrow now respects the DPI scale factor when drawn.
  • 51246: Framework » Windows: Shell command now accepts unicode input.
  • 51281: Framework » Windows: Fixed an issue where a clipped graphics would use the wrong transform matrix.
  • 51371: Framework » Windows: DrawInto no longer crashes when passed a clipped graphics.
  • 51572: Framework » Windows: Fixed a loss of precision issue when converting some mouse coordinates. This fixes an issue where the MouseDrag event no longer fires if the mouse didn't move after MouseDown, this occasionally happened at fractional HiDPI scale factors depending on the mouse location.
  • 51582: Framework » Windows: We now honor the documentation and no longer attempt to hide MenuItems on Windows. Supporting this made the entire menu render text in classic theme mode.
  • 42747: Framework » iOS: An incorrect iOSSQLiteDatabase.SQLSelect statement no longer causes iOS app to crash.
  • 50611: IDE: When closed, Project windows disappear immediately.
  • 50655: IDE: Made it so that the "choose a project window" (template chooser) is in the window menu so that if you open it, switch to another project, you can get back to the choose project window by selecting it from the window menu (which you can’t do easily right now).
  • 50840: IDE: Extraneous separators are no longer part of various contextual menus.
  • 51322: IDE: The IDE should redraw better and have fewer compositing artifacts on OS X 10.9.
  • 6996: IDE » Auto Complete: Code such as “Exception e as Run”, now autocompletes RuntimeException.
  • 16645: IDE » Auto Complete: Autocomplete presents the initial grey text completion properly.
  • 36702: IDE » Auto Complete: System.Cursors, as well as other items in the System module, autocomplete as expected.
  • 37446: IDE » Auto Complete: System.log and System.Cursors autocomplete properly.
  • 40039: IDE » Auto Complete: System module autocompletes properly.
  • 45511: IDE » Auto Complete: System.GetNetworkInterface auto completes properly.
  • 45712: IDE » Auto Complete: All the new color constants (black, gray, lightgray, purple, yellow, etc.) autocomplete.
  • 50654: IDE » Auto Complete: Plugins extension methods autocomplete as expected.
  • 50745: IDE » Auto Complete: Autocomplete popup is just the right size.
  • 51542: IDE » Auto Complete: Parameters are always properly located and so show up in autocomplete results when editing the body of a method.
  • 51555: IDE » Auto Complete: Autocomplete following the use of IsA includes interfaces.
  • 50599: IDE » Build Automation: Undoing the removal of a file from a Copy File Step refreshes the list.
  • 51203: IDE » Build Automation: Build Scripts properly report that they are debug builds in scripts run before the Build step.
  • 5431: IDE » Code Editor: Fixed a long standing and hard to track down bug in the code editor where if you have a long method, edited it, then tried to select you would get this weird bouncing behaviour and not be able to select past the current screen full of code
  • 23130: IDE » Code Editor: Proper summary for color members shows.
  • 26366: IDE » Code Editor: Double clicking methods, menu handlers, constants or other "header rows" no longer opens a tab that does not then move to have that group as the root item.
  • 26884: IDE » Code Editor: Syntax Help at the bottom of the Code Editor updates as you move the insertion point with the keyboard.
  • 30177: IDE » Code Editor: Classes cannot be given illegal names using search and replace.
  • 31508: IDE » Code Editor: IDE Script editor unsaved changes indicator is now cleared after saving.
  • 36875: IDE » Code Editor: With autocomplete, the Declare word can now be used either at the beginning of a declare or following Soft. Note that this, like the other verbs that can only be used in a declare, does not mean that it suggests things in the correct syntactic order just that it will now suggest it after typing "soft”.
  • 50244: IDE » Code Editor: The debugger highlight now scrolls properly left/right as you scroll the editor horizontally.
  • 50279: IDE » Code Editor: Selecting a block by clicking on the code folding lines works properly when line numbers are shown.
  • 50543: IDE » Code Editor: Right clicking on #if, #else, #elseif, #end and #pragma now go to the right language reference page.
  • 50549: IDE » Code Editor: Shift-returns now scrolls back to the left margin so you can see what was just inserted.
  • 50653: IDE » Code Editor: Autocompletion of an element of an array presents the right autocompletion options.
  • 50988: IDE » Code Editor: Block matching lines are drawn continuously and not anti-aliased so there are no gaps.
  • 51004: IDE » Code Editor: Shift-return completes blocks in a context sensitive manner.
  • 51026: IDE » Code Editor: Pasted text is not handled immediately but when the insertion point moves, or would move in the case of a multiline paste. This way pasting into a quoted string or comment no longer has the standardize format applied to it incorrectly.
  • 51202: IDE » Code Editor: Summary of things improved in the code editor: made changes to how code items cache their set of local vars to improve speed, better caching and updating of using clauses, makes it so lines that start with "catch" and "exception" are considered as declaring local variables which they weren’t before, sped up class name lookup.
  • 51208: IDE » Code Editor: Caret no longer shows through the line number gutter on Windows.
  • 51266: IDE » Code Editor: Fixed a typo in the help area below the code editor when reporting compile errors and warnings.
  • 51359: IDE » Code Editor: Other keyboard navigation keys cause the code cleaner to execute properly.
  • 51372: IDE » Code Editor: Code lines that are automatically updated with Standardize Format are now always saved properly.
  • 51458: IDE » Code Editor: Windows IDE: For non-ligature fonts in the code editor, the text no longer shifts when selecting text.
  • 51470: IDE » Code Editor: Auto and Variant highlight in the keyword color like other intrinsic data types do.
  • 51580: IDE » Code Editor: Text now indents and aligns as expected especially when using a fixed width font. Proportional fonts are always going to be problematic just by their very nature.
  • 50638: IDE » Constant Editor: Dynamic label no longer shows when creating a color constant as it’s not really needed.
  • 50627: IDE » Debugger: Running console apps on Linux when the project has spaces in the name works again.
  • 51314: IDE » Debugger: Viewing text properties and variables no longer has the tabs placed so far left they are clipped off.
  • 51511: IDE » FileIO: Projects that use the initial value with backslash characters in them would erroneously set this value to increasingly long text values.
  • 50511: IDE » Find & Replace: The enum editor no longer reloads several times when you open it.
  • 49785: IDE » Icon Editor: Fixed a bug when building apps for macOS so that they now include the correct 2x versions of the 16, 32, 128 and 256 pixel icons.
  • 45783: IDE » Inspector: Changes to Shared Build settings: - "Long Version" is renamed as "Copyright" in the Shared build settings - "Short Version" is renamed "Version" in the Shared build settings - "Package Info" is renamed "Description" in the Shared build settings and add new accessors for GUI and Console apps so - App.Version gives back the short version (ShortVersion still works) - App.Copyright gives back the long Version (LongVersion still works) - App.Description gives back packageInfo (PackageInfo still works) IDE Scripts can set and get these values as well. Note that this does not alter old behavior on each OS. For instance, PackageInfo never returned any value on macOS, so Description doesn’t either.
  • 49902: IDE » Inspector: Can use a constant once again to set a boolean property.
  • 50341: IDE » Inspector: Inspector uses “Behavior” spelling for headers rather than “Behaviour”.
  • 50667: IDE » Inspector: Lines draw in the IDE as expected.
  • 50951: IDE » Inspector: Fixed up the handling of names changes in menu items so that the first time there is a duplicate name both the existing item and newly renamed item both get index values (as neither would have had one). The next time there is a new item renamed to an already existing name it gets the "next" index (one larger than the highest one used so far). And these fixes mean that simply renaming an item will not get an index of 0 assigned.
  • 50964: IDE » Inspector: You can assign a private sibling as the super of a public sibling inside a module.
  • 50984: IDE » Inspector: Ellipsis are no longer stripped from the default value of a property.
  • 51027: IDE » Inspector: If you have hidden the Inspector and during a debug run click the “edit code” pencil on the toolbar the inspector is not forced to be visible.
  • 51285: IDE » Inspector: Compat flags set on an external item, like a module, are properly retained.
  • 51316: IDE » Inspector: Inspector sections are in expected order.
  • 51432: IDE » Inspector: New web controls properly show their initial style as “None” .
  • 50601: IDE » Menu Editor: Dragging tool items in a web toolbar no longer causes the IDE to crash on Windows.
  • 51465: IDE » Menu Editor: Dragging a menu off the menu bar no longer leaves it off the menu bar. It will pop back up to its correct horizontal position in the overall menu bar as it should.
  • 11492: IDE » Miscellaneous: inspector behaviour does not sort when writing to text projects.
  • 49796: IDE » Miscellaneous: User set menu shortcuts can be in these locations: * Application Data > Xojo > Xojo > Overrides > Keyboard shortcuts (for ONE user for ONE specific version) * Documents > Xojo > Overrides > Keyboard shortcuts (for ONE user for all versions that support this functionality) * SharedDocuments > Xojo > Overrides > Keyboard shortcuts (for all users for all versions that support this functionality) This override of shortcuts will be located and used in the order listed above. More specific settings override more general ones.
  • 49916: IDE » Miscellaneous: APFS volumes now correctly retain tags (and other meta data like extended attributes, ACLs, custom icons, and some other low level metadata) since we've moved to a newer API for atomically swapping files.
  • 49950: IDE » Miscellaneous: When the IDE creates a tar.gz file to send to a remote stub the tar.gz file is cleaned up properly.
  • 49973: IDE » Miscellaneous: Plugin compiling dialog always appear in front of IDE window.
  • 49979: IDE » Miscellaneous: Extract Superclass dialog minimum dimensions have been fixed.
  • 50373: IDE » Miscellaneous: “Return” is properly cased in the Getter when creating a computed property from a regular one.
  • 50463: IDE » Miscellaneous: Closing the preferences window doesn't show minimized windows.
  • 50617: IDE » Miscellaneous: The Super Class browser is no longer case sensitive.
  • 50722: IDE » Miscellaneous: Warnings about deprecated / removed connection types for SSLSockets and its subclasses show in all project types.
  • 50741: IDE » Miscellaneous: Project Chooser window opens centered on a brand new install.
  • 50913: IDE » Miscellaneous: Window menu check mark is next to front most window as expected. This may be a project window, script window, or the new project window.
  • 50926: IDE » Miscellaneous: If the active tab is one from an item in the spill over tab menu that item in the spill over menu will have a check mark next to it.
  • 50937: IDE » Miscellaneous: Extract Method dialog on Linux resizes controls appropriately and resizes the dialog accordingly to fit these resized controls.
  • 51148: IDE » Miscellaneous: In the Window menu, the correct item now has the checkmark.
  • 32801: IDE » Navigator: Selection rectangle no longer moves down and away from the actual item selected when you resize the source list.
  • 37502: IDE » Navigator: Duplicated items no longer show up at the top of the list but are placed after the item being duplicated.
  • 44363: IDE » Navigator: The dark grey line over the Navigator is properly disabled.
  • 50227: IDE » Navigator: Changing Navigator preferences now updates the appearance as soon as possible.
  • 50228: IDE » Navigator: Changing Navigator preferences now updates the appearance as soon as possible.
  • 50556: IDE » Navigator: Computed properties no longer sometimes incorrectly show “default values” as a field in the Inspector.
  • 50636: IDE » Navigator: Made it so if you have a tab that is locked to a folder containing classes you can edit any of the contained classes without the IDE switching tabs.
  • 50910: IDE » Navigator: Removing an event handler from a control array really does remove it.
  • 50990: IDE » Navigator: You can now Undo a delete/cut of a module or folder that contains project items.
  • 51243: IDE » Navigator: Adding a build step to a build target by right clicking on the target when it is not the selected row works as expected. The build step is added to the row right clicked.
  • 51486: IDE » Navigator: Using copy paste to duplicate constants no longer ends up with constants with duplicated names.
  • 50462: IDE » Plugins: Fixed odd typo in spelling of “Encoding”.
  • 51093: IDE » Plugins: A change in the case of the title of a window will update the layout editor properly.
  • 49841: IDE » Preferences: Capitalization on labels on preferences panes updated to be more consistent across panes.
  • 50230: IDE » Preferences: All open palettes close when you switch from palettes to ones embedded in the window.
  • 50499: IDE » Preferences: Remote Debug Hosts in preferences no longer has IP address column truncated for longer addresses.
  • 50151: IDE » Rendering: Web controls and layouts that use the new color or boolean constants render out properly.
  • 50450: IDE » Report Editor: Error about non-UTF-8 name when subclassing report controls no longer occurs.
  • 50330: IDE » Scripting: No longer get an exception when opening an IDE script while an IDE script window is already open.
  • 50782: IDE » Scripting: IDE Script shortcuts work properly on Windows and Linux.
  • 51298: IDE » Scripting: Access to constants down paths more than one level deep work as expected. You can read and write the default value for constants.
  • 51302: IDE » Scripting: Access to properties down paths more than one level deep work as expected. You can read and write the default value for properties.
  • 51382: IDE » Scripting: NewMethod no longer creates methods with wrong name and scope when supplied proper parameters.
  • 51621: IDE » Scripting: IDEScripting’s CloseProject closes the right project.
  • 20968: IDE » Window Editor: Inspector appears as expected every time.
  • 49813: Plugin SDK: Linux plugins that use GTK text controls no longer crashes when key is pressed.
  • 51816: Plugin SDK: Updated header to fix an undefined behavior warning/error.
  • 50713: Remote Debugger Stub: Remote Debugging a console app to Linux now properly launches the app again.
  • 51424: Remote Debugger Stub: A 64-bit stub can correctly receive either a 32 or 64-bit app from the IDE. 32-bit stubs only receive 32-bit versions. Previously, since 64-bit debugging was not possible on Windows, only 32-bit versions would ever be sent to remotes regardless of whether the remote was running on a 32 or 64-bit version of Windows.
  • Changes:
  • 49549: Compiler: The compiler now uses LLVM 6 internally.
  • 51034: Database Plugins: Updated SQLIteDatabase plugin to 3.21.0.
  • 51522: Database Plugins: SQLite has been updated to 3.22.0.
  • 45159: Debugger: The IDE can now debug 64-bit Windows applications.
  • 34575: Framework » All: JSONItem.Value now accepts String, Number and Boolean arrays.
  • 49771: Framework » All: EraseBackground property no longer shows in inspector for Canvas and ContainerControls.
  • 51677: Framework » Linux: 32-bit x86 Linux builds no longer depend on libunwind.
  • 15654: Framework » Web: WebListbox now honors Up and Down keys to allow users to navigate with the keyboard.
  • 32009: Framework » Web: The type of WebUploadedFile.Size has been changed from Double to UInt64.
  • 50125: Framework » Web: When launching a standalone web app from the command line the app will now write an error and quit if the specified SSL certificate does not exist or is not readable.
  • 50328: Framework » Web: Support for Internet Explorer 9 has been removed from the web framework.
  • 50395: Framework » Web: All browsers that support EventSource server events now use it instead of long polling.
  • 50467: Framework » Web: Web applications will now show an error and quit if the network interface specified on the command line is greater than the number of available interfaces.
  • 50474: Framework » Web: Internet Explorer 9 support has been removed.
  • 50524: Framework » Web: HandleURL and HandleSpecialURL now have their Date headers set by default.
  • 50774: Framework » Web: WebMoviePlayer no longer uses the Flash player to play videos in browsers that do not support HTML5 video.
  • 49860: Framework » Windows: Updated to support per monitor awareness v2 that was introduced in the Creators Update. This fixes many of the Win32 control issues on a per-monitor setup, but even on a single monitor setup where the user would switch DPIs without logging out. Some highlights: - All menus create in Per Monitor v2 contexts will be scaling on a per-monitor fashion - Win32 dialogs now automatically respond to DPI changes - Various Win32 controls have improved DPI scaling behavior in Per Monitor v2 contexts - Theme handles opened in the context of a Per Monitor v2 window will operate in terms of the DPI associated with that window
  • 50351: Framework » iOS: iOSLabel now defaults to black.
  • 36745: IDE » Code Editor: Read only projects display the "this project is read only" dialog when trying to edit code on a read only project.
  • 51484: IDE » Code Editor: New installs on Windows will default to using Consolas instead of System for the coding font.
  • 12659: IDE » Constant Editor: macOS now uses a sheet window for the multiline editor for individual constant instance values. Windows and Linux use a modal dialog that restores its position.
  • 49417: IDE » Debugger: Both the IP address and name of the remote are now shown when transferring to a remote debugger stub.
  • 50178: IDE » Icon Editor: Updated ICNS support. This also removes some restrictions so that ICNS files can be partially imported on Windows and Linux where the elements use PNG and JPEG2000.
  • 49903: IDE » Inspector: Can use a constant once again to set a boolean property.
  • 11617: IDE » Miscellaneous: Open Existing File and Recent Items are in the Windows tray item menu.
  • 49751: IDE » Miscellaneous: Old projects load with controls transparent (unless it was set otherwise). Newly added controls will default to not being transparent.
  • 50443: IDE » Miscellaneous: Updated autosave to not do another save if the project has not changed since the last time it was autosaved.
  • 50709: IDE » Miscellaneous: N/A
  • 50425: IDE » Navigator: External non-Xojo items will always open in the default external editor (using FolderItem.Launch).
  • 50835: IDE » Navigator: Control rows in the Navigator that are plugins will use the correct icons.
  • 51589: IDE » Preferences: Drag and drop of a theme file to preferences pane now works, but only on macOS at the moment. Related Case #51629.
  • 51630: IDE » Preferences: An error in how the IDE was writing filetype sets made this not work as expected on Windows. That has been corrected in another case.
  • 51773: Plugin SDK: Added an example to the Plugins SDK to demonstrate how to host WPF controls in Xojo.
  • 51312: Remote Debugger Stub: Desktop Remote Debugger's default computer name is now set using the hostname.
  • New Items:
  • 31055: Framework » All: SQLiteDatabase now has support for AES-256 encryption.
  • 49565: Framework » All: Added Transparent property to RectControl. This property is mainly useful on Windows to avoid additional overhead if you know your layout does not require Transparency.
  • 50090: Framework » All: Enabling DoubleBuffer on a ContainerControl now composites the control on Windows, allowing for moving/scrolling controls to appear less flickery.
  • 50120: Framework » Linux: Updates to support Wayland backend, and others besides X11. As with any backends (in combination with differing versions of GTK+), mileage may vary in what works and what doesn't. Currently the major differences noticeable in the Wayland backend are: - Cannot restrict to a maximum size of a resizable window - Getting the Window left/top will return 0, conversely setting the Left/Top will not move the window
  • 14484: Framework » Web: Added UploadProgress event to WebFileUploader.
  • 15374: Framework » Web: WebFileUploader now supports drag and drop.
  • 15375: Framework » Web: Added boolean MultiSelect property to WebFileUploader to allow users to select more than one file at a time.
  • 18541: Framework » Web: WebMoviePlayer now has a separate Stop command. Instead of having to use the Play command to toggle the playing state.
  • 19753: Framework » Web: Added CancelUpload method to WebFileUploader.
  • 22287: Framework » Web: WebMoviePlayer now has Played, Stopped, VolumeChanged, PositionChanged and DurationChanged events.
  • 29983: Framework » Web: WebMoviePlayer now has a separate Stop method instead of having to use the Play command to toggle the playing state.
  • 32040: Framework » Web: Added Filter property to WebFileUploader to allow filtering on specific Mime Types.
  • 41401: Framework » Web: Added a Filter property to the WebFileUploader for specifying accepted mime types.
  • 51101: Framework » Web: WebFileUploader now has an UploadTimeout property.
  • 13468: Framework » Windows: All UI controls now have the possibility to be Transparent, see the new RectControl.Transparent property.
  • 47001: Framework » Windows: Reduced flicker on Windows by moving to a Psuedo-Transparency model (much like MS WinForms does). Please avoid partially overlapped controls with this new model.
  • 51213: IDE: Creating a new project when running the IDE on macOS will default to setting the macOS Build Architecture to 64-bit.
  • 51578: IDE » Build Automation: The list of constants available in a build script is now the following: CurrentBuildLocation - string, CurrentBuildLocationNative - string, CurrentBuildTarget - integer, CurrentBuildAppName - string, CurrentBuildTargetIs32Bit - boolean, CurrentBuildTargetIs64Bit - boolean, CurrentBuildTargetIsIntel - boolean, CurrentBuildTargetIsARM - boolean, CurrentBuildTargetIsWindows - boolean, CurrentBuildTargetIsMacOS - boolean, CurrentBuildTargetIsLinux - boolean, CurrentBuildTargetIsXojoCloud - boolean, CurrentBuildTargetIsDesktop - boolean, CurrentBuildTargetIsConsole - boolean, CurrentBuildTargetIsWeb - boolean, CurrentBuildTargetIsIOS - boolean, PreBuild - boolean, DebugBuild - boolean
  • 27328: IDE » Code Editor: Find in selection works once again.
  • 51682: IDE » Code Editor: Made it so users can, as part of a Xojo color theme, override the system selected text highlight color and inactive text color.
  • 51173: IDE » FileIO: For Text projects a warning is given if the manifest is missing critical information or has been edited in a way that its malformed in a way it can’t be opened properly.
  • 51238: IDE » Layout Editor: Internal plugin controls properly inherit their properties from their supers meaning that things like Transparent is now generally available on RectControl subclasses
  • 51290: IDE » Miscellaneous: If you try to run a 32 bit app on a 64 bit linux distro that does not have required 32 bit libs the IDE detects this and tells you why the debug run failed to start.
  • 51299: IDE » Miscellaneous: New projects default to being 64 bit for Linux.
  • 50652: IDE » Navigator: Made it so that when you click on an item contained by another (such as a code item like a method, constant, property, etc contained by a class, layout, etc.) one of the contextual men items is to open the container in a new tab. This is particularly handy when you’ve applied a filter and want top open the item in a new editor.
  • 51447: IDE » Scripting: Export of localizable values is scriptable using IDE scripting syntax
  • 40124: IDE » Xojo Cloud » Statistics: Xojo Cloud Statistics are now available in the IDE.
  • Docs and Examples:
  • 40065: Documentation: Improved Operator_Convert notes and sample code: http://developer.xojo.com/operator-overloading$Operator_Convert
  • 50735: Documentation: Updated comment and formatting for String.LTrim sample code.
  • 50784: Documentation: Updated ComboBox docs to indicate the height on Windows is controlled by the font size.
  • 50829: Documentation: Updated TextArea.Styled and StyledText properties to better note that Windows/Mac are always styled.
  • 51013: Documentation: Fixed sample code usage of RandomInt on While…Wend page.
  • 51295: Documentation: Added clarification to pages for Window.SetFocus and ClearFocus.
  • 51334: Documentation: System Requirements now note that OS X 10.9 is deprecated.
  • 51375: Documentation: Updated Serial doc pages to note that you have to call Reset/Open after changing properties in order for them to take effect.
  • 51454: Documentation: Equals doc page now has a related link to StrComp.
  • 51466: Documentation: Fixed typo on TargetConsole entry.
  • 50760: Documentation » Miscellaneous: Updated iOS device and App Store deployment docs for Xcode 9.
  • 50607: Examples: Reporting examples now properly find the database when run before saving the project.
  • 51031: Examples: Added missing localization string for SearchLabel to Eddie’s Electronics desktop project.
  • 12357: Language Reference » Documentation: Added several new ListBox pages to the User Guide: * http://developer.xojo.com/userguide/list-box-usage * http://developer.xojo.com/userguide/listbox-drag-and-drop * http://developer.xojo.com/userguide/list-box-hierarchical * http://developer.xojo.com/userguide/listbox-sourcelist
  • 25102: Language Reference » Documentation: Added several new ListBox pages to the User Guide: * http://developer.xojo.com/userguide/list-box-usage * http://developer.xojo.com/userguide/listbox-drag-and-drop * http://developer.xojo.com/userguide/list-box-hierarchical * http://developer.xojo.com/userguide/listbox-sourcelist
  • 49619: Language Reference » Documentation: Changed parameter on Writeable page to “text As String” to match what the IDE creates for you when you add the interface to a class.
  • 50161: Language Reference » Documentation: Removed duplicate line of code in RecordSet page example. Changed Dev Center page name to http://developer.xojo.com/recordset.
  • 50179: Language Reference » Documentation: OpenDialog.MultiSelect property no longer shows unnecessary platform limitations.
  • 50267: Language Reference » Documentation: IOException page now shows correct Xojo.IO.IOException name in the class summary.
  • 50506: Language Reference » Documentation: Classic TextInputStream sample code now has “t.Close” in a more useful place.
  • 50544: Language Reference » Documentation: On Conditional Compilation page Syntax section, #Else now appears after #ElseIf.
  • 50546: Language Reference » Documentation: Compiler Constants page (http://developer.xojo.com/compiler-constants) now groups things by type to make them easier to find.
  • 50547: Language Reference » Documentation: Fixed typo on Variant page.
  • 50609: Language Reference » Documentation: ReDim docs now use Redim to match IDE standardize format syntax.
  • 50898: Language Reference » Documentation: Fixed a typo in an example on the Redim page.
  • 51015: Language Reference » Documentation: StringShape.Text page now indicates you can display multiple lines.
  • 51268: Language Reference » Documentation: Added missing WebListBox.DataSource property and pages for DataSource and DataCell to Dev Center.
  • 51407: Language Reference » Documentation: Split page updated to remove out-of-date bug note.
  • 51469: Language Reference » Documentation: DragOverRow, and many others, no longer have duplicate entries.
  • 51477: Language Reference » Documentation: If operator link works as expected.
  • 51518: Language Reference » Documentation: Removed duplicate SelLength and SelStart properties on TextArea page.
  • 51594: Language Reference » Documentation: Thread.DebugIdentifier is now documented.
  • 51745: Language Reference » Documentation: Updated delegate page to point to Dev Center as intended.
  • 33 Docs and Examples

New in Xojo 2017 Release 3 (Dec 5, 2017)

  • Bug Fixes:
  • 49461: Build: Changes made to Launch Screens now properly appear when you run the iOS app.
  • 49680: Build: Building iOS applications now strips “detritus” off of provisioning profiles to avoid code signing errors.
  • 42815: Compiler: The Windows IDE can now properly link hundreds of classes when building for 64-bit Windows.
  • 49890: Compiler: Fixed a regression that caused failed assertions in the linkers due to invalid imports.
  • 49538: Crashes & Assertions » Crash: Fixed a crash with MemoryBlock.ColorValue under 64-bit that could happen when reading from the last 4 bytes of the MemoryBlock.
  • 49887: Crashes & Assertions » Crash: Importing an ICNS file no longer causes a crash.
  • 50241: Crashes & Assertions » Failed Assertion: Text projects checked on from one VCS on one OS to one using a different line ending can cause lots of blanks lines and subsequent reads of text projects to fail in odd ways. This case fixes a couple spots where this could occur so reading text projects is less vulnerable to odd check out issues from VCS systems.
  • 49355: Crashes & Assertions » IDE Unhandled Exception: Stopping a debug run no longer causes an nil object exception.
  • 49519: Crashes & Assertions » IDE Unhandled Exception: Dragging a second instance of a web dialog onto a web page no longer creates a control array initially.
  • 49847: Crashes & Assertions » IDE Unhandled Exception: The autosave when running a project in the debugger now uses less memory as the project is directly written to temporary files rather than first stored into memory blocks.
  • 50015: Crashes & Assertions » IDE Unhandled Exception: Autocomplete of Runtime exception no longer causes an exception in an IDE script Note that Runtime exception will NOT autocomplete either (which is by design for now)
  • 48190: Database Plugins: MySQLCommunityServer no longer crashes preparing a SQLStatement when the results contains a MediumInt column.
  • 49147: Debugger: Debug runs clean up correctly when ended.
  • 8813: Framework » All: Tooltips on macOS now hide correctly instead of persisting.
  • 42969: Framework » All: JSONItems with Circular References will now raise a JSONException with an error code 14 when serializing instead of a StackOverflowException in the middle of the framework code.
  • 48608: Framework » All: Returning True from DragEnter and DragOver now correctly prevents the drop.
  • 48841: Framework » All: JSONItem.Lookup now returns string values with the encoding set to UTF8 just as JSONItem.Value does.
  • 49026: Framework » All: Exceptions raised in a thread now call the app's UnhandledException event instead of silently ignoring it.
  • 49039: Framework » All: Overflow issue in profiler has been corrected. Incorrect calculation of percentage of run time in exported profile text files is obviously impacted and should be correct now.
  • 49311: Framework » All: Collapsing a ListBox row now sets the expanded state correctly before calling user code.
  • 49470: Framework » All: RGBSurface.Transform no longer affects alpha channel on Windows and Linux.
  • 49720: Framework » All: Fixed a spurious OutOfBoundsException with MemoryBlock.ColorValue on 64-bit when there are fewer than 8 bytes left in the MemoryBlock.
  • 49630: Framework » Linux: Picture.CopyColorChannels no longer aborts with an undefined symbol error for Console builds on Linux ARM.
  • 49632: Framework » Linux: Xojo.IO.FolderItem no longer crashes on iterating non-existent paths.
  • 50221: Framework » Linux: TextField center and right aligned text is now correctly offset.
  • 43004: Framework » Macintosh (Cocoa): ListBox help tags now function on 64-bit macOS.
  • 47605: Framework » Macintosh (Cocoa): Text on reports now draws properly for 64-bit apps.
  • 49310: Framework » Macintosh (Cocoa): Listbox ctrl+click and right-click on a hierarchical widget now behaves consistently when a contextual menu is presented.
  • 49672: Framework » Macintosh (Cocoa): The IDE no longer logs warnings about ignoring key bindings when running on macOS 10.12.
  • 33446: Framework » Web: WebTextField.AppendText now works properly when the field already contains text.
  • 39130: Framework » Web: WebMoviePlayer URLs are now trimmed before sending them to the browser.
  • 43452: Framework » Web: WebPopupmenu now get focus when SetFocus is called.
  • 43881: Framework » Web: Web Drag & Drop no longer raises an OutOfBoundsException if one of the origin coordinates couldn't be determined.
  • 45295: Framework » Web: WebCanvas no longer throws a JavaScript exception when included on a WebContainer that has been created but not yet embedded and the user zooms the browser view.
  • 45613: Framework » Web: Setting WebTimer.Visible no longer causes a javascript error.
  • 46179: Framework » Web: Non-Web controls placed on WebContainers no longer cause an IllegalCastException in the web framework.
  • 46965: Framework » Web: Non-Web controls placed on WebContainers no longer cause an IllegalCastException in the web framework.
  • 47820: Framework » Web: WebControl.HelpTag now correctly handles line endings.
  • 47866: Framework » Web: WebTextField.CueText is now correctly escaped.
  • 48987: Framework » Web: Setting a WebListbox.CellPicture to Nil no longer raises a NilObjectException.
  • 49719: Framework » Web: Session.LanguageCode now has its encoding set to ASCII instead of being Nil.
  • 49881: Framework » Web: Calling Session.Quit again disconnects browsers from your app.
  • 19616: Framework » Windows: Submenus can now be disabled when there are no child items.
  • 48799: Framework » Windows: Drag rectangles no longer look faded out depending on the size of the DragItem rect.
  • 49271: Framework » Windows: Assigning an empty string to the Clipboard now removes the Text clipboard format from the Windows clipboard so that other clipboard formats (like pictures) can be treated as the primary source.
  • 49330: Framework » Windows: Toolbar icons are now properly resized for the DPI scale.
  • 49332: Framework » Windows: Toolbar text captions now automatically adjusts their size when the DPI scale changes.
  • 49415: Framework » Windows: Xojo.Net.HTTPSocket requests on Windows that trigger AuthenticationRequired now properly clears the contents before a follow-up request is initiated with the correct authentication.
  • 49767: Framework » Windows: A control initiating a popup menu (or potentially other scenarios where a new window is displayed) now properly receives its MouseUp event.
  • 49183: IDE: Dragging IDE windows around behaves a lot better even with thousands of controls in a layout. Dragging IDE windows between screens may still see the pinwheel as the entire representation has to be rebuilt to account for resolution switches. Using container controls to limit the number of controls on a single window is still strongly encouraged.
  • 49048: IDE » Auto Complete: Extension methods in external modules now also autocomplete.
  • 49353: IDE » Auto Complete: Fixed a typo in the Syntax Help description for Variant.ColorValue.
  • 49932: IDE » AutoLayout: Property value “Todo” is no longer set on top and bottom constraints.
  • 17052: IDE » Code Editor: Altering the Inspector Behavior for classes that have instances on layouts get changes to the Inspector Behavior pushed to subclasses and instances on layouts. Note that this will not overwrite existing instances property values but any changes to Inspector Behavior visibility will be propagated.
  • 46838: IDE » Code Editor: Folding a block of code then deleting an empty line above using the “delete key” (not backspace) now works.
  • 48814: IDE » Code Editor: Automatic code reformatting takes effect when you click away from a line.
  • 48965: IDE » Code Editor: Syntax tip area resizes as gutter width changes for code editor line numbers.
  • 49566: IDE » Code Editor: Windows IDE code editor now refreshes properly after each key press.
  • 49712: IDE » Code Editor: Typing “declare sub” followed by a return no longer causes an exception when the code cleaner is on.
  • 50108: IDE » Debugger: Can debug to either a 32-bit or 64-bit stub.
  • 49718: IDE » Error & Warning Panel: Exception when copying from the error report has been fixed.
  • 49272: IDE » FileIO: Tab stops don’t come and go when saving a text project in some cases with control sets.
  • 50119: IDE » FileIO: Images export as expected and can subsequently be imported as well
  • 49001: IDE » Find & Replace: Search results are added to the tab history as you click through them so that back/forward work properly.
  • 49852: IDE » Find & Replace: Replacing the array size on an array property declaration no longer also adds a default value.
  • 49387: IDE » Inspector: Focus is retained in the property editor that caused the inspector to need to be rebuilt. This fixes a regression in r2 and 2.1
  • 49489: IDE » Inspector: When an item is not compatible with anything (all flags disabled) we write out "false" for the compatibility flags instead of a blank string which means "compatible with everything”.
  • 49526: IDE » Inspector: Renaming a delegate then collapsing the group row for delegates no longer erroneously results in the group row not being expandable.
  • 49563: IDE » Inspector: Switching from 32-bit to 64-bit display settings for structures immediately redisplays the structure with recomputed sizes.
  • 49588: IDE » Inspector: If the scope menu gets focus via the keyboard and you press shift-tab the focus now moves backwards.
  • 49614: IDE » Inspector: MenuBar selection in Inspector, such as from the App or Window object, no longer includes a useless separator on Windows.
  • 49675: IDE » Inspector: Controls that have a font setting panel in the inspector can now have the font size set. Also see related case 50221.
  • 49686: IDE » Inspector: Cue Text and Text properties appear in consistent group for WebTextField, WebTextArea and WebSearchField.
  • 49770: IDE » Inspector: You can now clear the iOS Entitlements field (in iOS Advanced Build Settings) if it had a value from previous versions. If it did not have a value, then this field is hidden as you should be using the Entitlement properties instead.
  • 50217: IDE » Inspector: The Windows-only setting that include runtime dlls has had its label shortened.
  • 48834: IDE » Layout Editor: External web containers no longer get dragged in at the wrong size.
  • 49358: IDE » Layout Editor: Using the Browse item the iOS Tab Layout dialog and the SegmentedControl editors for iOS and desktop works now properly loads an Image.
  • 49438: IDE » Layout Editor: Containers draw themselves properly when on another view and do not draw “unknown” icons for non-UI controls.
  • 50089: IDE » Layout Editor: Canvases with their backdrop property set to an image which is missing individual resolutions now render properly in the Layout Editor.
  • 49753: IDE » Library: Checked item in Library group selector is consistent with what group is actually showing.
  • 49755: IDE » Library: Group selector on Library no longer remains selected.
  • 49398: IDE » Licensing: Upgrade license dialog no longer cuts off the last words.
  • 37469: IDE » Menu Editor: If you create a menu item array in the IDE, the indexes of the items are set properly.
  • 48764: IDE » Miscellaneous: Closing the debug app tab no longer leaves another tab named the name of the app being debugged.
  • 48798: IDE » Miscellaneous: Project Choose window now remembers its position and size. It will position itself fully on a single screen if you drag it to be partially on two different screens.
  • 49043: IDE » Miscellaneous: Run Remote is now always enabled, regardless of the build settings.
  • 49105: IDE » Miscellaneous: Windows with a background image set now draw correctly in the Layout Editor when resized instead of leaving artifacts.
  • 49264: IDE » Miscellaneous: If an event definition with the name of the selected event already exists then you can’t create another.
  • 49323: IDE » Miscellaneous: IDE Script Editor updates scrollbars as the windows is resized.
  • 49444: IDE » Miscellaneous: Recent items menu has distinct portion of paths showing across ALL entries with files having the same name.
  • 49507: IDE » Miscellaneous: Progress dialog shows up on the same screen as the window that created it.
  • 49682: IDE » Miscellaneous: Image Sets can’t be made external since the items they contain already are external.
  • 49757: IDE » Miscellaneous: Clear field indicator shows up as soon as there is content.
  • 50485: IDE » Miscellaneous: Extra blank lines in property definitions are ignored correctly and no longer cause what appears to be project corruption.
  • 49192: IDE » Navigator: Fixed a graphical glitch in Filter field.
  • 49193: IDE » Navigator: Cancel button again appears when something is entered in the Navigator Filter field.
  • 49738: IDE » Navigator: Entering a period as the first or only character in the Navigator filter field no longer causes an exception.
  • 50155: IDE » Rendering: Undefined string constants, when used, no longer cause compilation to fail but are used as if they were the literal value (as desktop does).
  • 49260: IDE » Report Editor: Report controls honor locks, and save and restore properly.
  • 50068: IDE » Report Editor: Fonts on reports are the right size.
  • 49623: IDE » Scripting: IDE Script Editor window uses the same kind and size of toolbar as the main window.
  • 13860: IDE » Style Editor: Web style editor now fully supports undo and redo.
  • 41065: IDE » Web Page Editor: Changes to web check boxes, web list boxes, web text controls and web pop up menus using the layout editor inline editors are done as actions so they can be undone.
  • 49828: Lingua: Lingua no longer scrolls back to the top of the list when the list is scrolled down and a row is selected when only non-localized strings are shown.
  • 47382: Remote Debugger Stub: 64-bit and ARM Console debuggers are now included.
  • 48869: Remote Debugger Stub: Linux Remote Debugger Stub is now built with 2017r2.1.
  • 50122: Remote Debugger Stub: Mac and Linux 64-Bit Debugger Stubs save preferences again.
  • 50192: Remote Debugger Stub: Unnecessary edit copy sub menu removed.
  • Changes:
  • 49462: Database Plugins: Updated SQLiteDatabase plugin to SQLite 3.20.1.
  • 49625: Debugger: Xcode 9 is now supported for building and debugging iOS applications.
  • 40987: Framework » All: Framework has been updated to use OpenSSL 1.1.0e.
  • 49678: Framework » All: Framework has been updated to use Crypto++ 5.6.5.
  • 50092: Framework » All: AutoDiscovery, EasyTCPSocket, EasyUDPSocket events and methods now use Int32 for command parameters for compatibility with 64-bit.
  • 49756: Framework » Web: App.HandleURL and App.HandleSpecialURL now have the Connection: close header set.
  • 43702: Framework » Windows: Windows 8.1 and Windows 10 are included in the Windows manifest file.
  • 50275: IDE: iOS plist entry for UIRequiredDeviceCapabilities specifies arm64.
  • 48951: IDE » AutoLayout: Autolayout rule editor has a priority column for easier viewing of rules.
  • 49350: IDE » Build Automation: Build Target Script Steps has line number toggle.
  • 50306: IDE » Build Automation: When controlling the IDE using the IDECommunicator, the IDE will no longer show a dialog when the SaveFile command is issued if the IDE version is older than the project version.
  • 45050: IDE » Code Editor: Code editor highlights matching blocks by drawing their “block matching lines” in blue and slightly fatter than the rest of the block matching lines.
  • 48464: IDE » FileIO: The IDE now renames and deletes any obsolete files in text projects. This will: - rename the items (folders and files) - remove all the files - try and remove all the folders if they have been completely emptied (there are no user added items in the folder, such as ones they added from the Finder) - otherwise this will leave the renamed folder in place - write the items and all subitems in the new location
  • 50291: IDE » Inspector: iOS devices are now grouped by iOS version and sorted alphabetically by device name in the Simulator Device menu.
  • 49496: IDE » Language Reference: The IDE now creates a unique folder for the temporary files needed for the LR and cleans it up on quit.
  • 49136: IDE » Miscellaneous: LSMinimumSystemVersion is written as 3 numeric parts as Apple indicates.
  • 49340: IDE » Miscellaneous: IDE logging now prefixes items with [Xojo] instead of [RB].
  • 49840: IDE » Miscellaneous: When projects have the same names the recent menu item will contain the part of the path that differ so it’s easier to distinguish which one is which.
  • 48942: IDE » Picture Previewer: The first picture added to a new Image Set is also checked for being 72 PPI and consistent PPI horizontally and vertically as the other elements are.
  • 49313: IDE » Rendering: Can name a regular method “the same” as what an event handler name would have been and no longer get compilation failures.
  • 40915: IDE » Structure Editor: Projects from older IDEs that do not have a structure alignment attribute set will automatically get one added so they retain their old behavior when the compiler switches to natural alignment by default.
  • 47787: Installer: Windows uninstaller now deletes folders created in the user's AppDataRoaming directory.
  • 49168: Installer: Plugins, Templates and Scripts folders are now made user writable by the Windows installer.
  • 49829: Lingua: Searching for a localization string by constant will now match partial strings.
  • 50198: Miscellaneous: Ptr.Class no longer autocompletes as it is a remnant of a feature never released.
  • 48542: Remote Debugger Stub: The 32-Bit macOS Desktop Debugger Stub has been removed as our supported macOS targets are now all 64-Bit. You can still debug 32-bit apps using the 64-bit Desktop Debugger Stub.
  • 49991: Remote Debugger Stub: Desktop and Console Debugger stubs have been rebuilt with 2017r2.1 resulting in a speed boost.
  • New Items:
  • 47951: Framework » Web: WebTextArea now has a CueText property which displays on all supported browsers except IE9 (because it's not supported).
  • 48641: IDE » Miscellaneous: Windows 64-bit desktop apps now display manifest settings in the Windows Build Settings (Advanced tab) for allowed Windows versions and user privileges. Windows: Set the specific versions of Windows your app supports. All are selected by default. Run As: The default is “Invoker”. You can also set to “Highest Available” or “Administrator” if you app requires additional permissions, such as to access the firewall or install a service.
  • 11187: Lingua: Added a Scripting folder so that users can use XojoScript for manipulating translated text. The available context methods are: DefaultText (Read-only) contains the default text for the current constant, TranslatedText (Read/Write) contains the translated text for the current constant, ShowDialog is implemented identically to the IDEScripting version.
  • 41210: XojoScript: XojoScript is now available in ARM builds.
  • Docs and Examples:
  • 42089: Documentation: HTMLViewer.UserAgent page now notes that changing the property has no effect on Windows with the WebKit renderer.
  • 44232: Documentation: Added PostgreSQLDatabase.AppName property to docs.
  • 47635: Documentation: ListBox.ColumnCount page now shows correct maximum of 256.
  • 49716: Documentation: Fixed a code error in User Guide UDP topic: http://developer.xojo.com/userguide/udp-communications
  • 49734: Documentation: Clarified sample code on Raise doc page.
  • 50186: Documentation: Wiki sidebar Migrating to Xojo Framework link updated.
  • 48948: Documentation » Miscellaneous: Improved formatting of User Guide pages. Added Prev/Next links to the bottom of each page. Added table of contents to top of pages in desktop browsers with a link to generate PDF for the page. On mobile browsers, the table of contents is hidden.
  • 49266: Documentation » Miscellaneous: The SQLiteBackup example now finds the DB on macOS when it is run before the project is saved.
  • 29699: Documentation » User's Guide: Subclassing Controls page in User Guide now describes how property values get set for subclassed controls (http://developer.xojo.com/userguide/desktop-custom-controls).
  • 47803: Documentation » User's Guide: User Guide Layout Editor page now mentions control parenting that occurs when you drag one control onto another.
  • 48891: Examples: Text sent in SimpleChat example project is now properly encoded so it displays correctly when chatting between Windows and Mac.
  • 49195: Examples: EmailSSLExample updated to use TLSv1.
  • 49263: Examples: Examples/Communication/Internet/YouTube now uses WebKit renderer so that the videos display and play properly.
  • 49285: Examples: Examples/Desktop/Controls/ListBox/ListBoxOverOnEvents added to demonstrate ListBox.DragOverRow, DropObjectOnRow events and ShowDropIndicator property.
  • 49294: Examples: Examples/Advanced/Declares/WindowOpacity now works for macOS 64-bit and Linux GTK3.
  • 49305: Examples: Examples/Desktop/ContainerControls/TabbedWebBrowser now properly closes browser tabs.
  • 49314: Examples: Examples/Platform-Specific/Linux/GetDefaultControlSize now works with GTK+ 3 and 64-bit.
  • 49322: Examples: Examples/Platform-Specific/Windows/CommandLink updated for HiDPI and 64-bit.
  • 49498: Examples: Added Examples/iOS/Declares/TextFieldBorder to show how to remove/change an iOSTextField border.
  • 49520: Examples: File->Close now also closes the Window in addition to removing it from the Recent Items (Examples/Desktop/Menus/WindowMenu ).
  • 50383: Examples: Fixed typo in FileBrowser example.
  • 46561: Language Reference » Documentation: Read-only properties now appear in Italic for all new Dev Center pages.
  • 47971: Language Reference » Documentation: Added Len and LenB functions to String page.
  • 48006: Language Reference » Documentation: Updated markup for #If…#Endif page so that it gets imported into built-in LR.
  • 48715: Language Reference » Documentation: For ListBox.HeadingIndex, removed “obsolete” note since this property is still useful.
  • 48767: Language Reference » Documentation: Added DragItem.MacData and MacDataAvailable to the Deprecations page as they’ve been deprecated since 2005r1.
  • 49113: Language Reference » Documentation: XojoScript.CompilerError and CompilerWarning pages now link to appropriate Scripting Errors and Scripting Warning pages in Dev Center.
  • 49118: Language Reference » Documentation: UnsupportedFormatException page now has correct Name in Class Summary.
  • 49232: Language Reference » Documentation: Added back the SSLv23 constant to SSLSocket, SSLSocket.ConnectionType and WebApplication.Security pages.
  • 49239: Language Reference » Documentation: Fixed typo on Dev Center Xojo.Core page (essentiall should be essentially).
  • 49256: Language Reference » Documentation: Gmail note on SMTPSocket now refers you to SMTPSecureSocket.
  • 49396: Language Reference » Documentation: Added “unix time” and “timestamp” to the search index so that they display the Xojo.Core.Date page in search results.
  • 49397: Language Reference » Documentation: Added link to docs for FieldType values for GasReport and ListBoxReport examples.
  • 49687: Language Reference » Documentation: Fixed typo on PopUpMenu.Change event page.
  • 50145: Language Reference » Documentation: The link for FolderItem.MacFSRef is no longer duplicated and works properly.

New in Xojo 2017 Release 2.1 (Sep 14, 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.
  • 49196: Framework » Linux: Dragging a DragItem over a recipient that does not accept the drop no longer crashes.
  • 49215: Framework » Linux: Linux IDE no longer crashes when TextArea or ComboBox controls are on the layout editor.
  • 49414: Framework » Linux: Fixed placement of DisclosureTriangle, ImageWell, ProgressWheel, and SegmentedControl on a non-Transparent ContainerControl
  • 49442: Framework » Linux: FillColor no longer returns a completely Transparent color on some distros.
  • 49478: Framework » Linux: Custom Mouse cursors (i.e. mouse cursors that are dragged into the project) no longer causes application to crash.
  • 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.
  • 49080: IDE » Miscellaneous: Exception when opening run remote setup no longer occurs on Linux.
  • 49253: IDE » Structure Editor: Structure editor switch shows as expected.

New in Xojo 2017 Release 2 (Sep 14, 2017)

  • Highlights:
  • 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.1 (Apr 25, 2017)

  • Bug Fixes:
  • Crashes & Assertions » IDE Unhandled Exception - IDE no longer generates an exception when reloading certain state data in iOS projects.
  • Crashes & Assertions » IDE Unhandled Exception - Navigating to “build” step then to another item and moving back no longer causes an exception.
  • IDE » Layout Editor - Duplicating an instance of a container control no longer creates an invalid control set. Controls sets of containers are not supported on desktop or iOS projects.
  • New Items:
  • IDE » Scripting - Line number toggle works in IDE scripts.

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

  • Highlights:
  • 64-bit debugging for macOS and Linux
  • Remote debugging to Raspberry Pi
  • Improved printing support on Windows (now using Direct2D)
  • Improved Xojo.Net.HTTPSocket on Windows
  • Code Editor improvements, such as more automatic code formatting, optional line number display and improved tab handling
  • Menu shortcut editor allows you to 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
  • Bug Fixes:
  • 45948: Build: IDE no longer mistakenly reports a build error when you try to build an already running project.
  • 45598: Compiler: The compiler now reports the correct error when properties have non-constant default values.
  • 45902: Compiler: Fixed an assertion in the compiler when the number of plugin methods was abnormally high.
  • 45920: Compiler: Passing in a non-Nil base object when calling a shared method via MethodInfo.Invoke no longer causes the application to crash.
  • 39072: Crashes & Assertions » Crash: Multiline literal values in web controls that start with a # no longer cause compiler error.
  • 46490: Crashes & Assertions » Failed Assertion: Relative paths in the destination directory of a Copy File Step no longer cause issues with its execution.
  • 46905: Crashes & Assertions » Failed Assertion: Made it so you cannot drag the sign step outside the iOS Build Step list and that it won’t save one that is outside this list. Also if you happen to have project with these symptoms you can delete the extra ones outside the build step list.
  • 45622: Crashes & Assertions » IDE Unhandled Exception: An unhandled OutOfBoundsException that could happen when reopening a project has been fixed.
  • 45624: Crashes & Assertions » IDE Unhandled Exception: An exception that could occur when closing the project window when the autocomplete popup is showing has been fixed.
  • 46054: Crashes & Assertions » IDE Unhandled Exception: Layout Contraint rules that refer to non-existent controls no longer cause exceptions in the IDE.
  • 46258: Crashes & Assertions » IDE Unhandled Exception: Fixed a NilObjectException that could arise when undoing the creation of a new web control.
  • 46322: Crashes & Assertions » IDE Unhandled Exception: Undoing the addition of a web control to a layout no longer causes an exception.
  • 46538: Crashes & Assertions » IDE Unhandled Exception: Fixed a situation where a malformed report could cause an OutOfBoundsException.
  • 46957: Crashes & Assertions » IDE Unhandled Exception: Exception caused by dropping an ICNS file onto the icon pane in a File Type Set has been fixed.
  • 47090: Crashes & Assertions » IDE Unhandled Exception: Renaming one overload on one tab no longer causes an exception when you have the same item revealed in multiple tabs Note there is a refresh issue on the other tabs reported in case #47116.
  • 47273: Crashes & Assertions » IDE Unhandled Exception: Filtering the Navigator and then deleting an item no longer continues to show that deleted item.
  • 46310: Debugger: Naming a class “Decimal” no longer results in an instance that is not viewable in the debugger.
  • 1705: Framework » All: Listbox contextual-clicks over selected items no longer deselect the items.
  • 12551: Framework » All: Updated AutoDiscovery.SendMessageToGroup page to indicate that the group must first be registered.
  • 46268: Framework » All: Windows SegmentedControl now draws properly for 64-bit builds.
  • 46297: Framework » All: Listbox RowPicture no longer looks blurred.
  • 46455: Framework » All: RGBSurface.FloodFill now works properly for 64-bit builds.
  • 46700: Framework » All: The constructor for DatabaseField should not have been public and no longer is. You now get a suitable compilation error if you try to use it.
  • 44931: Framework » Linux: Linux restores project windows and floating palettes properly. Note that UI State data is NOT rewritten if there are no changes in any project type, so simply moving palettes and making no other changes will not be preserved.
  • 31208: Framework » Web: Using Me in a WebToolbar event refers to the toolbar as you’d expect.
  • 45753: Framework » Web: IDE no longer breaks into the debugger if an exception occurs while destroying a WebGraphics instance with pictures attached.
  • 45901: Framework » Web: Framework properties (like _DeclareLineRendered) are no longer searched or reported as part of search results.
  • 45949: Framework » Web: HandleSpecialURL and HandleURL clients which disconnect early no longer leave a thread waiting for the socket to finish sending data.
  • 46000: Framework » Web: Setting the Text property of a WebSearchField now works properly on Firefox and Chrome.
  • 46093: Framework » Web: Fixed a regression which caused WebImageVIew pictures set by URL to not show at runtime.
  • 46355: Framework » Web: Having a WebTimer on a page no longer affects the behavior of other controls when the Action event fires.
  • 46440: Framework » Web: WebMapViewer now supports use of an API Key. See https://developers.google.com/maps/documentation/javascript/get-api-key for more information.
  • 46573: Framework » Web: WebDeviceLocation no longer shows the DropObject event.
  • 47064: Framework » Web: Using the abbreviated name for a property type works as expected.
  • 47375: Framework » Web: Images in WebImageViews which are loaded from URLs no longer have the browser's scalefactor applied.
  • 38786: Framework » Windows: Listbox checkbox tick is now visible with High Contrast themes.
  • 41355: Framework » Windows: HTMLViewer that uses the WebKit renderer now works on 64-bit Windows builds instead of raising an exception.
  • 42110: Framework » Windows: On Windows, the System.Log now correctly reports the application name in the source field.
  • 42596: Framework » Windows: Xojo.Net.HTTPSocket events are now called when HTTPSocket is created on a thread.
  • 43862: Framework » Windows: Window MDI applications now work for 64-bit builds.
  • 44886: Framework » Windows: On Windows, Xojo.Net.HTTPSocket PageReceived event now receives content for 401 HTTP status code.
  • 45829: Framework » Windows: RuntimeException is now raised when Windows exceeds its resource limit when creating timers.
  • 46166: Framework » Windows: BevelButton caption on Windows now respects the Point size instead of always treating the size as pixels.
  • 46178: Framework » Windows: Now positions the BevelButton popup menu correctly for HiDPI.
  • 46218: Framework » Windows: Updated printing code to use the latest Direct2D printing APIs. This improves text rendering and drawing so it no longer looks pixelated.
  • 46219: Framework » Windows: Print margins are now respected for all printer devices.
  • 46284: Framework » Windows: On Windows, MouseCursors constructed from an ImageSet now correctly displays the best cursor in HiDPI mode.
  • 46285: Framework » Windows: On Windows, Graphics.Transparency now works correctly. Before it would require a color change to be set before the Transparency would take effect.
  • 46300: Framework » Windows: On Windows, constructing a new MouseCursor with a custom Picture that has white Transparent set now correctly masks out the white transparent bits.
  • 46406: Framework » Windows: Listbox thin dotted horizontal grid lines no longer show as a solid grey line.
  • 46416: Framework » Windows: On Windows, Sheet windows are now window modal instead of app modal, this aligns with the behavior of Sheet Windows on macOS.
  • 46534: Framework » Windows: Windows now disposes of Timer resources sooner so that in tight loops these will be freed, without having to invoke the event loop, when adjusting the Timer mode/period.
  • 46709: Framework » Windows: Fixed some incorrect font metric calculations which made DrawString not draw on the baseline consistently. This change affects the Graphics text metric calculations such as TextAscent, and TextHeight.
  • 46716: Framework » Windows: Made masking system work the same as before, i.e. we look at the “Red” byte of the Mask to determine masking behavior.
  • 46768: Framework » Windows: On Windows/Linux, built desktop apps missing plugin libraries now raises an error dialog before quitting.
  • 46989: Framework » Windows: Images with a resolution of 96PPI are now loaded properly instead of being incorrectly converted to 72PPI.
  • 47074: Framework » Windows: Graphics.StringHeight no longer crashes when a WrapWidth < 0 is specified.
  • 47196: Framework » Windows: StringShape and PixmapShape rotation on a non-double buffered Canvas now rotates around the center point correctly.
  • 47258: Framework » Windows: Non-transparent Labels on a parent control (like Canvas, ContainerControl or GroupBox) that sits on a TabPanel now correctly erases its background when the Text caption changes.
  • 47379: Framework » Windows: Multiline StringShapes now draw with the correct alignment.
  • 46914: Framework » iOS: iOS app store builds work with Xcode 8.3.
  • 39338: IDE: Duplicating a constant results in a new row with the proper text in it.
  • 45343: IDE: The iOS Build For App Store setting is now saved like every other project property.
  • 45755: IDE: Minimize of the resolve issues dialog has been disabled.
  • 45766: IDE: If you start loading a project and close the last open project window the IDE no longer quits (as it’s opening a new project to work on).
  • 45767: IDE: Rows refresh in the Image Set Editor as soon as you add an item.
  • 46712: IDE: Buttons on “Saving will lose data dialog” are not clipped on Windows.
  • 26616: IDE » Auto Complete: PathTypeNative icon in autocomplete shows as other path type constant values (as an integer).
  • 33138: IDE » Auto Complete: Only unique entries are shown in the autocomplete popup for code completion.
  • 36966: IDE » AutoLayout: Fixed a situation where an Auto-Layout constraint was not properly using Std Gap from Left.
  • 46679: IDE » Build Automation: Copy file steps copy the symlinks in a framework (rather than the target of the sym link).
  • 31894: IDE » Code Editor: Encodebase64 / DeccodeBase64, EncodeQuotedPrintable / DecodeQuotedPrintable, EncodeURLComponent / DecodeURLComponent, MD5 now all show code tips again.
  • 46018: IDE » Code Editor: Shift-return closes continued if then else statements as expected.
  • 46201: IDE » Code Editor: Made it so that if you paste at the beginning of a line an LTrim is done. If you paste mid-line, then no trim is done.
  • 46913: IDE » Code Editor: Xojo namespace completes as UpperCamelCase.
  • 46935: IDE » Code Editor: Clipboard text is indented using spaces not tabs.
  • 47300: IDE » Code Editor: Creating a method using the extract method assistant properly honors the setting in the dialog and does not just adopt the last scope that was used.
  • 42699: IDE » FileTypes Editor: Explanatory text now uses System font instead of SmallSystem.
  • 46336: IDE » FileTypes Editor: File Type Set DisplayName property no longer rejects keyword names.
  • 46442: IDE » FileTypes Editor: Editing a File Type Set properly show the project as having unsaved changed.
  • 32471: IDE » Inspector: Select All (cmd-A or Ctrl-A) when in the Font name field of the Inspector no longer selects every item on the layout.
  • 34891: IDE » Inspector: Descenders in Inspector group titles are no longer clipped.
  • 40536: IDE » Inspector: MenuBarVisible is now in a Deprecated Group on the Advanced tab for Windows.
  • 45434: IDE » Inspector: Position fields (top, left, width and height) no longer end up using “multiple” as part of the field value when several items are selected and edited.
  • 45496: IDE » Inspector: Unwanted ellipsis characters are not retained when creating the method signature.
  • 45603: IDE » Inspector: Editing a method signature works a lot better on Linux than it used to
  • 45865: IDE » Inspector: Enumerations, Notes, Structures and Using Clauses now select their full name in the Inspector when you add one.
  • 46073: IDE » Inspector: A class instance dragged to a layout no longer has the “Interfaces” item in the inspector since you cant actually add an interfaces to such a thing.
  • 46465: IDE » Inspector: Control Set editor shows control set index on Linux (as it already did on Windows/Mac).
  • 46496: IDE » Inspector: Case changes of declarations in the property inspector are no longer rejected.
  • 46632: IDE » Inspector: Controls are converted to a Control Set in a sensible order.
  • 46801: IDE » Inspector: Tab order when editing properties, methods, event declarations, etc. no longer sometimes gets lost.
  • 45749: IDE » Language Reference: Help topics now go to the right location when using the online references.
  • 46207: IDE » Language Reference: Removed duplicates class method entries.
  • 46209: IDE » Language Reference: Updated offline Reference Guide with latest content.
  • 46563: IDE » Language Reference: Local LR shows “lock” icons on read only items.
  • 46686: IDE » Language Reference: Links to Integer (Size-Specific) page now work.
  • 46734: IDE » Language Reference: Get and GetHeaders links on HTTPSocket are now working.
  • 36171: IDE » Layout Editor: You can now copy a control set if you select the set itself.
  • 43368: IDE » Layout Editor: WebPopup text in popover editor is no longer too small.
  • 46449: IDE » Layout Editor: In a ListBox, the InitialValue gets used as the column headings when HasHeading is True.
  • 47010: IDE » Layout Editor: Instances of toolbars (not instances of subclasses of toolbars) show in the tray area.
  • 45717: IDE » Library: In a web project, dragging a Thread object from the Library now results in an object that inherits from WebThread instead of just Thread.
  • 46337: IDE » Library: The icon in the explanation area of the Library is now high-res on Windows.
  • 46969: IDE » Menu Editor: Menu editor no longer requires 2 clicks to select the first item.
  • 46764: IDE » Menu Shortcut Editor: Warning icons are not cut off.
  • 11934: IDE » Miscellaneous: Floating palettes open at the size you left them.
  • 25785: IDE » Miscellaneous: Strings no longer get clipped on preferences panes on Linux.
  • 30078: IDE » Miscellaneous: Constant Inspector uses a switch control to enable a Dynamic Constant.
  • 30841: IDE » Miscellaneous: Text in editor name fields are selected when they are opened.
  • 31313: IDE » Miscellaneous: If you Cancel when not using builds folders, and the IDE proposes to finish the build by moving the built app + all ancillary files next to the project, this will be skipped and the built app will be deleted thereby “cancelling” the build.
  • 31596: IDE » Miscellaneous: Fixed some minor cosmetic layout issues with the Xojo Update window.
  • 31805: IDE » Miscellaneous: IDE Scripts do not open with the unsaved changes indicator appearing as set.
  • 32139: IDE » Miscellaneous: SegmentedControl that got into a bad state now loads and does not cause errors when run. Subsequent edits fix the control.
  • 32737: IDE » Miscellaneous: Removed the Alt-L accelerator from the Classic Language Reference menu item.
  • 34284: IDE » Miscellaneous: Comment command bar item hides in appropriate situations.
  • 34992: IDE » Miscellaneous: Dragging a class and a Window together into a module now is properly rejected and no longer causes an exception (Windows cannot be contained in Modules).
  • 35146: IDE » Miscellaneous: A copy file step that tries to copy to an illegal location will now cancel the build and report which step failed to run properly.
  • 36824: IDE » Miscellaneous: A Boolean constant with no default value set is treated as though it is set to false.
  • 38307: IDE » Miscellaneous: If you move an open project, the IDE now displays an error dialog (instead of previously causing an unhandled exception). This mostly affects Windows and Linux.
  • 40117: IDE » Miscellaneous: Run/Break/Analyze etc will show up in what ever workspace is/was front most.
  • 40165: IDE » Miscellaneous: Define Missing Method no longer messes up array parameters. It used to create them as “param as type()”, but now it now creates “param() as type”.
  • 42606: IDE » Miscellaneous: IDE checks that the name of the app being run / built does not contain characters that would make the app not run.
  • 45804: IDE » Miscellaneous: Build for OS X is not checked when the framework is updated from Carbon to Cocoa. You could see this had happened if you opened and old project that may have had its framework set to Carbon and opened it in a new IDE and opened a new tab.
  • 45813: IDE » Miscellaneous: If the IDE has the modal File Open dialog open and you try to then drag a project onto the IDE it will beep and refuse to allow the drag in order to avoid a possible deadlock that can happen with modal dialogs.
  • 45921: IDE » Miscellaneous: Saving as text projects no longer continue to warn about skipped items once you save once Note this has no effect on IDE’s older than this version
  • 46176: IDE » Miscellaneous: Custom menu item subclasses save and restore custom property values.
  • 46188: IDE » Miscellaneous: SegmentedControls can be set in the tab order.
  • 46216: IDE » Miscellaneous: Duplication of using clauses now works.
  • 46240: IDE » Miscellaneous: Closing a window with the debugger in it reset the run / build toolbar button on other windows.
  • 46277: IDE » Miscellaneous: Made Preferences window on Windows wider.
  • 46307: IDE » Miscellaneous: Undoing the cut of a using clause now works.
  • 46403: IDE » Miscellaneous: If for some reason the Language Reference cannot write out the resources it needs to show a page then it displays an error dialog rather than causing an unhandled exception.
  • 46457: IDE » Miscellaneous: Corrected “jitter” that could occur when reloading a project.
  • 46469: IDE » Miscellaneous: Closing the Update panel when a download is in progress no longer causes an exception.
  • 46523: IDE » Miscellaneous: Reloading a project no longer reloads with a window set to smaller than the minimum sizes.
  • 46560: IDE » Miscellaneous: Selecting a computed property + its getter/setter and deleting them no longer causes an exception.
  • 46661: IDE » Miscellaneous: Ctrl-Shift-T is not used twice as a menu shortcut in the Windows IDE any more.
  • 46763: IDE » Miscellaneous: Corrected case of labels on Preferences window.
  • 47106: IDE » Miscellaneous: In the Debugging Preferences, the Add sheet window no longer attaches itself to floating palettes when they are enabled for Library/Inspector.
  • 35852: IDE » Navigator: Convert to computed and undoing it both leave the selection in the right place.
  • 37527: IDE » Navigator: Pressing delete on the row that has the name of a group of overloaded methods removes all of the methods at once regardless of whether the row is expanded or not.
  • 40037: IDE » Navigator: You can now click on the Event Handlers heading to copy a Control Set.
  • 41601: IDE » Navigator: Pressing delete on the Event Handlers row of a control set removes the event handlers and no longer causes an exception.
  • 45535: IDE » Navigator: Delegates remain grouped in the same manner as overloaded methods.
  • 46122: IDE » Navigator: Selecting a container type, like a folder, and some or all of its contents will not longer take the contents and move them outside the container.
  • 46295: IDE » Navigator: Fixed the top nav canvas item when the project item is selected You get a list of things that can be inserted into the project when you right click
  • 46387: IDE » Navigator: Make it so rows retain the proper badged icon when you alter attributes (add or remove would actually do this).
  • 46554: IDE » Navigator: Jump bar enables / disables and redraws when tabs are locked / unlocked.
  • 46612: IDE » Navigator: Right click on the “Classes” row in a module allows you to add both Classes and Interfaces.
  • 46631: IDE » Navigator: Fixed an issue when duplicating properties that makes it appear that they are all uniquely named but when you reload the project you may have properties with duplicate names.
  • 46971: IDE » Navigator: Selecting items when the Navigator is scrolled slightly now works correctly.
  • 47116: IDE » Navigator: Renaming a method on one tab refreshes other tabs with new overload groups as needed.
  • 47130: IDE » Rendering: Pictures with masks applied using other project items no longer cause exception when run in HiDPI mode.
  • 39636: IDE » Scripting: XojoScript files are listed first in dialog filter when selecting an External Build Script to add.
  • 47188: IDE » Updater: Updating from the IDE works as expected and downloads and mounts the DMG on Mac.
  • 45740: IDE » Warnings Panel: Analysis warning panel opens at a better size so you can see the entires and doesn’t let you shrink it down to nothingness.
  • 46736: IDE » Web Page Editor: Changes to web labels and web check boxes cause the document to be marked as changed.
  • 46911: IDE » Web Page Editor: No longer crashes the IDE when the number of columns would result in very small widths for columns.
  • 37714: IDE » Window Editor: Switching small tabs on / off changes their appearance in the Layout Editor.
  • 46501: Introspection: Accessing the type of a property via introspection no longer raises an exception when the type is a delegate.
  • 46730: Plugin SDK: On Windows, Graphics.DrawPicture now correctly respects the graphics origin offsets (which only get modified by plugin controls).
  • 43460: Remote Debugger Stub: Windows IDE no longer crashes when remote debug app is stopped in the IDE.
  • 47102: Remote Debugger Stub: Remote Debugger Desktop no longer has an extra blank menu to the left of the File menu.
  • Changes:
  • 46557: Framework » All: Added DragItem.MoveFirst so you can move to the first item of a DragItem so that you can repeatedly iterate through a DragItem that contains multiple items.
  • 46575: Framework » All: Listbox now has a new event to customize the disclosure widget: Event Listbox.DisclosureWidgetPaint(g As Graphics, row As Integer, ByRef x As Integer, ByRef y As Integer, ByRef width As Integer, ByRef height As Integer) As Boolean Invoked for hierarchical ListBoxes when the framework needs to draw the disclosure triangle for a folder row. This is invoked after CellBackgroundPaint and before CellTextPaint. The x, y, width and height parameters: • Default to the coordinates for drawing the built-in widget • These coordinates are also used for hit testing to determine if a mouse down should toggle the row's expanded state. • Are ByRef so the user can specify the location of the rectangle used for hit testing when drawing their own widget, if for instance the hit area is smaller than the drawn widget. • Setting width or height to zero will completely hide the triangle and no hit testing will be done. • Returning False causes the framework widget to be drawn. • Returning True prevents the framework from drawing its own disclosure widget, signaling that the event has performed all of the necessary drawing. • Changing the Width parameter will offset the graphic object that is provided in the following CellTextPaint event by the same offset. i.e. if the supplied Width is 10, but the code changes it to 5 the graphic object in the CellTextPaint event would be offset by 5 pixels to the left.
  • 45204: Framework » Web: You can now enclose text in tags in the App.DisconnectMessage property to send unparsed HTML to the page.
  • 45815: Framework » Web: Web apps deployed to Xojo Cloud now only listen on localhost.
  • 45909: Framework » Windows: Updated printing to use the latest Direct2D printing APIs (this improves text rendering and drawing), but requires Windows 7 with Platform Updates, otherwise it falls back to the old implementation of printing everything as one big picture.
  • 46060: Framework » Windows: HTMLViewer now uses CEF3 when WebKit is selected as the renderer (Windows).
  • 46215: IDE: When creating a new desktop project on Windows, the Supports HiDPI setting is enabled by default.
  • 46227: IDE: Images in the Image Set Editor draw using their original aspect ratio.
  • 46346: IDE: Compile errors which resulted in dialogs are now correctly routed back to the IDECommunicator when using IDE Build Automation.
  • 45550: IDE » AutoLayout: Autolayout rule list shows names if they are present.
  • 21309: IDE » Code Editor: Made it so if you drag an external item into the code editor that path to that external item is typed in.
  • 37846: IDE » Code Editor: The tip at the bottom of the code editor will, when you are over a break point marker give an appropriate tip about toggling the break point on or off.
  • 33960: IDE » Inspector: Properties that are arrays will permit either a blank default OR NIL (both of which are perfectly legal for arrays. Any other value will be refused and a suitable warning shown.
  • 45642: IDE » Inspector: The List of iOS controls a constraint can be relative to is now sorted.
  • 46453: IDE » Inspector: Tabbing out of the method editor signature panes puts focus in the code editor. On Windows and Linux since the scope popup can get focus it will always be after tabbing out of the scope popup. On macOS this may be tabbing out of the scope popup (if full keyboard access is on) or from the return type field (if full keyboard access is off).
  • 46682: IDE » Language Reference: The Find command short cut returns focus to the filter field in the Doc Viewer. CueText is set to “filter” which is consistent with navigator (and more descriptive of what it does).
  • 34430: IDE » Layout Editor: Controls draw disabled when not enabled (they lighten by 35%).
  • 45897: IDE » Layout Editor: Made it so that when you subclass a control then any text font and text size set in Inspector Behavior will be used rather than overwritten by the Xojo Layout Preferences font values. Note that this does alter normal behavior and that the subclassed value basically has to be overridden in the Inspector Behavior as it will never be overridden by the preferences values.
  • 46514: IDE » Layout Editor: iOS project now refer to devices by size and not specific iPhone models.
  • 2468: IDE » Miscellaneous: macOS ONLY - Alphas and betas will be badged in the dock.
  • 5252: IDE » Miscellaneous: Since the fonts “System” and “SmallSystem” imply a size when selected as the font for they will use “size 0” - their default size.
  • 7604: IDE » Miscellaneous: Duplicate functions in the menu editor to duplicate single items or entire menus.
  • 23929: IDE » Miscellaneous: Loading progress has a title that is “Loading Project” and the actual message on the window says which project is being loaded.
  • 23983: IDE » Miscellaneous: Menu Editor uses the name of the application in the menu editor layout when showing the macOS style menu (Windows and Linux don’t use it or show it anywhere in their default style).
  • 35380: IDE » Miscellaneous: Checks for Update to Cocoa and Bundle ID are only done on Mac. The Bundle ID is also checked if you try to build for Mac from another platform.
  • 36835: IDE » Miscellaneous: Xojo Update dialog button now says “Restart” when an update is installed making it clearer what is going to occur.
  • 37284: IDE » Miscellaneous: When saving an iOS project, the views retain the orientation and device settings so when you reopen the project the layout is as you left it.
  • 39698: IDE » Miscellaneous: The code that checks for macOS issues when opening a project (such as a missing Bundle ID) now only checks when the project is opened on macOS.
  • 45676: IDE » Navigator: Internally a regex is used to break the filter up.
  • 45678: IDE » Navigator: When filtering by type, type is treated as “starts with” much like the filter itself is.
  • 29981: IDE » Project Editor: You can now convert multiple selected members to shared members at once.
  • 47365: Miscellaneous: Support for SSLv3 on Xojo Cloud services has been deprecated and will be disabled on all servers in Summer 2017.
  • 47213: Remote Debugger Stub: 64-bit stubs support having 32 or 64 bit apps sent to them. When you use a 64-bit stub the IDE settings for that target are used to select whether a 32 or 64 bit build is sent. Note: Because 64-bit debugging is not yet available on Windows there is no 64-bit remote debugging on Windows and only 32 bit builds will be sent to remote debuggers.
  • 47245: Remote Debugger Stub: Remote debugger desktop version is now 2.1.
  • New Items:
  • 35156: Framework » Web: Text that will be drawn in the browser as HTML can now be surrounded by tags to temporarily disable HTML parsing. For example, you could bold just a single word with this code:
  • Label1.Text = "This is a line with bold text in it."
  • Controls that work with this: WebLabel, WebRadioGroup, WebListBox, WebToolbarButton, WebToolbarContainer, WebToolbarMenu, WebSegmentedControl.
  • 39702: IDE » Build Automation: IDECommunicator now supports asynchronous communications. When using the new protocol, script and build errors are now returned in JSON structures.
  • 45102: IDE » Layout Editor: Can select a group of controls and extract the text and string properties from them to constants.
  • 4155: IDE » Miscellaneous: Made it so you can have "Standardize Format" act when you hit return (to finish a line), when you paste a block of text or when you hit "super return" to finish a block.
  • 5101: IDE » Miscellaneous: It is possible to toggle the display of line numbers on and off in code editors.
  • 6649: IDE » Miscellaneous: Preferences now have a panel where users can remap the menu short cut keys.
  • 12480: IDE » Miscellaneous: Added a “CloseProject” IDE Script method that will find and close all windows associated with the project that is open in the front most project window. Note that if there are unsaved changes when you call this you may get a dialog asking if you want to save changes.
  • Docs and Examples:
  • 45882: Documentation: Updated SQLite example databases to use a PageSize of 4096 for better compatibility with SQLite 3.14.1.
  • 45932: Documentation: Corrected sample code for WebApplication.HandleSpecialURL.
  • 46939: Documentation: Improved how Raspberry Pi support is described in System Requirements.
  • 41796: Documentation » Miscellaneous: Added info to Task page about possibility of Task going out of scope before UpdateUI event can complete.
  • 46819: Documentation » Miscellaneous: Updated 64-bit Guidelines.
  • 46983: Documentation » User's Guide: Added “How can I build my app?” to the FAQ section of the Dev Center: http://developer.xojo.com/kb/building
  • 46192: Examples: For EddiesElectronics sample project, the DB is now copied to SpecialFolder.ApplicationSupport as a typical app would do. This also allows the sample to run properly on Mac when opened from the project chooser Examples.
  • 46616: Examples: Simple Web Server example now sends correct headers so that it works with modern browsers. Thanks to Marius Dieter Noetzel.
  • 46723: Examples: LinkLabel example no longer uses NewPicture method.
  • 46760: Examples: Updated AddHandler example to use Xojo.Core.Timer and WeakAddressOf.
  • 47241: Examples: Updated DragPicture example project to support dragging in files.
  • 47277: Examples: iOS XojoNotes example now works properly when run on iPad.
  • 18151: Language Reference » Documentation: Added “Namespace and Library Lookup Information” to the Declare Notes page.
  • 18560: Language Reference » Documentation: Updated ODBCDatabase page to add missing DriverNames method and ExtendedSchema property.
  • 20756: Language Reference » Documentation: Updated AddHandler page with information for AddressOf and WeakAddressOf.
  • 29988: Language Reference » Documentation: Added example to RectControl.AcceptFileDrop and DragEnter to show how to restrict drops to only folders.
  • 30258: Language Reference » Documentation: Added additional OpenGLSurface notes.
  • 31509: Language Reference » Documentation: Updated and improved XojoScript and IDE Scripting docs. http://developer.xojo.com/userguide/xojoscript and http://developer.xojo.com/userguide/ide-scripting.
  • 33108: Language Reference » Documentation: CString page updated with information on what can cause it to become invalid.
  • 34664: Language Reference » Documentation: Clarified Date.TotalSeconds to “The number of seconds since 12:00AM, January 1, 1904, local time.”
  • 38192: Language Reference » Documentation: Updated Timer and Xojo.Core.Timer pages with additional information about usage and links to AddHandler.
  • 42229: Language Reference » Documentation: Updated Xojo.IO.BinaryStream and classic BinaryStream to indicate that a BinaryStream created using a MemoryBlock will automatically re-size the MemoryBlock as needed to contain any additional data written to the stream.
  • 42325: Language Reference » Documentation: Remove XMLNamespaces class from LR since it is not actually used by anything.
  • 43437: Language Reference » Documentation: Removed irrelevant mac-specific version info from SpotlightQuery page.
  • 43518: Language Reference » Documentation: Updated Classic Dictionary page to note a previously unknown edge case when using Integer keys of different types.
  • 44961: Language Reference » Documentation: Added a Constants page for the Reference Guide: http://developer.xojo.com/constants
  • 45838: Language Reference » Documentation: Updated FolderItem.Constructor page to indicate that PathTypeAbsolute, though deprecated, remains the default for backwards compatibility.
  • 46048: Language Reference » Documentation: Added sample code for iOSTable.CreateCustomCell.
  • 46324: Language Reference » Documentation: Corrected sample code on CGFloat page.
  • 46365: Language Reference » Documentation: Single now has missing Equals method shown on its Dev Center page and contains number range. Double now has missing info about NaN. Doc Wiki now redirects Double/Single to Dev Center.
  • 46375: Language Reference » Documentation: WebRadioGroup.CellTag, SelectedTag and SelectByTag pages now correctly show that a Variant is used for the tags.
  • 46414: Language Reference » Documentation: Corrected Text.Uppercase method description.
  • 46415: Language Reference » Documentation: Removed “not available” tag from Text.FromCString shared method.
  • 46420: Language Reference » Documentation: Moved MouseCursor info from Control page to RectControl page.
  • 46482: Language Reference » Documentation: Remove incorrect Linux note on Window.Maximize page.
  • 46483: Language Reference » Documentation: Window.Control is now shown as method and not a property.
  • 46500: Language Reference » Documentation: Updated Window.MenuBarVisible notes to reflect current OS behaviors.
  • 46574: Language Reference » Documentation: WebDeviceLocation page now includes a note that some browsers require a secure connection to the web app in order to get the location.
  • 46628: Language Reference » Documentation: Docs updated for WebRequest.GetRequestHeaderNames.
  • 46652: Language Reference » Documentation: Removed GDI+ info from Graphics.Transparency page.
  • 46676: Language Reference » Documentation: Updated Integer page to include size/ranges for 32-bit and 64-bit apps. Updated Integer (Size-Specific) page to indicate the sizes used by Integer/UInteger in 32-bit and 64-bit apps.
  • 46677: Language Reference » Documentation: Corrected “chunk” typos on Xojo.Core.MemoryBlock page.
  • 46826: Language Reference » Documentation: Corrected description on ListBox.ColumnAlignmentOffset page.
  • 47165: Language Reference » Documentation: Online search results from Dev Center have been improved.

New in Xojo 2016 Release 4.1 (Dec 12, 2016)

  • Bug Fixes:
  • 46152 - - Windows: setting the RGBSurface.Pixel on an alpha Picture now works correctly
  • 46156 - Compiler - Checking a project set to compile for 64 bit no longer causes a runtime error
  • 46121 - Crashes & Assertions » IDE Unhandled Exception - Issues with search field mini that causes NOE’s have been resolved
  • 46089 - Framework » Windows - Windows: Graphics.DrawString now correctly offsets by the origin set by plugin controls
  • 46095 - Framework » Windows - Windows: restored the weight/style attributes that were lost when certain fonts were grouped into one font family, like “Arial Black”
  • 46099 - Framework » Windows - Windows: Bevelbutton icon no long appears stretched when its height differed from its width
  • 46117 - Framework » Windows - Windows: Clipped Graphics now works consistently instead of sometimes working or not working depending on the order of operation performed
  • 46137 - Framework » Windows - Windows: Labels with Underline checked or drawing text with Graphics.Underline set to True now underlines the text
  • 46158 - Framework » Windows - Windows: REALUnlockPictureDescription now cleans up the memory allocated when REALLockPictureDescription was called
  • 46124 - IDE » Layout Editor - Windows IDE: fixed the placement of the Image inside an ImageWell
  • 46130 - Miscellaneous - iOSImageMaker is now signed.
  • Changes:
  • 46177 - Plugin SDK - Plugins SDK: added some new picture types, namely: pictureNSImage, pictureD2DPBGRAPtr and pictureIWICBitmap

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

  • 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)

  • 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.1 (Aug 9, 2016)

  • BUG FIXES:
  • 44664: Crashes & Assertions » Crash: Fixed a bug in the reloading of a text project that had an external script located on a volume that is different than the one containing the project.
  • 44616: Crashes & Assertions » IDE Unhandled Exception: An exception that caused certain web projects to not function in r2 has been fixed.
  • 44714: Crashes & Assertions » IDE Unhandled Exception: IDE no longer crashes if an iOSScrollArea's height or width is zero pixels.
  • 44590: Framework » All: PerformAction is now triggered properly again, for those implementing the ActionNotificationReceiver interface
  • 44608: Framework » All: Fixed failed assertions in RuntimeThread.cpp relating to detached threads that would occur with certain database queries (particularly MySQL).
  • 44622: Framework » All: Fixed a regression that caused applications to hang when the last non-main thread exited and the main thread had recently been unblocked.
  • 44644: Framework » All: The Socket LocalAddress property again deals gracefully with a complete lack of connected network interfaces.
  • 44683: Framework » All: Thread.Resume now only resumes sleeping and suspended threads. Threads that are blocked waiting for locks will stay waiting.
  • 44704: Framework » All: Resuming a suspended thread when the main thread is the only actively running thread now works correctly. This was a regression in 2016r2.
  • 44525: Framework » Web: Fixed a regression which meant that setting a WebImageView to the same picture would push the image down to the browser again, even if it hadn't changed.
  • 44551: Framework » Web: WebImageViews defined by a URL and set in the IDE load properly again.
  • 44700: Framework » Web: Fix a bug which prevented Reverse Proxy headers from being parsed correctly in Standalone apps.
  • 44741: Framework » Web: Fixed a regression which caused pictures to not contain their name when dragged into a web project.
  • 44514: Framework » iOS: iOSPicturePicker no longer requires a Cancelled event handler to be present in order to cancel the picker.
  • 44576: Framework » iOS: iOSToolbuttons honor dynamic constants. Note that iOS simulators may not show this as there is a bug in setting their locale and language that is not under Xojo's control.
  • 44659: Framework » iOS: iOSTable contents are no longer inset.
  • 44668: Framework » iOS: Fixed iOSTables having section headers with a white background.
  • 44752: Framework » iOS: iOSTable now uses the the most derived methods when calling data sources.
  • 44693: IDE » Icon Editor: Importing a PNG into the app icon no longer causes an exception on Windows.
  • 44656: IDE » Layout Editor: iOS Tool buttons reload as positioned when the project was saved.
  • 42764: IDE » Miscellaneous: Window's destructor no longer raises an exception if called from a thread.
  • 44658: IDE » Miscellaneous: Floating Library palette now displays again.
  • CHANGES:
  • 44586: Build Pipeline: DMGs are now signed for use with macOS 10.12 Sierra.
  • 44548: IDE » Icon Editor: Now supports iPad Pro app icon.

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

  • 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
  • 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

New in Xojo 2016 Release 1.1 (May 4, 2016)

  • Bug fixes:
  • 43483: Build: Long compile times for web projects have been fixed. Things should be speedy once again.
  • 43358: Database Plugins: MySQL Plugin no longer crashes when closing the database.
  • 42563: Framework » All: SMTPSecureSocket no longer throws an OutOfBoundsException when the SIZE command from the server doesn't contain a value.
  • 43520: 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.
  • 43217: IDE » Find & Replace: No longer crashes when searching.
  • 43386: IDE » Language Reference: New LR viewer window no longer causes high CPU usage on Windows.
  • 43287: IDE » Layout Editor: Fixed an issue with Page panels that have just a single panel.
  • 41981: IDE » Miscellaneous: Relocating missing project assets shows a prompt again on OS X 10.11.
  • 43306: IDE » Navigator: Duplication speed should be vastly improved.
  • 43291: IDE » Web Page Editor: Improved the speed of the Web editor on Retina/HiDPI screens.
  • 43316: IDE » Web Page Editor: IDE display matches how WebText fields appears at runtime.
  • 43460: Remote Debugger Stub: Windows IDE no longer crashes when debug app quits.

New in Xojo 2016 Release 1 (Apr 5, 2016)

  • Notable changes and new features include:
  • HiDPI and Retina support for OS X and Windows.
  • The Xojo IDE is now Retina on OS X for sharp, clear text and graphics.
  • New Language Reference.
  • Many bug fixes and improvements.

New in Xojo 2015 Release 4.1 (Feb 9, 2016)

  • Fixed a bug with incremental compilation where explicit type info on constants would get lost.
  • Fixed memory leaks with Xojo.Core.Date and Xojo.Core.TimeZone.
  • Fixed a crash that would occur if a control's LostFocus event closes the control that focus should have advanced to.
  • GenerateJSON now gives "" instead of null for empty string values.
  • Fixed an assertion with XojoScripts that have a subroutine named "main" that takes no arguments.
  • Fixed Xojo.IO.FolderItem iteration to work on OS X.
  • Fixed crashes under OS X 10.11 that occurred when closing a full screen window.
  • Drawing a Picture into itself no longer crashes.
  • Error dialog now properly appears when trying to build using plugins that do not support the selected architecture.
  • 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:
  • 41650 - Build - Build progress dialog identifies Windows x86-64 builds in the same manner as OS X and Linux x86-64 builds.
  • 41533 - Build Pipeline - The folder icon on OS X is high-resolution again.
  • 39626 - Compiler - Operator_Lookup’s name can now be a Text parameter and not just String.
  • 40140 - 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.
  • 41233 - Compiler - Fixed a bug with the compiler’s handling of Boolean values when targeting 64-bit or ARM.
  • 41352 - Compiler - Fixed a bug that would prevent extremely large structures from working when building for 64-bit or ARM.
  • 41450 - Compiler - Fixed link errors regarding 'oleaut32' when building for 64-bit OS X.
  • 41485 - Compiler - Fixed a crash that could occur when canceling compilation.
  • 41491 - Compiler - Fixed building Windows console and service applications from a case-sensitive filesystem.
  • 41617 - Compiler - Fixed a bug that could cause problems with incremental compiling if a class or module had “Using” clauses.
  • 41626 - Compiler - Worked around a bug in 10.7 that causes a kernel panic during linking.
  • 39027 - Database Plugins - MSSQLServerDatabase PreparedStatement now works properly for SQLSelect instead of always returning Nil.
  • 40739 - Database Plugins - ODBCDatabase no longer crashes when retrieving large SQL columns.
  • 39686 - Debugger - The debugger once again shows ByRef parameter values correctly.
  • 11115 - Framework » All - XML exceptions no longer 'skip' exception handlers.
  • 41560 - Framework » All - SMTPSecureSocket no longer fails with 503 TLS already negotiated when the server sends the capabilities list more than once.
  • 41345 - Framework » Linux - Return menu shortcut now works, also now differentiates the "Return" key from the "Enter (keypad)" shortcut.
  • 39224 - Framework » Macintosh (Cocoa) - Xojo.IO.FolderItem is now usable on OS X without crashing.
  • 41328 - Framework » Macintosh (Cocoa) - Since drawers are no longer supported the “Drawer” choice for a Window type has been removed.
  • 41747 - Framework » Macintosh (Cocoa) - Text.Join now works correctly if the separator character is non-ASCII. This only affected OS X and iOS.
  • 31191 - Framework » Web - WebMapLocation no raises an exception if the provider returns zero locations for an address.
  • 38890 - Framework » Web - WebSessions no longer die when the client moves from network to network.
  • 41115 - Framework » Web - WebPicture no longer results in Nil picture data when defined from a FolderItem.
  • 41130 - Framework » Web - WebPicture no longer uses twice as much memory as necessary when defined from a Picture object source.
  • 41295 - Framework » Web - External web control wrappers no longer cause JavaScript errors.
  • 41362 - Framework » Web - Gradients now work properly on IE Edge.
  • 41365 - Framework » Web - Setting a WebFile with the data from a MemoryBlock now works if the previous value was from a FolderItem.
  • 41652 - Framework » Web - WebMapViewer no longer uses the deprecated Sensor url parameter.
  • 39543 - Framework » Windows - (Windows/Linux) Picture.Open now honors JPEG's orientation flag and flips/rotates the picture as necessary.
  • 40331 - 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.
  • 41202 - IDE - Image in the icon editor shows a scaled thumbnail immediately instead of after you edit the icon set.
  • 41213 - IDE - The UI correctly reflects that "This Computer" is selected when you load an example.
  • 41301 - IDE - Removed blank menu items.
  • 41685 - IDE - Images of all kinds draw their explanatory text in black not grey
  • 7536 - IDE » Auto Complete - True and False appear in autocomplete suggestions following a pragma statement.
  • 7725 - IDE » Auto Complete - Control array names now autocomplete in code editors.
  • 8026 - IDE » Auto Complete - Structures autocomplete beyond the first level when you have structures that contain structures.
  • 41677 - IDE » Auto Complete - Image Set names autocomplete where expected.
  • 41549 - IDE » Build Automation - Copy Files Steps copy to the correctly named directories for Windows builds whether you use build folders or not.
  • 13194 - IDE » Code Editor - Bookmarks and break points no longer get dropped when you delete whole lines prior to the bookmark / breakpoint.
  • 14975 - IDE » Code Editor - Index parameter on control arrays is no longer reported as an unused local variable.
  • 38709 - IDE » Code Editor - Deleting a group of items now resets the selection.
  • 40564 - IDE » Code Editor - Fixes to the IDE restored typing speed
  • 41218 - IDE » Code Editor - Make the syntax help area at the bottom of the code editor scrollable when necessary.
  • 41478 - 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.
  • 41511 - 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.
  • 41530 - IDE » Code Editor - Members that are private now only show in autocomplete when in scope/accessible.
  • 41577 - IDE » Code Editor - Typing speed should be back to normal (if not better than it has been recently).
  • 41584 - IDE » Code Editor - Use of proportional fonts (like System 0) in the Code Editor no longer lead to strange insertion point positions.
  • 41665 - IDE » Code Editor - Spaces are now trimmed from lines when copying and pasting multiple lines.
  • 41425 - IDE » Constant Editor - Turned off styles in the constant default value editor.
  • 40836 - IDE » FileIO - Template projects will save with the default name of “untitled” instead of the name of the template project.
  • 41382 - IDE » FileIO - Special characters, like umlauts, in the team name do not cause error in text projects.
  • 41290 - IDE » Find & Replace - After reloading a web project, search properly searches all items.
  • 39810 - IDE » Inspector - An illegal cast exception that could arise when naming methods and properties similarly on a web page has been fixed.
  • 41123 - IDE » Inspector - WebSDK tray controls do not show the style property.
  • 41241 - IDE » Inspector - Tightened up the spacing in the Compatibility Flags (on the Advanced Inspector) so they better fit on a normal Inspector widths.
  • 41337 - IDE » Inspector - Changes to database properties for DataControl are now retained.
  • 41411 - IDE » Inspector - Web Deployment popups are the right size and not truncated.
  • 41492 - 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.
  • 41519 - IDE » Inspector - Changing the iOS debug device marks the project as changed.
  • 41550 - IDE » Inspector - Pressing enter when you select the module name in the inspector no longer beeps on Windows OS.
  • 41641 - IDE » Inspector - External Objective C methods retain all aspects of their declaration and no longer drop the selector when copying and pasting.
  • 41713 - IDE » Inspector - Can now use Int64 with Inspector Behavior.
  • 41545 - IDE » Language Reference - Language reference jumps to the correct location online or locally with the newer documentation sets.
  • 41228 - 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.
  • 41417 - 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.
  • 41438 - IDE » Layout Editor - Tray controls can’t be parents of visual controls (this includes toolbars since they are kind of "special" in this regard).
  • 41514 - IDE » Layout Editor - Locked positions for controls in web layouts properly save and restore.
  • 41779 - IDE » Layout Editor - Paste of a copied page panel that has controls on different panels is handled correctly again.
  • 41361 - 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.
  • 57 - IDE » Miscellaneous - Custom properties on menu item subclasses now show in the Inspector.
  • 15475 - IDE » Miscellaneous - Toolbar (Desktop) is now properly compiled so that you can create classes that subclass it.
  • 21815 - 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.
  • 23861 - IDE » Miscellaneous - Tab names stay up to date with the item name as it’s changed.
  • 23907 - IDE » Miscellaneous - Undo entry after drag and drop now correctly displays “Drag & Drop”.
  • 35599 - IDE » Miscellaneous - Text on the dialog shown when creating a control set is now correct.
  • 40500 - IDE » Miscellaneous - Any time ChrB(0) is sent to a DebugLog, it is replaced by a space to ensure proper log display.
  • 41019 - IDE » Miscellaneous - PSD's import with their transparency into the File Type Set editor.
  • 41154 - IDE » Miscellaneous - Fixed a NilObjectException that cold occur when pressing stop while in the middle of sending to a remote stub.
  • 41201 - IDE » Miscellaneous - Require UTI's to use the correct character set but does NOT enforce the basic style (reverse domain name).
  • 41279 - IDE » Miscellaneous - Right clicking on a row in the Errors panel no longer causes an exception in some circumstances.
  • 41287 - 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.
  • 41311 - IDE » Miscellaneous - Cancelling an update that is in progress no longer causes an exception.
  • 41350 - IDE » Miscellaneous - Remaining activations message no longer shows "%1 remaining" but the actual number of remaining activations.
  • 41353 - 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.
  • 41360 - IDE » Miscellaneous - File Type Sets Editor now resizes appropriately when initially opened.
  • 41516 - IDE » Miscellaneous - Breakpoints and bookmarks save and restore more accurately.
  • 41521 - IDE » Miscellaneous - Fixed an issue where the UTI editor would have focus rings that bleed into unselected areas.
  • 41522 - IDE » Miscellaneous - Tab order on an individual File Types UTI pane is more sensible.
  • 41543 - 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.
  • 39754 - IDE » Navigator - Inappropriate Cut/CopyDelete/Etc no longer appear for menu items in the Navigator.
  • 41321 - IDE » Navigator - Tooltips work more consistently in the Navigator.
  • 41351 - IDE » Navigator - Numeric constant icons now show as the “.01” icon in the Navigator.
  • 41424 - IDE » Navigator - Fixed cosmetic issue in Navigator where fragments of the second line of a multiline value would sometimes show.
  • 41629 - 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.
  • 41635 - IDE » Navigator - It is no longer possible to insert a container control into a console project.
  • 29361 - IDE » Project Editor - Badging of controls scope is consistent with what’s done for code items like methods and properties.
  • 15865 - IDE » Scripting - ProjectItem IDE Script method returns the full path within the project to the currently selected project item.
  • 41421 - IDE » Scripting - Toolbar on Script Editor window properly shows as active and enabled as appropriate.
  • 15076 - 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.
  • 24745 - IDE » Web Page Editor - When you edit a WebRadioGroup, WebToolbar and WebSegmentedControl and select an element the Inspector is immediately made visible.
  • 24061 - 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.
  • 41683 - 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.
  • 41757 - Miscellaneous - Windows installers no longer run on Windows XP.
  • 41811 - Remote Debugger Stub - Empty menu items have been removed.
  • 106 Bug Fixes
  • Changes
  • 20291 - Compiler - Added a TargetWindows constant that evaluates to True when running on Windows.
  • 41379 - 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.
  • 13421 - Framework » All - ListBoxes now support up to 256 visible columns.
  • 40510 - Framework » All - SQLiteDatabase updated to SQLite version 3.9.2.
  • 41304 - Framework » Web - WebFile and WebPictures now use ETags in addition to modification dates for caching.
  • 41389 - Framework » Web - Removed IE8/ExCanvas support from WebGraphics.DrawString.
  • 40778 - Framework » Web » Frame - The web framework now recognizes the Epiphany browser on Raspberry Pi.
  • 41323 - 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.
  • 12132 - IDE » Code Editor - Changing a plain property to a computed property creates the computed property with the same scope as the original.
  • 37405 - IDE » Code Editor - Code editor tip area shows signature + description if there is one.
  • 40852 - IDE » Inspector - Build Settings Command Line property is now multiline.
  • 41374 - 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”.
  • 16879 - IDE » Layout Editor - Controls that have a hidden attribute no longer show in the Project Controls section of the Library.
  • 2864 - IDE » Miscellaneous - Make it so Cmd+Opt+digit are assigned in successive order to IDE scripts added to the IDE Scripts menu.
  • 5003 - IDE » Miscellaneous - Close button on issue resolution dialog becomes the default once all items are resolved.
  • 5381 - IDE » Miscellaneous - When renaming a class external item supers are also renamed and the Navigator is updated.
  • 15940 - IDE » Miscellaneous - Newly added labels now default the Transparent property to True.
  • 41385 - 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.
  • 41564 - 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.
  • 38156 - 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.
  • 23955 - IDE » Project Editor - The Description property in the Inspector is now multiline.
  • 29503 - IDE » Web Page Editor - The Target field of a WebToolbar container item now uses a PopupMenu to select containers from the project.
  • 10845 - IDE » Window Editor - Each tab of a tab panel can now be set using a constant to allow for localization.
  • 35690 - Miscellaneous - iOS ImageMaker now allows you to drag PNG images onto the App Icon Canvas.
  • 24 Changes
  • New Items:
  • 41248 - 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.
  • 38261 - 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.
  • 40633 - 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.
  • 41607 - Framework » Web - Web Text Controls now have a TextAlign property. Valid values are Default (Inherit from parent), Left, Center and Right.
  • 41571 - IDE - Image sets are now available in desktop projects.
  • 5 New Items
  • Docs and Examples:
  • 41788 - Examples - Added Examples/Advanced/MemoryBlock/FastStringAppend example.
  • 41807 - Examples - Removed extra MenuItems from Window menu in WindowMenu example to fix an exception.
  • 34457 - Language Reference » Documentation - Updated Color page in Dev Center with missing methods and information.
  • 38563 - Language Reference » Documentation - Corrected sample code on VirtualVolume page.
  • 39099 - Language Reference » Documentation - EasyTCPSocket.Error and EasyUDPSocket.Error links now go to the correct pages.
  • 39373 - Language Reference » Documentation - Fixed typo in SQLiteDatabase.Backup sample code.
  • 40362 - Language Reference » Documentation - Added HttpOnly parameter to WebSession.Cookies.Set page.
  • 41252 - Language Reference » Documentation - Removed unnecessary known issue from Split page.
  • 41498 - 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.
  • 41556 - 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.
  • 41654 - Language Reference » Documentation - Corrected sample code on TextInputStream page.
  • 41732 - 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:
  • 41372 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.
  • 41255 Fixed an assertion that would occur when a script assigned to and read from a property defined in the context object.
  • 41235 WebRadioGroups now work in 64-bit apps.
  • 41324 Javascript error dialog appears in front of all controls again.
  • 41390 Fixed a NilObjectException that could occur when Picture/WebPicture was used on a subclass of WebControl.
  • 40982 Fixed a regression with threads that could lead to failed assertions in RuntimeThread.cpp.
  • 41292 Calling ShowModal on a OpenDialog, SaveAsDialog, or SelectFolderDialog now presents the dialog as a modal window again (regression in 2015r3).
  • 41343 Creating a new SQLite database from Insert->Database->New SQLite Database, now works again.
  • 41428 File Type Set UTIs are correctly retained by the IDE when saving Text projects.
  • 41009 Dragging any of the subclasses of SSLSocket (HTTPSecureSocket, SMTPSecureSocket) that have folder item properties onto a layout no longer causes a compilation error.
  • 41420 Using a build script correctly updates the build window caption.
  • Changes:
  • 41320 Optimized menu and toolbar processing to improve performance of typing in the Code Editor.

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

  • Major changes and new features include:
  • 64-bit Desktop, Web and Console apps for OS X, Linux and Windows
  • Raspberry Pi 2 (32-bit ARMv7 Linux) apps for desktop, web and console apps
  • Web Drag and Drop support
  • The ability to create bookmarks to lines of code
  • iOSLabel now supports different line breaks
  • You can now “Collect” all your project items into a single bundle to make distribution easy
  • All-new Uniform Type Identifier editor for managing files used by your apps
  • iOSContainerControl to create reusable iOS controls
  • Bug Fixes:
  • 24010 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.
  • 40209 Build ICNS files are written using PNGS for all sizes.
  • 31855 Compiler Instead of asserting, an error is now reported if an enum contains a string value.
  • 38837 Compiler Compiler: Integer constants without an explicit type are now treated as Integer instead of Int32.
  • 39763 Compiler Fixed a crash in the compiler when empty parenthesis were used as an expression.
  • 39765 Compiler Fixed a crash with enumerations that have an invalid underlying type.
  • 39855 Compiler Fixed a crash that would occur when using Mod where the second operand was zero.
  • 39994 Compiler Fixed a handful of crashes that could occur if a class inherited from itself.
  • 39995 Compiler Fixed a crash when an invalid value was entered into the Implements field of the method editor.
  • 40001 Compiler Fixed a crash when there was a method with multiple parameters marked Extends.
  • 40078 Compiler Constants referring to other constants now resolve using the proper name lookup rules.
  • 40079 Compiler Fixed a crash that could occur with enumerations in rare cases.
  • 40086 Compiler Fixed a crash when a class has a superclass that implements something that is not an interface.
  • 40087 Compiler Fixed the class interface aggregate cycle checking to be correct in all cases.
  • 40095 Compiler Fixed a crash that could occur if the underlying type of an enumeration was an array.
  • 40096 Compiler Fixed a crash that could occur if a parameter was specified to be ByRef and ParamArray.
  • 40128 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.
  • 40139 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.
  • 40342 Compiler Fixed the alignment of 64-bit integers inside of naturally aligned structures.
  • 38863 Crashes & Assertions » Crash Compiler: Fixed a bug where applications would crash if an exception was raised through a very large function.
  • 39076 Crashes & Assertions » Crash Fixed a crash that would occur if RuntimeExcerption.Stack was accessed from a binary lacking function names.
  • 27064 Database Plugins ODBC Plugin: Binding string of type ODBC_TYPE_LONGSTRING no longer truncates string to 2 characters.
  • 35603 Database Plugins The DNS chooser dialog now shows up again on OS X when the ODBCDatabase.DataSource is empty.
  • 40349 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
  • 27807 Debugger Can resize splitters in debugger whether the IDE is paused while debugging or not.
  • 30860 Debugger When starting the debugger the bottom pane, if open, will hide the bottom pane so the debugger can properly show.
  • 32726 Debugger Console Remote debugger Stub can be used from an SSH system and does not require the OS X Terminal app or xterm.
  • 34893 Debugger Running a web app no longer badges the IDE dock icon.
  • 38668 Debugger Debugger pane can be resized vertically as well as horizontally even when not viewing debugging data.
  • 39341 Debugger Properties exposed with Inspector Behavior (esp. Text) retain their values when set in the Inspector.
  • 18420 Framework » All Email attachments save as expected regardless of being base64 encoded or not. Only base64 encoded are decoded before saving.
  • 21325 Framework » All Variant's Int64Value now handles exponents.
  • 34709 Framework » All HTTPSocket, HTTPSecureSocket, SMTPSocket, SMTPSecureSocket now support longer username/password combinations for proxies and http authentication.
  • 34980 Framework » All WebListBox.LastIndex now defaults to -1 instead of 0.
  • 38643 Framework » All EmailAttachment now adds filename (Latin1 and UTF8) parameter to Content-Disposition attachment header if the attachment has its name property set.
  • 39274 Framework » All Xojo.Data.GenerateJSON no longer throws an InvalidArgumentException when passed empty text.
  • 39307 Framework » All Text variant comparisons with String, Integer, Double, etc. now works instead of raising a failed assertion.
  • 39319 Framework » All An of by one error in the index of method for the new MemoryBlock has been fixed.
  • 39331 Framework » All Int8 and Uint8 can be used with the Str function with and without format strings.
  • 39398 Framework » All GenerateJSON no longer throws an InvalidFormatException when passed a zero-length String.
  • 39516 Framework » All All: SMTP connections using STARTTLS have been refactored so that an intercepting insecure server cannot accept the connection.
  • 39981 Framework » All Windows/Linux: Subtracting or adding a DateInterval to a Xojo.Core.Date now properly modifies the significant fields of the date properly.
  • 31664 Framework » Linux Change the pace of the indeterminate progress bar to something a little slower.
  • 38795 Framework » Linux Built apps now look in the generic "Libs" folder for plugins and shared libraries if available.
  • 40259 Framework » Linux Using Xojo.Net.HTTPSocket in Console apps no longer crashes in Ubuntu 12.04 or older.
  • 38659 Framework » Macintosh (Cocoa) RadioButtons on TabPanels and PagePanels have the pre-2014r2 behavior again.
  • 40672 Framework » Macintosh (Cocoa) Fixed a crash that would occur when closing a fullscreen or split window on OS X 10.11.
  • 15116 Framework » Web WebRadioGroups are now the correct height in the browser.
  • 38655 Framework » Web Fixed a WebDialog refresh bug which caused WebLabels to render incorrectly when a dialog had been closed and opened again.
  • 38880 Framework » Web WebCanvas now has a DisableDiffEngine property.
  • 40125 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.
  • 40188 Framework » Web WebListBox.LastIndex now gets set to -1 when DeleteAllRows is called, matching the desktop behavior.
  • 40242 Framework » Web Web: Fixed a bug which prevented IE11 and IE Edge from being detected properly.
  • 40262 Framework » Web Firefox and Internet Explorer 9+ will now play H.264 MP4 videos in their native players instead of using Flash.
  • 40268 Framework » Web Web: Fixed a bug which prevented gzip compression from being applied to http responses.
  • 40309 Framework » Web Web: WebTextField and WebTextArea now fire the TextChanged event when the text set in the inspector is cleared.
  • 40511 Framework » Web Internet Explorer 11 is recognized as a supported browser again.
  • 39704 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.
  • 40060 Framework » Web » Frame Closing a WebPage, WebDialog or WebContainer no longer shows an error about closing controls.
  • 40048 Framework » Web » Javascript WebSDK no longer overwrites the XojoCustom namespace if it already exists.
  • 20850 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+.
  • 24826 Framework » Windows Adding a movie to a project no longer autoplays it.
  • 33565 Framework » Windows WebKit based HTMLViewer no longer increments the reference count of its CefBrowser when getting the Handle property.
  • 34080 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).
  • 38693 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.
  • 38972 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.
  • 39500 Framework » iOS A segmented control with no segments no longer results in an error when you analyze the project.
  • 40599 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)
  • 36874 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.
  • 38771 IDE Assets no longer silently reload if they have lost track of one of the images in one of the asset types.
  • 39240 IDE An error that could arise when you copied and pasted a property has been fixed.
  • 39430 IDE The feedback icon in the toolbar has been fixed.
  • 40402 IDE Deleting an event from a control set no longer causes issues after deleting it.
  • 40891 IDE Accented characters now work fine as project item names.
  • 20233 IDE » Auto Complete Toolitems on a Toolbar now autocomplete.
  • 36047 IDE » Auto Complete SQLiteDatabase on iOS no longer shows methods that apply to the non-iOS SQLiteDatabase in autocomplete.
  • 36417 IDE » Auto Complete Items that are not accessible for the project type are not shown by autocomplete.
  • 39125 IDE » Auto Complete Text constants are now shown in autocomplete.
  • 39325 IDE » Auto Complete All sortable array types show Sort and SortWith as possible autocompletion methods.
  • 39383 IDE » Auto Complete Autocomplete now shows a structure's ByteValue method.
  • 39406 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"
  • 37246 IDE » AutoLayout Positioning controls in IOS using cursor keys no longer hangs the IDE.
  • 38744 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.
  • 38777 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.
  • 39004 IDE » AutoLayout Can set baseline constraints and set them relative to other controls baselines.
  • 19073 IDE » Code Editor The IDE no longer reformats method parameters when loading code.
  • 25588 IDE » Code Editor Code editor is active immediately after adding event handler.
  • 26363 IDE » Code Editor GoTo property with arrays now works correctly.
  • 26837 IDE » Code Editor Adding an event puts the focus in the event’s code editor.
  • 27203 IDE » Code Editor Option-return on OS X once again inserts a line continuation character.
  • 28670 IDE » Code Editor Enumerations only support the various integral types (integer, Uinteger, int8, uint8, etc).
  • 28688 IDE » Code Editor Constant name changes are property retained.
  • 28942 IDE » Code Editor Clicking elsewhere retains changes as expected.
  • 35320 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.
  • 38594 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.
  • 38651 IDE » Code Editor Selecting text and getting the OS X dictionary definition works again.
  • 38847 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.
  • 39878 IDE » Code Editor Bug icons are centered using the same metrics as the hit boxes and line folding mechanisms.
  • 40195 IDE » Code Editor Shift-return to close a block thats opened with a select case is now correctly closed with "end select”.
  • 40732 IDE » Code Editor Minor typing change in the short summary for constants properties and methods so they consistently use “As”.
  • 41039 IDE » Code Editor Help Syntax in Code Editor displays the correct signature for the item the mouse is hovering over.
  • 40036 IDE » Constant Editor Dynamic constants of Text type now work.
  • 40781 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.
  • 30201 IDE » Find & Replace Capitalization on help tags for search fixed. Descriptions are accurate.
  • 40404 IDE » Find & Replace Find->Replace All no longer drops a default value on a property on a class/window/etc where it used to.
  • 40700 IDE » Find & Replace Finds using RegEx are shown correctly in the find panel.
  • 21169 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.
  • 34942 IDE » Inspector Changing a description marks the project dirty so that it gets properly saved.
  • 35355 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.
  • 36878 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.
  • 38093 IDE » Inspector Fixed labelling of the automatic cursor type so it's consistent across all web controls.
  • 38725 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.
  • 39066 IDE » Inspector Text properties, like the default value for text on an iOS Label, update when the only change is case.
  • 39351 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.
  • 39360 IDE » Inspector You can now change the super class for all members of a control array.
  • 39393 IDE » Inspector A pasted font name “sticks” if it is one in the list (is available).
  • 39491 IDE » Inspector Text properties on control instances are set properly.
  • 39566 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
  • 40610 IDE » Inspector Control names changes are remembered when you click elsewhere or leave the name field in some other way.
  • 40837 IDE » Inspector IDE no longer raises an exception when field has been pasted into and loses focus.
  • 39092 IDE » Language Reference Reachability of the online wiki is no longer tested if you have the local reference selected as default.
  • 25476 IDE » Layout Editor Checkboxes in the IDE draw in all 3 possible states.
  • 35185 IDE » Layout Editor Applying a style to the toggled appearance of a web toolbar item now draws properly in the layout editor.
  • 35245 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.
  • 38354 IDE » Layout Editor Redrawing the web tool bar in the IDE is significantly faster.
  • 38734 IDE » Layout Editor Locking iOS controls on a layout is not an option as it completely messes up the IDE's constraint solving.
  • 38898 IDE » Layout Editor Auto-Layout delta offsets were being calculated incorrectly, sometimes causing a control to move on every click.
  • 39058 IDE » Layout Editor The Layout Editor no longer hangs if the width of the iOSTextArea control is narrower than the longest word.
  • 39061 IDE » Layout Editor Subclasses of iOS controls in the navigator drag like the super class does and when dropped are set up comparably.
  • 39096 IDE » Layout Editor Lines shows drag / grab handles all the time now including when vertical or horizontal.
  • 39107 IDE » Layout Editor Subclasses of iOS controls will not permit being resized in ways the base class cannot be resized.
  • 39213 IDE » Layout Editor Disabled debug logs about baselines that are no longer needed.
  • 39463 IDE » Layout Editor Controls in the Layout Editor Tray area no longer show top, left, width or height properties.
  • 39622 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.
  • 39903 IDE » Layout Editor In the iOS Layout Editor, Labels are now drawn using System Bold or System Italic when specified.
  • 40243 IDE » Layout Editor Clicking from one tab to another tab in an iOS screen layout no longer drops changes made when viewing other tabs.
  • 40325 IDE » Layout Editor WebLabels with MultiLine=False and content which contains multiple lines now draw properly.
  • 40345 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.
  • 34696 IDE » Library Missing descriptions for Class, Interface, Module, Folder and generic object have been added.
  • 39345 IDE » Library Windows library description pane redraws cleaner without visual artifacts.
  • 26861 IDE » Menu Editor When editing a menu the index no longer shows -2147483648 in red (it shows nothing instead).
  • 39494 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.
  • 40330 IDE » Menu Editor You can set an icon on a submenu.
  • 14392 IDE » Miscellaneous Notes are not printed in color.
  • 14427 IDE » Miscellaneous A note that has _ as the very last character no longer causes issues when loading a text project.
  • 16249 IDE » Miscellaneous External items that are not missing will get examined for items to resolve and get resolved the same as internal items do.
  • 25072 IDE » Miscellaneous With the Project Chooser window open most menu items are disabled.
  • 25306 IDE » Miscellaneous IDE will only error if in fact it cannot remove the damaged license key file.
  • 25828 IDE » Miscellaneous Language Reference window retains tool bar setting from one open instance to another and run to run.
  • 26311 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.
  • 26894 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.
  • 27035 IDE » Miscellaneous Progress bar no longer positioned oddly when starting a debug session.
  • 27847 IDE » Miscellaneous Pressing enter in the file type editor no longer causes an exception.
  • 28020 IDE » Miscellaneous Can define most integer property types for use with Inspector Behaviour.
  • 28113 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
  • 28402 IDE » Miscellaneous Tray-only controls do not show size and positioning properties in the Inspector.
  • 29255 IDE » Miscellaneous Removing one member of a Control Set no longer removes the event list from the Navigator.
  • 29511 IDE » Miscellaneous Projects of all kinds now print all their members.
  • 34666 IDE » Miscellaneous Clarified the explanation on the preference setting for asking about overwriting files when building so it's clear this setting only applies when not using the build folders.
  • 35005 IDE » Miscellaneous The insert menu no longer holds the wrong items when you switch from one project type to another.
  • 37515 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.
  • 37963 IDE » Miscellaneous Autocomplete works in the local language reference.
  • 38117 IDE » Miscellaneous You can no longer create multiple event definitions with the same name.
  • 38124 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.
  • 38233 IDE » Miscellaneous Editing a File Type/UTI now marks the project as changed.
  • 38267 IDE » Miscellaneous You cannot define a property that duplicates the name of a an existing const property or event.
  • 38536 IDE » Miscellaneous Switching the iOS device also sets the architecture popup accordingly.
  • 38742 IDE » Miscellaneous An NilObjectException that could occur when executing a compound action has been fixed.
  • 38820 IDE » Miscellaneous Event handlers a no longer silently dropped from Text project format.
  • 38891 IDE » Miscellaneous IDE not handling the new targets caused it to not grab the right built application name and assert.
  • 38952 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.
  • 38974 IDE » Miscellaneous Images should now save and reload from partial paths that can be preserved cross platform and even between machines.
  • 39177 IDE » Miscellaneous Adding multiple using clauses to a project item will name them with unique names.
  • 39242 IDE » Miscellaneous A NilObjectException that can occur using the goto location panel and navigating into a menu has been fixed.
  • 39249 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.
  • 39263 IDE » Miscellaneous Fixed a bug that could change the type of a constant from integer to blank when you clicked on it.
  • 39298 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.
  • 39402 IDE » Miscellaneous Updated the Property/Text icon in the Navigator with a slightly thicker T.
  • 39427 IDE » Miscellaneous String property editor recognizes changes that are from other means like paste and drag and drop and commits those changes properly.
  • 39506 IDE » Miscellaneous Cleaned up extraneous separator lines in the View and Window menus on Windows and Linux.
  • 39514 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.
  • 39559 IDE » Miscellaneous Descriptions on notes in plain text format save and restore as expected.
  • 39560 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.
  • 39676 IDE » Miscellaneous "Text as String" in a plugin parameter list no longer gets renamed.
  • 39682 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.
  • 39699 IDE » Miscellaneous Trailing spaces on lines are not stripped.
  • 39712 IDE » Miscellaneous Changes to web styles save properly in text projects.
  • 39738 IDE » Miscellaneous Selecting Find Implementors from the contextual menu of an Interface no longer does a second search for the Interface name.
  • 39784 IDE » Miscellaneous Add event window has a useful minimum size.
  • 39877 IDE » Miscellaneous Added shortcut key for Analyze Item on Windows and Linux (CONTROL-SHIFT-K).
  • 39883 IDE » Miscellaneous Using the IDE scripting editor no longer causes a NilObjectException.
  • 39953 IDE » Miscellaneous You now get a warning when plist files in the project cannot be found.
  • 40020 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.
  • 40074 IDE » Miscellaneous Can no longer insert a container control into a console project.
  • 40075 IDE » Miscellaneous iOS projects can no longer have databases inserted into them.
  • 40103 IDE » Miscellaneous Remote Debug Hosts list no longer beeps when you delete a remote host using the keyboard.
  • 40104 IDE » Miscellaneous Preferences for setting the Windows AutoQuit functionality is now limited to running on Windows.
  • 40127 IDE » Miscellaneous iOS projects also require a bundle ID.
  • 40151 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.
  • 40161 IDE » Miscellaneous iOS projects no longer incorrectly show error about enum type name.
  • 40184 IDE » Miscellaneous A NilObjectException while determining the folder to cache intermediate code in no longer causes the IDE to assert.
  • 40197 IDE » Miscellaneous Updated menu items which point to the New & Classic Framework references.
  • 40214 IDE » Miscellaneous Fixed a NilObjectException in the IDE when selecting the Constants group row in an external item.
  • 40274 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.
  • 40338 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).
  • 40354 IDE » Miscellaneous A missing external item no longer causes an OutOfBoundsException if it’s missing when the project is reopened.
  • 40369 IDE » Miscellaneous An OutOfBoundsException in the code editor has been fixed.
  • 40401 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).
  • 40417 IDE » Miscellaneous Warnings in encrypted items are again ignored. This was a regression from 2015r2.2.
  • 40673 IDE » Miscellaneous Enter Full Screen no longer shows up twice on OS X 10.11.
  • 40674 IDE » Miscellaneous Windows in the layout editor don’t draw disabled on OS X 10.11.
  • 40817 IDE » Miscellaneous IDE no longer runs out of memory when there is a very long list of missing items to resolve.
  • 40883 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.
  • 40903 IDE » Miscellaneous Make it so a declare like STATIC foo is treated similarly to DIM and doesn't strip out empty brackets.
  • 40907 IDE » Miscellaneous UTI’s that an app accepts are NOT marked as exported any longer (which was horribly wrong).
  • 40981 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.
  • 41049 IDE » Miscellaneous WebToolbars that are smaller than the total width of all items on them no longer cause errors when trying to edit them.
  • 27023 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.
  • 32340 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.
  • 37499 IDE » Navigator Cmd-double-click on an array property in the code editor will now jump to its declaration.
  • 38683 IDE » Navigator Class Interfaces can no longer be dragged onto an iOS layout.
  • 38792 IDE » Navigator Filtering of items now properly includes external items.
  • 38793 IDE » Navigator Navigator contextual popup menu appears in the right spot.
  • 39407 IDE » Navigator Updated the Pointer icon with one that's more consistent with the other property icons.
  • 39565 IDE » Navigator Make it so all integer property types have integer icons (missing were the 8 and 16 bit sizes).
  • 39627 IDE » Navigator When you delete an event handler from a control, searching for text contained in that event handler no longer shows that event.
  • 39666 IDE » Navigator WebImageView, WebButton and WebRadioGroup icons now show properly in the Navigator.
  • 40999 IDE » Profiler Profile data is no longer lost as profile editors close.
  • 26415 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
  • 35228 IDE » Project Editor Changes to web styles save properly with Text projects.
  • 39302 IDE » Rendering Using an enum in the Inspector Behaviour for Web controls functions properly.
  • 39689 IDE » Rendering No longer creates a warning for a property named NotifyControls for WebPages that do not have any WebControl subclasses on them.
  • 40100 IDE » Rendering No longer get a compile error when adding a Xojo.Core.Timer to a web page.
  • 39970 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.
  • 39842 IDE » Scripting Autocomplete in an IDE script no longer causes an exception.
  • 40130 IDE » Scripting IDECommunication IPC Socket now closes properly every time the IDE exits.
  • 40344 IDE » Scripting Windows Copy Files Steps create any required subdirectories as expected and handle both LFS (C:\ style) and UNC paths (\\server\path style).
  • 15542 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.
  • 25283 IDE » Style Editor Can edit the border size field using arrow keys, delete, backspace, etc.
  • 40925 IDE » Style Editor Style Editor refreshes and doesn’t wipe out colors as set.
  • 39562 IDE » Updater Labels on the update window are now the same color as the background on Windows and Linux.
  • 23428 IDE » Web Page Editor CueText on WebSearchField shows correct localized value in the IDE.
  • 26173 IDE » Web Page Editor Changes made using the popover are properly retained so they work with Undo and mark the project as modified.
  • 27153 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.
  • 37783 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.
  • 24062 IDE » Window Editor If you delete an image that’s used as a window background, the window redraws without the image as expected.
  • 25512 IDE » Window Editor Popovers have a close icon on them.
  • 25581 IDE » Window Editor Scrollers redraw themselves in the correct orientation as they are resized in the IDE.
  • 27269 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.
  • 29175 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.
  • 30091 IDE » Window Editor Containers have consistent property groupings in the Inspector whether it's a subclass or instance on a window.
  • 21100 Plugin SDK REALstandardGetter and REALstandardSetter work with all intrinsic types.
  • 38589 Plugin SDK Fixed a bug where REALGetPropValueObject would return false even though it succeeded.
  • 38840 Plugin SDK REALLockText and REALUnlockText now function properly.
  • 39849 Plugin SDK Fixed the currency prop value getters and setters.
  • 40351 Plugin SDK Shared Methods and Properties now work with plugin controls, instead of causing a runtime error.
  • 31649 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.
  • 33678 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.
  • 34560 Reporting Round Rectangles on reports no longer appear as ovals.
  • Changes:
  • 6231 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.
  • 40144 Build Using Xcode 7 and its iOS Simulator is supported now.
  • 18982 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.
  • 38391 Compiler Upgraded to LLVM 3.6.
  • 38731 Compiler The compiler can now build for 64-bit executables for Windows and OS X.
  • 39414 Compiler The Linux IDE can now build for Linux x86-64 and Linux ARM.
  • 39578 Compiler Deprecated the WindowPtr and Short data types.
  • 40239 Compiler The version of LLVM used by XojoScript is now LLVM 3.7.
  • 41051 Compiler The compiler no longer creates an empty libs folder if there are no plugins present.
  • 41052 Compiler Declares to non-system libraries work now.
  • 38781 Framework » All Removed the deprecated and non-functional OpenREALDatabaseOldFormat function.
  • 39292 Framework » All The socket on Windows has been updated to use Winsock2.
  • 370 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.
  • 39533 Framework » Linux Ticks is now guaranteed to be a monotonic clock.
  • 31751 Framework » Web Converted web framework to use the new Xojo framework JSON methods.
  • 39513 Framework » Web WebSDK controls can now be integrated into the Xojo Drag and Drop system.
  • 39792 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.
  • 39797 Framework » Web Minimum browser requirements have been updated to: Safari 6.1+ Firefox 17+ Chrome 37+ IE9+
  • 40002 Framework » Web Added support for detecting the IE Edge browser using WebSession.EngineType.EdgeHTML enumeration.
  • 40731 Framework » Web Updated web framework to allow the Raspberry Pi Epiphany Web Browser.
  • 39838 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.
  • 38265 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
  • 39769 Framework » iOS iOSToolButton.Type enum has been renamed to iOSToolButton.Types (note the extra ’S’). This will break existing code that uses this enum.
  • 39396 IDE Currency has its own special icon in the navigator.
  • 39446 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.
  • 38553 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.
  • 29858 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.
  • 40017 IDE » Code Editor &u literals are now colorized similarly to string/text literals.
  • 40986 IDE » Code Editor Added a preference that allows people to turn autocomplete off.
  • 33475 IDE » Layout Editor The description area below the library can now be scrolled.
  • 36330 IDE » Layout Editor Grab handles are now on control frames instead of outset slightly.
  • 38897 IDE » Licensing Dates are shown like Aug 5, 2015 instead of the ambiguous numeric form.
  • 40522 IDE » Licensing Changed caption of the download button on the license pane of the About window to Update.
  • 19 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.
  • 19961 IDE » Miscellaneous Main toolbar now has tooltips (OS X only).
  • 37596 IDE » Miscellaneous Compatibility flags allow for setting of project type and 32 / 64 bit in the Inspector.
  • 38636 IDE » Miscellaneous Analyze one item now has its old Cmd+Shift+K shortcut (ctrl+shift+K on Windows and Linux).
  • 38722 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.
  • 38762 IDE » Miscellaneous Analysis warning for name lookup differences is disabled in new projects by default.
  • 38802 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.
  • 38807 IDE » Miscellaneous Web projects have architecture setting for OS X targets.
  • 39022 IDE » Miscellaneous Cocoa x86_64 is now an allowed build script build target.
  • 39567 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.
  • 39667 IDE » Miscellaneous Project Chooser Dialog caption updated with more descriptive text. Button captions reverted back to OK and Cancel
  • 39679 IDE » Miscellaneous Added iOS QuickStart to the Help menu.
  • 39821 IDE » Miscellaneous Project > Go To Search was never used so it has been removed.
  • 40061 IDE » Miscellaneous Missing file dialog list is now multiselectable.
  • 40064 IDE » Miscellaneous Binary projects now specifically use 32 bit sized values.
  • 38971 IDE » Navigator Generic icon in the Navigator now has a blue cube instead of a green one.
  • 39780 IDE » Scripting Added new IDE Script BuildApp constants (for iOS Universal app, 64-bit).
  • 39795 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.
  • 40131 IDE » Scripting IDE: App Nap is now disabled while the IDECommunicator is connected.
  • 40494 IDE » Style Editor Adding a component to a web style scrolls to the newly added item.
  • 40105 Miscellaneous Windows Setup file now includes a correct File Version info, instead of 0.0.0.0.
  • New Items:
  • 37112 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)

  • Bug Fixes:
  • 40053 Framework » Linux: 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:
  • Framework » All - DataControl no longer raises a failed assertion when the control is destructed.
  • Framework » All - Fixed Auto's handling of opaque colors so that it no longer corrupts the information.
  • Framework » All - Xojo.Introspection.PropertyInfo.Value's getter now works correctly on iOS.
  • Framework » Linux 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).
  • Framework » Macintosh (Cocoa) - Fixed a crash that could occur if a control's width or height managed to become less than or equal to zero.
  • IDE » Xojo Cloud Uploader - 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:
  • 39201 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.
  • 39220 Database Engine SQLiteDatabase: Binding Text values to PreparedStatement no longer inserts incorrect/random data.
  • 39232 Debugger Fixed object IDs in the debugger being identical.
  • 39147 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.
  • 39185 IDE » Miscellaneous Fixed an IDE crash that could sometimes occur when deleting a ContainerControl from the project.
  • 39237 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 23, 2015)

  • 38979 Compiler Error dialog no longer blinks into existence and then out on Windows.
  • 38928 Compiler Fixed a failed assertion that occurred when building a project that had a database in it.
  • 39020 Framework » iOS All: Fixed a bug where comparing an empty Text against an empty Text literal would return an incorrect result.
  • 38576 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.
  • 38973 Framework » Windows Non-WAV based sound files dragged into the project now Play properly again.
  • 38929 IDE » Layout Editor Image sets now properly reload into the TabView editor.
  • 38982 IDE » Layout Editor TabView icons which use Image Sets now render at the correct size.
  • 38921 IDE » Navigator Deleting an event implementation from a control on iOS actually removes it so its no longer rendered out
  • 38977 IDE » Navigator Image sets now load properly from projects in version control format.

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

  • NEW FEATURES AND CHANGES:
  • Icons and Images can now have multiple sizes associated with them.
  • Added iOSDatePicker control
  • Reduced size of Windows and Linux built apps
  • Expanded availability of parts of the New Xojo Framework to Desktop, Web and Console projects:
  • Xojo.Data
  • Xojo.Net.HTTPSocket
  • Xojo.IO
  • Xojo.Crypto
  • Xojo.Math
  • Xojo.Introspection
  • Language improvements:
  • Added PBKDF2 and BER/DER methods to Xojo.Crypto
  • XojoScript LLVM updated to 3.5.1.
  • Bug Fixes:
  • 38520 Build An error generating code for compiling a multiline label on a report has been fixed.
  • 24019 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.
  • 38286 Compiler Compiler: Fixed code generation for 2D arrays on 64-bit iOS.
  • 38291 Compiler Compiler: Fixed compilation of Objective-C declares that returned large structures.
  • 38140 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).
  • 38521 Compiler iOS applications now build when Xcode 6.2 or Xcode 6.3 is installed.
  • 38020 Compiler Removed IsGlobal on MemberInfo since there is nothing in Introspection that will ever have it set to True.
  • 38656 Compiler The library field of Objective-C declares is now respected and the application will link against those libraries.
  • 38554 Crashes & Assertions » Crash A NilObjectException that could occur on OS X 10.10.3 has been fixed.
  • 38715 Crashes & Assertions » Crash Fixed an out of bounds memory write that happened when converting a String to a PString.
  • 37971 Crashes & Assertions » Crash License agreement window now has a minimum size of 320 x 320.
  • 38385 Debugger Debugger: Fixed a bug that led to corrupting the last character when editing a string in the debugger.
  • 38475 Framework » iOS iOS SQLiteDatabase no longer crashes when getting a NULL value from a column, also added a IsNull property to SQLiteDatabaseField.
  • 37939 Framework » iOS iOSSegmentedControl now properly handles adding and removing segments at run-time.
  • 37934 Framework » iOS The Enabled property now works with iOSToolButton.
  • 38407 Framework » iOS The UnhandledException event is now called when the app is run on iOS devices.
  • 10325 Framework » Macintosh Serial.XmitWait no longer raises an Error code of 19.
  • 38695 Framework » Macintosh (Cocoa) Accessing screen indexes out of bounds no longer causes a crash. It will throw an out of bounds exception.
  • 38217 Framework » Macintosh (Cocoa) User selected font and size for the ListBox is honored by the listbox header again.
  • 21576 Framework » Web Web: Cookies whose names contain spaces now load properly when a session first starts up.
  • 38511 Framework » Web Web: WebContainer ContentsScrolled event now fires when scrolling in only one direction.
  • 38284 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.
  • 38459 Framework » Windows Adding or subtracting a DateInterval now correctly adds/subtracts months (also fixed for Linux).
  • 34157 Framework » Windows MoviePlayer.Looping now works properly with the native Windows Media Player.
  • 37324 Framework » Windows Setting Clipboard.Picture, with a Picture that has an alpha channel, no longer crashes.
  • 38703 IDE Removing a tab from an iOSScreen in a text project works as expected.
  • 37857 IDE » Auto Complete Removed hidden Text Iterator classes from auto-complete.
  • 38015 IDE » AutoLayout IDE no longer hangs when auto-layout causes a TextArea size to get very small.
  • 11465 IDE » Code Editor Items that have been deleted are no longer still showing when you search, delete them then click the search result again.
  • 38208 IDE » Code Editor TargetARM now autocompletes.
  • 38296 IDE » Code Editor The Text type highlights like other intrinsic types.
  • 38492 IDE » Debugger Structure values display correctly.
  • 38123 IDE » Find & Replace Searching using "this item and subclass" option with a module selected now also searches any classes contained within the module.
  • 38443 IDE » Inspector Changing the name of a WebToolbarItem and leaving the item by clicking elsewhere no longer causes an endless stack of dialogs.
  • 37301 IDE » Inspector Duplicating a string property no longer doubles up quotes in the duplicate.
  • 38090 IDE » Inspector Font selector in the Inspector now shows in alphabetical order (ignoring odd characters like @ that occur in some font names).
  • 38021 IDE » Inspector The Method Editor Combobox now splits up array types as parameters properly.
  • 38142 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.
  • 38357 IDE » Inspector You can’t use a SplitView for the default iPhone screen (iOS does not support this).
  • 38087 IDE » Menu Editor Menu Editor (and all other command bar icons) draw more clearly since they are no longer scaled.
  • 38560 IDE » Miscellaneous A NilObjectException that could occur due to a bug in OS X 10.10.3 is now fixed.
  • 38545 IDE » Miscellaneous An NilObjectException that occurred when the Debug Plugins directory exists next to the IDE has been fixed.
  • 37880 IDE » Miscellaneous Compiling a project where there are files that were missing that were not resolved no longer causes an exception in the IDE.
  • 14078 IDE » Miscellaneous Dropping an invalid “cur” file on the IDE no longer causes a NilObjectException.
  • 37970 IDE » Miscellaneous Fixed a memory leak related to the Window Layout Editor.
  • 38281 IDE » Miscellaneous Fixed a NilObjectException that can occur when adding an overloaded method.
  • 36697 IDE » Miscellaneous Fixed a NilObjectException that could occur when using a Filter for the Navigator.
  • 38409 IDE » Miscellaneous Fixed an edge case where closing the Xojo Cloud upload dialog/sheet could cause a crash.
  • 19377 IDE » Miscellaneous Holding the Option key down when pressing Run no longer produces an error.
  • 24321 IDE » Miscellaneous IDE: Pasting string properties no longer doubles up the surrounding and contained quotes.
  • 38344 IDE » Miscellaneous Identifiers are created as you type in a name and company in the Project Chooser.
  • 33331 IDE » Miscellaneous Invalid names for WebToolbarItems no longer cause compile issues.
  • 38570 IDE » Miscellaneous No longer generate an OutOfBoundsException with an oddly formed list of parameters for an extends method.
  • 37977 IDE » Miscellaneous Selected items in the Errors pane are now readable on Windows and Linux.
  • 36765 IDE » Miscellaneous Switching from tab to tab no longer requires clicking in the code editor to make it so you can start/continue editing.
  • 38129 IDE » Miscellaneous The deprecated CFBundleGetInfoString is no longer written to Info.plist for OS X apps.
  • 38241 IDE » Miscellaneous The Resume button on the toolbar on Windows now enables when expected during debugging.
  • 37964 IDE » Miscellaneous Undoing and redoing the addition of a project item (like a container control) properly restores the Navigator, avoiding a NilObjectException.
  • 38145 IDE » Miscellaneous Web apps no longer report NaN as the bytes per transaction under some circumstances in the log.
  • 38175 IDE » Navigator A cosmetic issue where multiple entries for "Layout" could arise has been fixed.
  • 38667 IDE » Navigator Clicking from one item to another in the Navigator no longer dirties the project.
  • 38368 IDE » Style Editor Linux IDE: deleting a property from a WebStyle no longer crashes
  • Changes:
  • 35574 Framework » All Xojo.Crypto now works on Desktop, Web and Console projects for Windows, Linux and OS X.
  • 35218 Framework » All Xojo.IO.FolderItem now works for all platforms.
  • 38311 Framework » All Xojo.Net.HTTPSocket now works on all platforms (note this requires libsoup-2.4 on Linux).
  • 37645 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.
  • 35284 Framework » Web Standalone web app startup parameters can now be manipulated in App.Open by changing the values in the args array.
  • 37646 Framework » Windows Reduced size of Windows ICU DLLs by statically linking them in and removing unused features from the library.
  • 36303 IDE » AutoLayout Added restrictions on what constraints you can add if a control can’t be resized in various directions.
  • 38382 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.
  • 38519 IDE » Inspector Constant editor inspector pane behaves like the property editor panes and selects the name when you create a new constant.
  • 38602 IDE » Inspector When you add an even definition its name is now selected in the Inspector.
  • 38039 IDE » Library Long descriptions in the library can now be scrolled.
  • 38318 IDE » Miscellaneous New iOS projects have an icon asset and launch image asset instead of the App Icon and Launch Images folders.
  • 38401 IDE » Miscellaneous The template window split is more proportional so it looks nicer.
  • 25359 IDE » Miscellaneous Unknown type errors now display the name of the unknown type.
  • 38495 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.
  • 25640 IDE » Window Editor Can paste methods, consts, enums and structures when they are copied from full text.
  • 38134 Plugin SDK Plugins SDK: Removed the obsolete plugin converter tool.
  • 38132 XojoScript XojoScript: The version of LLVM used by XojoScript has been upgraded to 3.5.1.
  • New Items:
  • 38298 Compiler Compiler: Added an optimization pass for Objective-C method calls that removes excess calls to sel_registerName.
  • 37660 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.
  • 38009 Framework » All Xojo.Data namespace is now available for all targets/platforms.
  • 38341 Framework » iOS Added iOSDataPicker control.
  • 38371 Framework » iOS Added missing Crypto functions for Xojo.Crypto: PBKDF2 BERDecodePrivateKey BERDecodePublicKey DEREncodePrivateKey DEREncodePublicKey Hash
  • 38174 Framework » Web Added ability to set the HttpOnly attribute in the Session.cookie.set method. Removed the sessionid cookie from the javascript framework.
  • 38422 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.
  • 38188 Framework » Web Web: The SSL Certificate location can now be specified on the command line using --certificate=/full/path/to/file
  • Docs and Examples:
  • 38505 Documentation » Language Reference Changed links to TargetHasGUI to instead link to TargetDesktop. Removed links to TargetCarbon.
  • 38060 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.
  • 38297 Documentation » Language Reference Corrected typo in sample code for Xojo.Core.DictionaryEntry.
  • 38025 Documentation » Language Reference Links to MemberInfo.Parameters now correctly say “Parameters” instead of “GetParameters”.
  • 38046 Documentation » Language Reference Notes for Declare now indicate the Library must be either a String literal or a Constant.
  • 38429 Documentation » Language Reference Redirected Session.UnhandledException to WebSession.UnhandledException.
  • 38496 Documentation » Language Reference ScrollBar.LiveScroll no longer indicates it is read-only.
  • 38182 Documentation » Language Reference ServiceApplication now shows the command to manually start a Windows service.
  • 38428 Documentation » Language Reference SQLiteDatabase now shows that SQLite 3.8.8 is used.
  • 38400 Documentation » Language Reference Updated Graphics description to indicate you can draw to Graphics from a Picture.
  • 38398 Documentation » User's Guide Updated all download links to User Guide to point to the correct version.
  • 38609 Examples iOS UIDatePicker Declare example now correctly gets date selections for 1947 and earlier.
  • 38448 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.

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

  • HIGHGLIGHTS:
  • A new TargetARM constant for conditional compilation
  • 64-bit iOS Builds:
  • iOS builds are now created as Universal Binaries containing both 32-bit and 64-bit parts as required o meet Apple’s new App Store submission requirements
  • IDE improvements, including:
  • Preference for Searching
  • 1024x1024 icon sizes
  • Better display of debugger values for pictures and arrays
  • Language improvements:
  • Added Parse method to Integer, Double and Single data types
  • SQLite updated to 3.8.8
  • BUG FIXES:
  • 19863 All: Fixed a crash when passing a structure array into SortWith.
  • 37833 All: Fixed a memory leak with Xojo.Core.MemoryBlock.
  • 37835 All: Fixed a regression where assigning empty strings to a MemoryBlock would crash.
  • 37674 All: Fixed Array.IndexOf's handling of Auto arrays.
  • 37664 All: Fixed Array.IndexOf's handling of delegate objects.
  • 37093 All: Fixed RuntimeException's CallStack property having an extra Nil element at the end of the array.
  • 32325 All: Fixed shuffling of structure arrays.
  • 33905 All: Optimized sorting an array that is already mostly sorted.
  • 37363 All: String.ToText no longer raises an exception on Windows/Linux if the string is empty.
  • 37811 All: Text.Split no longer raises an assertion if the Text to split is empty. It now returns an empty Array instead.
  • 17059 All: Using IndexOf on a string array where a string starts with NUL byte now works correctly.
  • 37611 All: Xojo.Core.Timer.CancelCall no longer raises an IteratorException.
  • 37871 Cocoa: Fixed a crash with ComboBox.DeleteAllRows.
  • 37201 Cocoa: The ArrowAllDirections mouse cursor now resembles the old Carbon appearance instead of a simple crosshair.
  • 37351 Compiler: Fixed a bug that made ByRef arguments count for overload resolution, which incorrectly marked function calls as ambiguous.
  • 37629 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.
  • 37981 Compiler: Fixed a bug with unsigned integer comparison on iOS and XojoScript.
  • 37616 Compiler: Fixed a crash when trying to get or set a structure property's value via introspection.
  • 37663 Compiler: Fixed a crash with exception handlers when building for iOS devices.
  • 37508 Compiler: Fixed a failed assertion triggered by calling an invalid function.
  • 37567 Compiler: Fixed a failed assertion when compiling a class that has a property that is a large structure.
  • 37500 Debugger: Date values stored in a Variant now show correctly in the debugger.
  • 34555 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.
  • 28114 IDE: Added missing Help tags for the file types command bar items.
  • 37576 IDE: Added Variant.TypeText to autocomplete.
  • 37041 IDE: Adding a new sqlite database to a project no longer permits using the name “Database”.
  • 13259 IDE: Alt-Shift-Click inserts the name of the item selected in the navigator to the current insertion point in the active code editor.
  • 37581 IDE: Altered reloading an iOSControl so it reloads all saved properties.
  • 37406 IDE: An event that has been implemented can be removed and re-added to a control.
  • 36823 IDE: Auto-layout baselines guides now result in baseline constraints.
  • 21281 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.
  • 37564 IDE: Clicking the help item in the toolbar no longer results in a help window with no toolbar configured.
  • 25894 IDE: Closing the last project window will, if set, close the IDE down or simply leave the tray item (as set in preferences).
  • 37570 IDE: COM help reference entries wont be shown on platforms that don’t support COM controls.
  • 29017 IDE: Commands like Stop Debugging work even when the Debugger is not the current active tab.
  • 17852 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 \.
  • 31436 IDE: Copy paste and drag drop of methods, constants, etc. into external classes now works properly.
  • 37454 IDE: Copy/copy/paste now work with the IDE Script Editor window.
  • 37601 IDE: Copying a group of lines no longer causes an exception when trying to create the backing image.
  • 29272 IDE: Creating a new control set from a selected group of similar controls now works properly.
  • 37613 IDE: Custom controls names in the Library update when changed.
  • 19639 IDE: Custom supers for reports saved in plain text format are restored properly.
  • 14434 IDE: Desktop containers draw better in the IDE (back color and backdrop) in their editor and in a disabled form on a window layout.
  • 37194 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.
  • 37507 IDE: Dropping a method on a class interface behaves like a Copy not a Move.
  • 21258 IDE: Ellipsis to indicate further interaction required have been added to menus.
  • 37188 IDE: Event definition editor pane parses a single entry in the name into component parts as the method editor pane does.
  • 37037 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.
  • 9808 IDE: External project items no longer show property editors differently than internal project items.
  • 33217 IDE: External script references no longer get lost.
  • 19099 IDE: Extract Interface and Extract Superclass both order their lists alphabetically.
  • 37232 IDE: Fixed a NilObjectException that could occur when trying to add attributes to a NON-UI class in an iOS project.
  • 37684 IDE: Fixed issue where right click would incorrectly position the insertion point in the Code Editor.
  • 37577 IDE: Fixed the displayed type of Variant.TextValue in autocomplete.
  • 32736 IDE: Floating properties palette has the advanced icon and panels.
  • 37687 IDE: Grab handles for lines appear regardless of setting of X1, X2, Y1, and Y2.
  • 23591 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.
  • 38035 IDE: Icon editor no longer beeps when you press the delete key.
  • 36968 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.
  • 37727 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.
  • 37699 IDE: If there is no default value for a constant or property no equal sign is shown in the Navigator.
  • 36800 IDE: In Auto-layout, controls constrained to the baselines of other controls move as expected.
  • 17739 IDE: In the Code Editor, AddHandler and RemoveHandler now display syntax help and are highlighted as keywords.
  • 37072 IDE: In the Code Editor, clicking in the gutter below the last visible line no longer toggles the last line’s break point.
  • 36980 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.
  • 15132 IDE: In the Style Editor, typing in a value in the text field for colors now works.
  • 25704 IDE: Inspector Behavior sheet is resizable. Lists resize to fit width and columns are resizable.
  • 21393 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.
  • 22116 IDE: Menu handlers now get numeric suffixes like enums, properties, etc. do when you duplicate them.
  • 37099 IDE: Method editor now says “Delegate name” instead of “method name” when you edit a delegate.
  • 37403 IDE: No longer causes an exception when using a script command to build a console or web app.
  • 37401 IDE: No longer causes an exception when using a script command to build a console or web app.
  • 19115 IDE: No longer get an error when a toolbar button icon image has the same name as the button.
  • 19340 IDE: No longer repeatedly ask if a person wants to update a projects minimum load version as they alter it and save.
  • 37060 IDE: Opening new tabs uses the current Find panel size (if open).
  • 37700 IDE: Plugin super classes are not shown in the super class browser for iOS projects.
  • 14913 IDE: Pressing the Enter key completes inline editing same as the return key does.
  • 28654 IDE: Project chooser panel no longer gets spurious line artifacts when resizing.
  • 37656 IDE: Removed extra space in build dialog.
  • 25046 IDE: Renaming Report controls in the Inspector also changes the name in the Navigator.
  • 37285 IDE: Resizing a control by the corner drag handles snaps to guides just like dragging any of the side handles does.
  • 17862 IDE: Segmented control with no segments no longer generates an error when you analyze a project.
  • 37381 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.
  • 35005 IDE: The Insert menu rebuilds properly depending on what project you have front most.
  • 25580 IDE: The Library no longer appears to be a drop target when you are dragging a control out of the library.
  • 33190 IDE: The ListBox popover editor permits shift tab to go backwards (just as it uses tab to go forwards).
  • 27967 IDE: The small progress wheel control in web projects no longer slowly creeps across the layout as you save and reopen the project.
  • 26354 IDE: The web style border editor can tab from the Size field to the container with the color selector fields.
  • 35367 IDE: The “Define missing method” function now works even when you select a text fragment thats starts with “me.”.
  • 28092 IDE: Using Cut, Copy, Paste, Delete in the Font name combobox in the Inspector doesn’t cause the control to be deleted.
  • 37615 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.
  • 30622 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.
  • 37692 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.
  • 23263 IDE: You can now do a discontiguous select of project items in the Navigator on Windows and Linux (this already worked on OS X).
  • 37326 iOS: An empty iOS project no longer generates an warning about an unused variable.
  • 37008 iOS: Controls that are visually parented in the IDE are now properly parented at run time.
  • 35555 iOS: Dynamic constants are now working.
  • 37919 iOS: Fixed a crash with invalid JSON.
  • 37449 iOS: Fixed a failed assertion triggered by dereferencing a pointer with no offset.
  • 37669 iOS: Removed File Types from the Build Settings.
  • 37071 iOS: The Sign project step name (in Build Settings) is no longer editable.
  • 37678 Linux: IDE no longer crashes at launch on Ubuntu 14.10.
  • 34626 Linux: The IDE no longer crashes in certain instances when clicking on the button to change a class' super.
  • 20370 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.
  • 37777 OS X: Fixed a crash with Xojo.Core.Date when used as a property.
  • 37672 OS X: Fixed Xojo.Math.RandomInt crashing.
  • 15019 Plugins: REALLoadObjectMethod no longer fails with DrawPicture in Console apps.
  • 33896 Remote Debugger: Changing the “launch after receiving” check box no longer takes several seconds for the UI to update.
  • 17882 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.
  • 37123 Web: A WebControlWrapper Style property no longer appears if the developer has indicated that it shouldn't.
  • 37085 Web: Fixed a bug which caused WebLabels to be invisible when included in a dynamically created WebContainer.
  • 37748 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.
  • 37670 Web: Removed unused ChromeFrame code from the framework.
  • 37164 Web: WebCheckboxes again respond to touches when their MouseDown event is implemented.
  • 37435 Web: WebContainer mouse event handlers no longer interfere with scrolling.
  • 37205 Web: WebLabels in a WebContainer in a Control Array draw properly again.
  • 37760 Web: WebListbox no longer offsets the selection if placed inside a WebContainer and accessed from a touch device.
  • 37691 Web: WebMoviePlayer and WebMapViewer no longer incorrectly send Mouse movement events to the server.
  • 17126 Web: WebStyle gradients now render for IE. Note: IE only supports 2 point gradients.
  • 34341 Web: Webstyles with borders no longer cause controls to change size at runtime.
  • 37745 WebSDK: Updated documentation to reflect the APIVersion 4 and 5.
  • 37562 Windows: Deleting a menu in the Menu Editor on Windows no longer causes an exception.
  • 21685 Windows: Graphics.DrawPolygon now draws smoother edges when using GDI+
  • 37413 Windows: Xojo.Core.Date subtraction now works properly.
  • 37390 Windows: Xojo.Core.Timer now works for Desktop apps.
  • 37756 XojoScript: Fixed a bug that prevented CompilerWarning from firing when there were warnings on consecutive lines.
  • 31641 XojoScript: The compiler now gives an error when a script declares its own RuntimeException class.
  • NEW ITEMS:
  • 37510 Compiler: Added a TargetARM constant that is set to true when building for ARM devices.
  • 37930 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.
  • 28073 IDE: Added a new preference for controlling whether searches and filtering happen immediately or wait until enter/return are pressed.
  • 21947 IDE: Added support for 1024 x 1024 icon size.
  • CHANGES:
  • 37439 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.
  • 37757 Compiler: TargetHasGUI, TargetPPC, TargetPowerPC, TargetMacOSClassic, and Target68K have formally be marked as deprecated.
  • 37156 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".
  • 37709 IDE: Added Icons for autocomplete purposes for Auto, Text and Ptr.
  • 35791 IDE: Auto-layout baselines guides now result in baseline constraints.
  • 35950 IDE: Auto-layout baselines guides now result in baseline constraints.
  • 36318 IDE: Certain deprecated items have been removed from file formats and print outs of projects.
  • 36644 IDE: Debugger Viewer now is labelled with “View as “ instead of “view”.
  • 17995 IDE: It is possible to paste multiline text into the constant editor listbox on Windows and Linux (it already worked on OS X).
  • 16569 IDE: Revised project printing to not repeat the note name, group things better and add in delegates and using clauses.
  • 12874 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.
  • 17234 IDE: The picture in the debugger view now scrolls as you move the mouse wheel.
  • 37614 IDE: There is now a Project Controls section in the Library for iOS projects.
  • 12574 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.
  • 37929 IDE: Updated structures to support natural alignment. This means now you can set the StructureAlignment attribute to 0 to use natural alignment.
  • 36648 IDE: Viewing a window in the debugger shows “Controls” instead of “Contents” in the debugger.
  • 8287 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.
  • 29995 OS X: ICNS files written use up to date internal image formats (PNGs instead of JPEG 2000) and only use currently documented formats.
  • 37329 PluginSDK: Updated Plugins SDK with new function to handle the Text datatype. Please review the Plugins SDK for details.
  • 36218 SQLiteDatabase: Updated to SQLite 3.8.8.
  • 37681 Web: Removed the "Xojo HTTP Server" header from the list of headers returned for a standalone web app.
  • 37741 Web: Updated standalone HTTP response headers to more closely match existing behavior.
  • 26807 Web: Web Apps no longer request that ChromeFrame be activated if it's installed on the user's computer.
  • DOCS AND EXAMPLES:
  • 37947 DocLangRef: Added Crypto and Introspection to list of Themes in Language Reference.
  • 37274 DocLangRef: Added information for WebApplication.Security.
  • 30413 DocLangRef: Added note to array.Sort to indicate how items are sorted.
  • 37374 DocLangRef: Added page for REALbasic module as an alternate way to access some global items.
  • 37813 DocLangRef: Corrected “REALSQLDatabase” to “SQLiteDatabase” in Record Navigation section of RecordSet page.
  • 36666 DocLangRef: Removed System.KeyScript, which is no longer an available method.
  • 36308 DocLangRef: Simplified wording for description of FolderItem.GetSaveInfo.
  • 37517 DocRefGuide: Added exceptions raised by Xojo.IO.SpecialFolder.GetResource.
  • 37738 DocRefGuide: Fixed sample code for iOSImage.FromFile.
  • 37884 DocRefGuide: Removed incorrect information from iOSView.Activate and Deactivate.
  • 37148 DocRefGuide: Removed SelChange from the events for iOSTextField.
  • 37151 DocRefGuide: Removed usage of Math.Pi from sample code.
  • 37779 Examples: Added iOS/Declares/Base64Encoding project.
  • 37780 Examples: Added iOS/Declares/Pasteboard to show how to add text to the pasteboard.
  • 37932 Examples: Added XojoDoodle example for iOS.
  • 37647 Examples: Fixed iOS/Database/SQLiteInMemory example so that it can be properly code-signed when built.
  • 37778 Examples: In iOSAlerts, changed declare lib to /usr/lib/libobjc.dylib so that it builds for device.
  • 37737 Examples: Updated IDECommunicator example to work with current version of Xojo.
  • 37931 Examples: Updated XojoNotes to use SplitView on iPad.
  • 37159 Examples: Updates to error messages for XojoScript example project.

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

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

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

  • Bug Fixes:
  • 37242 Compiler: Fixed a regression where the compiler failed to diagnose aggregate cycles.
  • 37161 IDE: 4 char codes used in Constants (with or without smart quotes) are again properly recognized as numeric types.
  • 37346 IDE: Labels toggle visibility as expected.
  • 37144 IDE: The bottom auto-layout offset is now properly set to 20.
  • 37260 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.
  • 37173 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).
  • 37207 iOS: Fixed soft declares.
  • 37164 Web: Fixed a regression for WebCheckbox on Touch devices.
  • 35446 Web: WebLabel offsets are calculated correctly again when their initial value is an empty string.
  • 37134 Web: WebLabels appear properly again when the containing view was set to not visible in the IDE and set to Visible in code.
  • 37224 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.0 (Dec 10, 2014)

  • Adds the iOS build target. You can now create apps for iOS 7 and iOS 8!
  • Additionally, there are over 200 other changes, including:
  • Using statement for working with namespaces
  • Added UInteger type, which maps to UInt32
  • Constants can now have explicit data types
  • New Text data type and supporting methods for improved text handling
  • New Auto data type for storing any type or object
  • New Xojo.Core classes including:
  • Date
  • DateInterval
  • Dictionary
  • DictionaryEntry
  • Iterable/Iterator interfaces
  • Locale
  • MemoryBlock/MutableMemoryBlock
  • Point/Rect/Size
  • TextEncoding
  • Timer
  • TimeZone
  • WeakRef
  • Hierarchical ListBox enhancements
  • WebApplication.HandleURL
  • WebButton.AutoDisable
  • Improved compiler error messages
  • SSLSocket now supports TLS v1.1 and v1.2 and now defaults to TLS v1 instead of SSLv3
  • 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.
  • 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". Total: 22
  • 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. Total: 29
  • 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. Total: 27

New in Xojo 2014 Release 2.1 (Aug 12, 2014)

  • Bug Fixes:
  • 34368 Desktop: OpenGL no longer crashes after the Configure event finishes.
  • 34334 IDE: Buy button on toolbar goes away once a license is added and the IDE window is reactivated.
  • 34433 IDE: Control sets no longer randomly change their indexes.
  • 34313 IDE: Deleting a Build Step that has had the name change rejected no longer causes a stack overflow exception.
  • 34324 IDE: Destination Property editor properly saves and restores the build destination.
  • 34326 IDE: Fixed a small visual glitch in the Windows inspector UI for BackDrop property on a Window.
  • 34306 IDE: Style and LockedIDEPosition are visible and not visible appropriately and reload as expected. This seems to affect binary projects only.
  • 34508 MacCarbon: Creating a new Xml class (like XmlDocument) no longer crashes.
  • 34386 MacCarbon: Fixed a host of plugin related issues because of the difference in how we treat an empty string. One such issue was found when Database.Prepare returned Nil when it shouldn't.
  • 34392 MacCocoa: Fixed a regression with the RegEx plugin that resulted in applications using RegEx being rejected from the Mac App Store.
  • 34476 MySQLCommunityServer: SQLExecute and Prepared statements no longer assume the statement is UTF8 encoded.
  • 34394 ODBCDatabase: DatabaseRecord.Insert no longer inserts the wrong value (it inserted the name of the column instead of the actual column value)
  • 34250 Web: Hiding a WebDialog no longer causes the dialog to be removed from the internal session cache.
  • 34438 Web: Sessions now properly cleanup and close when the Quit method is called.
  • 34056 Web: Standalone apps no longer have their Entity and QueryString munged in HandleSpecialURL.
  • 34310 Web: WebContainer: Fixed a regression with EmbedWithin in an Open event which caused WebLabel and WebLink to be offset.
  • 34296 Web: WebToolbar accepts cursor changes again.
  • 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.
  • 34387 Windows: Initializing COM to single-threaded apartment always for GUI apps, this fixes several unintended side effects like SelectFolder hanging.
  • 34277 Windows: Loading a webpage from source, with the WebKit based HTMLViewer, now works again.
  • 34351 XojoScript: Fixed the Input function returning empty strings.
  • Changes:
  • 34303 Database: SQLiteDatabase now has FTS4 enabled with unicode61 tokenizer on OS X.
  • 34456 IDE: The contextual menu in the navigator has been disabled IF you select one of the group rows (Methods, Constants, Properties, etc) due to case 31468. When selecting other items it continues to function as before. Expect the group selection function to return in a later release.
  • 34384 Web: WebContainer: Reverted the fix for case 28718 because it caused other issues.
  • 34173 Windows: Reverted an update to the Webkit based HTMLViewer from CEF1 to CEF3 since the update to CEF3 introduced some issues (stability and otherwise) that require more extensive work to resolve. This revert should speed up the Webkit based HTMLViewer as it was in previous versions.
  • Docs and Examples:
  • 34259 DocLangRef: Added extra pages and links to make it easier to find information about Contextual Menu in online LR.
  • 33677 DocLangRef: Added pages for HttpSocket.ErrorCode and HttpSecureSocket.ErrorCode.
  • 34468 DocLangRef: Removed references to REALSQLDatabase from tooltips on SQLiteDatabase page.
  • 34475 DocLangRef: Updated FileType.Extensions property page to indicate that the "." preceding the extension is required on Windows.
  • 34290 DocUserGuide: Updated Xojo system requirements.
  • 34454 Examples: Updated XojoUnit AreEqual assertion to improve Double support and add support for Currency and Int64.
  • 34305 Examples: XojoUnit Assert.Pass method now displays the passed message; added AreSame test for case-sensitive String comparisons.

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

  • Web: Can now add and remove toolbar buttons dynamically at run-time.
  • Web: Can now add and remove segments on Segment Controls dynamically at run-time.
  • Web: Text Area now has a ScrollPosition property.
  • Web: Text Area and Text Field now have a SelectAll property.
  • Web: ListBox now has a separate style for selected rows.
  • Web: Improved speed of CGI web apps.
  • PostgreSQL: Added support for root SSL certificates.
  • IDE: Inspector properties reorganized to make better use of available space.
  • IDE: Can now add plist files to project to include in built app.
  • Added 20+ new example projects.
  • Release introduces new single platform desktop license.
  • Release introduces new Xojo Enterprise license that includes all licenses, priority support, 8 hours of custom Xojo training, and more.
  • 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:
  • 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).
  • 32995 IDE: Xojo Cloud builds no longer fail if Use Build Folder is turned off.
  • OS X:
  • 33611 MacCocoa: No longer crashes when showing a sheet window when there's no parent. It now logs to the IDE's message pane then does nothing (matching the Carbon framework's behavior).
  • 30401 Macintosh: Built applications only load the required plugins instead of any library that happens to be in the frameworks folder.
  • 33126 Plugins SDK: REALGetStringData no longer crashes under low memory situations and instead returns false.
  • 23824 SQLiteDatabase: Attempting to connect to a database with a bad EncryptionKey now correctly reports the error code as #26 instead of #21. Since REALSQLDatabase is deprecated it won't be fixed there.
  • 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.
  • 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.
  • 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.
  • 33792 Macintosh: Changed the way the OS version is retrieved for compatibility with future versions of OS X.
  • 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.

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

  • Xojo 2014r1.1 fixes an issue building OS X apps on Windows and addresses a few other minor problems.
  • 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)

  • Add the ability to deploy your web apps to Xojo Cloud. It also has several other new features including:
  • 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.
  • 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
  • Docs and Examples:
  • 31148 DocLangRef: Added missing ReadAll method to StandardInputStream. 

  • 32386 DocLangRef: Added missing StringShape.TextUnit property. 

  • 30719 DocLangRef: Added missing WebListBox.MultiLine property. 

  • 31558 DocLangRef: Changed ContainerControl Super from "Window" to "Object". 

  • 31248 DocLangRef: Correct info for result of asynchronous HTTPSecureSocket.Post. 

  • 31493 DocLangRef: Fixed incorrect example code for WebPicture.Preload. 

  • 31568 DocLangRef: GetFolderItem can use GetSaveInfo strings. 

  • 31483 DocLangRef: On MenuBar page, changed name of default menu bar to MainMenuBar. 

  • 30121 DocLangRef: Removed WebDialog.Hidden event. 

  • 32103 DocLangRef: Updated descriptions for RecordSet.Field and RecordSet.IdxField. 

  • 30662 DocLangRef: Updated Structure topic to indicate that a Variant can contain a Structure. 

  • 31439 DocLangReg: Updated SQLite version for SQLiteDatabase. 

  • 31379 DocUserGuide: Cleaned up placement of figures for ListBox section. 

  • 32346 DocUserGuide: Fixed incorrect Const example. 

  • 31277 DocUserGuide: Fixed label for Figure of Remote Debugger Stub. 

  • 31186 DocUserGuide: Fixed typo in DrawPicture example in "Graphics and WebGraphics section". 

  • 31378 DocUserGuide: User Interface book: Fixed Label on ListBox Figure 2.57. 

  • 18022 Examples: Added Communication/Internet/GoogleMaps example to show how to display an interactive Google Map using an HTMLViewer.

New in Xojo 2013 Release 4.1 (Dec 20, 2013)

  • 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.
  • OS X:
  • 15773 Mac/Linux: ConsoleApplication.Run's args parameter no longer has an extra element at the end of the array.
  • 29433 MacCocoa: Fixed a source of unbounded memory growth.
  • 30436 MacCocoa: ListBox headers now draw the ascending sort arrow when ran on 10.9.
  • 31107 MacCocoa: The framework no longer links against QuickTime, which was preventing submission of applications to the Mac App Store.
  • 5378 Plugins SDK: Added namespace support, see REALmoduleDefinition documentation.
  • 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.
  • 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 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.
  • OS X:
  • 15773 Mac/Linux: ConsoleApplication.Run's args parameter no longer has an extra element at the end of the array.
  • 29433 MacCocoa: Fixed a source of unbounded memory growth.
  • 30436 MacCocoa: ListBox headers now draw the ascending sort arrow when ran on 10.9.
  • 31107 MacCocoa: The framework no longer links against QuickTime, which was preventing submission of applications to the Mac App Store.
  • 5378 Plugins SDK: Added namespace support, see REALmoduleDefinition documentation.
  • 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.
  • 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)

  • Bug Fixes:
  • FIX 30473 Windows IDE: Clicking on Shared Build Settings no longer crashes IDE.
  • FIX 30625 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)

  • FIX 26915 All: Fixed a bug that could cause crashes on quit if two or more threads were running (excluding the main thread).
  • FIX 29930 All: Threads now are reliably killed when quitting the application.
  • FIX 29840 IDE: WebPopupMenu initial value can be edited once set.
  • FIX 29954 Linux IDE: Clearing the Navigator filter (by pressing the 'x' icon) no longer causes a stack overflow.
  • FIX 29747 MacCocoa: Fixed an assertion that occurred when REALcontrols with the REALinvisibleControl flag set were placed on a window.
  • FIX 29633 MacCocoa: Fixed excessive CPU usage when there were multiple threads running but all of them were sleeping or blocking on a lock.
  • FIX 29975 MacCocoa: The SQLite database plugin dylib is now code signed.
  • FIX 30147 MacCocoa: Threads with a priority of one now get yielded to correctly.
  • FIX 27374 Remote Debugger Stub: Now disables OS X Mavericks' App Nap feature while a file is being transferred to the stub.
  • FIX 29827 Web: Hidden WebContainer and WebDialog children controls are now refreshed properly when the container is shown.

New in Xojo 2013 Release 3.1 (Oct 9, 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.
  • 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
  • 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 17, 2013)

  • Bug Fixes:
  • FIX 27506 Database: MySQLCommunityServer Plugin no longer crashes or gives incorrect values when querying DECIMAL fields on a RecordSet returned by a Prepared Statement.
  • FIX 27522 Database: With SQLiteDatabase, the RecordSet is now editable if the rowid is includes in the SELECT when there is no other primary key.
  • FIX 27012 Debugger Stub Desktop: Fixed a text error on the Download Directory Not Found dialog.
  • FIX 24676 Desktop: CancelClose is now triggered for each window before any window closes.
  • FIX 23638 Desktop: Control.DrawInto no longer throws an exception if the control's width or height are 0 (or less).
  • FIX 27485 Desktop: Setting the ListBox.HeaderType to NotSortable now works properly.
  • FIX 27045 Doc: Added example code to Debugger section of Upgrade Guide.
  • FIX 27875 Doc: Added NativePath to FolderItem section.
  • FIX 26889 Doc: Removed iBooks Author plugin doc.
  • FIX 27290 Doc: Updated examples in SQLite section to ensure they all use SQLiteDatabase.
  • FIX 27505 Doc: Updated User Guide to indicate the Notes for CGIApplication are in the template itself, not the Lang Ref.
  • FIX 27044 Doc: Upgrade Guide updates.
  • FIX 26825 Doc: Uploaded latest version of "Introduction to Programming with Xojo" for wiki/web site.
  • FIX 23376 DocLangRef (local): Encodings section now displays the Encoding Names table.
  • FIX 27048 DocLangRef: Added &b, &h, &o, * and \ to Math category.
  • FIX 15114 DocLangRef: Added missing BinaryStream.ReadByte method.
  • FIX 21994 DocLangRef: Clarified framework method display in RuntimeException.Stack.
  • FIX 27351 DocLangRef: Clarified use of Exit to exit a function or sub.
  • FIX 15960 DocLangRef: Corrected Word example in OLEObject.
  • FIX 27417 DocLangRef: Fixed operator links on Operator Compare page.
  • FIX 27435 DocLangRef: Fixed typo in examples for Database.Error and Database.ErrorCode.
  • FIX 26623 DocLangRef: Fixed typo on AddHandler page.
  • FIX 15868 DocLangRef: Removed duplicate methods on TextField.
  • FIX 15115 DocLangRef: Removed EOF from BinaryStream properties as it already appeared as method because it is part of the Readable interface.
  • FIX 12381 DocLangRef: Removed MySQLEnterpriseServer.
  • FIX 27835 DocLangRef: TextOutputStream.Delimiter now indicates it uses platform default for EndOfLine.
  • FIX 9584 DocLangRef: Updated FolderItem.Child to specify when Nil is returned.
  • FIX 26264 DocLangRef: Updated FolderItem.NativePath to indicate a trailing slash is not included for folders on OS X.
  • FIX 27512 DocLangRef: Updated IPCSocket topics to use FolderItem.NativePath.
  • FIX 21995 DocLangRef: Updated to RuntimeException.Stack to indicate the current method name is displayed.
  • FIX 26901 DocLR: Added topics for ListSelectionNotificationReceiver and ListSelectionNotifier.
  • FIX 25824 Examples: Fixed SlidersWeb control order problem.
  • FIX 26869 Examples: Updated the paths to the graphics used by XojoUnitDesktop.
  • FIX 26795 Framework: Application super classes now fire any no param constructors they may have had.
  • FIX 27359 Framework: Certain kinds of arrays stored in variants no longer cause crashes when later using methods in the Runtime module.
  • FIX 27431 Framework: The 'Format' function no longer leaks memory with certain patterns.
  • FIX 27357 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.
  • FIX 25707 IDE: About window now closes when you press the appropriate platform "close window" key combination.
  • FIX 14684 IDE: Altering the tab order in a web project dirties the project as expected.
  • FIX 27905 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.
  • FIX 24953 IDE: Can no longer add modules to Windows or Web Pages.
  • FIX 27470 IDE: Changed how constants for web projects are resolved to prevent a NilObjectException.
  • FIX 26780 IDE: Control indexes should not be incremented by 2 each time you duplicate an existing one.
  • FIX 23492 IDE: Controls being dragged now appear on top of all other controls during the drag.
  • FIX 14137 IDE: Copy and duplicate for databases are disabled as they really can't be duplicated
  • FIX 26525 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 fix 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.
  • FIX 13154 IDE: Copy/pasting Control Sets no longer skips index 0.
  • FIX 26932 IDE: Debugger is not inadvertently closed when using the history (back/forward) navigation buttons in some cases.
  • FIX 26659 IDE: Debugger is not inadvertently closed when using the history (back/forward) navigation buttons in some cases.
  • FIX 27705 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.
  • FIX 26651 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.
  • FIX 24406 IDE: Editing several report controls at the same time work again.
  • FIX 26801 IDE: Editing subrows that are a menu item array no longer causes an exception.
  • FIX 27010 IDE: Empty copy files steps now load properly.
  • FIX 26939 IDE: Entering the name field and pressing enter without changing anything no longer marks the project dirty.
  • FIX 26121 IDE: Exteral items now properly display event handlers that have no code after reloading the project.
  • FIX 26949 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.
  • FIX 25718 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.
  • FIX 27519 IDE: Fixed one more straggler in the Xojo name switch.
  • FIX 27152 IDE: Help->Tutorials no longer shows a "Page Deleted" webpage.
  • FIX 26095 IDE: Importing items no longer lists the items twice. The hierarchy is maintained upon import and the Navigator is updated properly.
  • FIX 27080 IDE: Inspector no longer tries to open with width or height = 0 in certain situations.
  • FIX 26674 IDE: Jump bar shows Xojo document icon.
  • FIX 14605 IDE: LangRef no longer crashes when displaying some pages.
  • FIX 27428 IDE: Length fields of columns in the database editor can now be changed.
  • FIX 24486 IDE: Loading projects no longer drops parenting.
  • FIX 23623 IDE: Login confirmation dialog no longer shows the current document name.
  • FIX 26642 IDE: Modified file indicator is now properly cleared after saving.
  • FIX 27385 IDE: New smaller switch is no longer pixelated on Windows/Linux
  • FIX 26750 IDE: No longer crashes if an ExternalScriptStep can't open the script.
  • FIX 27291 IDE: Real ID is no longer present on the sign in window.
  • FIX 26936 IDE: Relocating files updates the manifest with the selected files path.
  • FIX 15258 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.
  • FIX 26585 IDE: Removing items from a control array no longer results in the Navigator being out of sync.
  • FIX 15085 IDE: Resolving a deprecated super class also updates inherited view behaviors. We had been just updating the class' stated super.
  • FIX 19347 IDE: Right clicking on a database and then NOT selecting an item in the contextual menu no longer raises an exception.
  • FIX 27759 IDE: Save As functions as expected again.
  • 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 6889 IDE: Search should be reporting results for every possible item type - both in the name and the value.
  • FIX 27502 IDE: Selecting the running application in the Navigator and pressing delete is not longer allowed.
  • FIX 27795 IDE: Spotlight query has been removed from search results.
  • FIX 25947 IDE: Text in the Navigator no longer has a chiseled look to it.
  • FIX 26967 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.
  • FIX 25479 IDE: The check item for errors on the code editor toolbar now works.
  • FIX 26910 IDE: The index.php file in www.xojo.com/doc was pointing to the wrong site.
  • FIX 27602 IDE: The message displayed when the debugged application cannot connect to the IDE no longer mentions the 'REALbasic IDE'.
  • FIX 26998 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).
  • FIX 23951 IDE: The Scope and Interfaces items should NOT show for menu items.
  • FIX 9874 IDE: Undoing the change of a super no longer changes the name of the item.
  • FIX 27123 IDE: Various editors no longer cause NilObjectExceptions when used in a floating palette.
  • FIX 26838 IDE: Web projects with a toolbar no longer get marked dirty when compiling.
  • FIX 27178 IDE: Web Viewer has been renamed back to HTML Viewer for web projects.
  • FIX 26244 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.
  • FIX 24350 IDE: When resolving missing images, resolving one image now attempts to resolve all others in the same location.
  • FIX 24781 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.
  • FIX 26841 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.
  • FIX 27575 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).
  • FIX 23953 IDE: _PhantomProfiler no longer shows in the class browser when setting a super.
  • FIX 27184 Lingua: "Export -> To Application" now generates correct strings files on OS X.
  • FIX 27482 Linux IDE: Database column inspector fields no longer contain extraneous characters for Name and Length labels
  • FIX 27016 Linux: Now uses the correct default font on Ubuntu Studio 13.04.
  • FIX 27513 Linux: Now uses the system default stack size for the main thread.
  • FIX 25301 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.
  • FIX 27062 MacCocoa: ApplyMask now works correctly for pictures without alpha channels.
  • FIX 26980 MacCocoa: Assigning any value to Window.LiveResize no longer breaks window resizing.
  • FIX 26902 MacCocoa: Changing Canvas.UseFocusRing while the canvas has focus now works correctly.
  • FIX 27166 MacCocoa: Checkboxes in a ListBox are now drawn disabled if the Listbox is disabled.
  • FIX 25869 MacCocoa: Default buttons no longer draw a white rectangle if the caption is too large for the button.
  • FIX 23249 MacCocoa: Fixed an assertion that would occur when using RGBSurface.FloodFill on a picture with an alpha channel.
  • FIX 21670 MacCocoa: No longer asserts when trying to open an EPS file.
  • FIX 27066 MacCocoa: Non-resizable metal windows no longer have a border on the bottom.
  • FIX 27197 MacCocoa: Single line labels now center vertically.
  • FIX 23895 MacCocoa: The AppleEvent classes are now Unicode savvy.
  • FIX 27441 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.
  • FIX 23384 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.
  • FIX 26247 Profiler: Clicking on the name column no longer sorts the profiler as it can get things out of order.
  • FIX 25268 Web: Setting cookies now works more consistently.
  • FIX 27497 Web: WebHTMLViewer's default URL is now http://www.xojo.com/
  • FIX 27529 Web: WebSession.ConfirmationMessage now gets disabled if the browser disconnects from the web app.
  • FIX 27067 Web: WebSessionContext stores and returns valid sessions for the current thread again.
  • FIX 27054 Web: Windows CGI apps now build properly on Mac/Linux again.
  • FIX 27259 Windows IDE: adding an icon to a BevelButton no longer distorts the image each time the project is compiled
  • FIX 24515 Windows IDE: Inspector no longer flickers so much.
  • FIX 26978 Windows IDE: No longer need to press Del twice in Attributes editor to start deleting text.
  • FIX 26977 Windows IDE: Pressing Del in the Attributes editor no longer deletes the selected item.
  • FIX 27172 Windows IDE: Pressing the Enter key (the one on the numeric keypad) in the code editor now inserts a new line.
  • FIX 27141 Windows: Playing sounds (other than WAVs) no longer leak memory.
  • FIX 27475 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
  • FIX 27170 Windows: WebKit based HTMLViewer no longer suppresses the spacebar key.
  • New Items:
  • NEW 26879 Doc: User Guide and Wiki updated with sections for useful code editor keyboard shortcuts.
  • NEW 25820 DocLangRef: Added a new template for displaying methods that are used like properties.
  • NEW 23036 DocLangRef: Added ActionSource as an interface to Timer, PushButton, BevelButton and added an example to ActionSource.
  • NEW 22601 DocLangRef: Added example to ActionSource interface.
  • NEW 13539 DocLangRef: Clarified Window.Maximize, Minimize and Restore event handlers and methods.
  • NEW 16200 DocLangRef: Improved ListBox.ListIndex docs.
  • NEW 12555 DocLangRef: Removed NewMemoryBlock.
  • NEW 17761 DocLangRef: Test apps for deployment now accessible via doc wiki "Web Deployment Overview" page.
  • NEW 27732 Examples: Added IDECommunicator project to controlling the IDE using IDE Scripts from a command-line app.
  • NEW 27494 IDE: Added "Introduction to Programming" item to the Help menu.
  • NEW 21486 IDE: Attributes editor columns are now resizable.
  • NEW 26767 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 new search term.
  • NEW 13440 IDE: Class instances placed on a layout that have NO default constructor and no public zero parameter constructor will cause compilation to fail.
  • NEW 12344 IDE: Cmd-Option-H hides other applications.
  • NEW 26911 IDE: In the LR viewer, external links should now open in the default browser (including he new online reference external links for the PDF's & books).
  • NEW 27493 IDE: Menu title changed to read Xojo Support Forum.
  • NEW 27654 IDE: Profiler data can now be saved by right clicking on the profiler list
  • NEW 27024 IDE: Rows in the ListBox and PopupMenu inline editors can be reordered using drag and drop.
  • NEW 27711 IDE: Search segmented control has help tags to explain the settings.
  • NEW 27523 IDE: The Behavior Inspector dialog/sheet is now resizable to make it easier to edit default values.
  • NEW 26413 IDE: Thread(0) shows as "Main Thread" in profile results.
  • NEW 26890 IDE: Tightened the spacing on the Inspector.
  • NEW 21133 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 new project (instead of an empty project). If both a xojo_binary_project and rbp are present the xojo_binary_project will be used.
  • NEW 27483 Windows IDE: pressing enter/return to commit change to an inspector field no longer beeps
  • Changes:
  • CHANGE 26973 Doc: Removed unused images from online wiki.
  • CHANGE 18100 Framework: Removed deprecated binding interfaces namely: BooleanProvider, ListInterface, StringInterface, StringProvider, DataAvailableProvider, BindingInterface, BindPartInterface, ListDataProvider, ListDataNotifier, ListDataNotificationReceiver, TupleInterface, EnablingBinder, ActionBinder, StringBinder, and ListBinder.
  • CHANGE 27827 IDE: Local LR updated as of June 28, 2013.
  • CHANGE 26969 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.
  • MacCarbon: Fixed a bug that could cause some movies not to load.
  • MacCocoa, Linux: HTMLViewer's Error event now fires.
  • MacCocoa: A BevelButton's caption no longer disappears if the width of the control is less than the width of the icon.
  • MacCocoa: A TextArea's insertion point is now adjusted to be the inverse of the background color.
  • MacCocoa: Adding and removing tabs to a TabPanel at runtime now works correctly.
  • MacCocoa: Applications no longer get warnings in console about the use of userSpaceScaleFactor.
  • MacCocoa: Applications with no menubar specified now have a minimal application menu that includes the standard items (Services, Hide, Hide Others, Show All, and Quit).
  • MacCocoa: BevelButton CaptionPlacement values are no longer treated incorrectly.
  • MacCocoa: BevelButton menus now appear at the correct location when the button is on a secondary display.
  • MacCocoa: BevelButton no longer asserts with 'invalid' font names and is no longer case sensitive in how it treats font names.
  • MacCocoa: BevelButton now draws its caption disabled if the control is disabled.
  • MacCocoa: BevelButton now invalidates properly when its properties are changed.
  • MacCocoa: BevelButton properly refreshes after changing its properties.
  • MacCocoa: BevelButton's MouseDown event now fires.
  • "MacCocoa: BevelButtons now respect the user's ""full keyboard access"" setting."
  • MacCocoa: Canvas controls that set UseFocusRing no longer cause excessive drawing when focus is gained/lost. Additionally, Listboxes that set UseFocusRing no longer refresh the entire window when focus is gained/lost.
  • MacCocoa: Canvas controls that set UseFocusRing no longer leave artifacts when the window they are on deactivates.
  • MacCocoa: Canvas controls that set UseFocusRing no longer leave artifacts when they lose focus.
  • MacCocoa: Changing a control's MouseCursor property now works during a mouse drag.
  • MacCocoa: Changing the background color of a TextField that has keyboard focus now works.
  • MacCocoa: Changing the text of a top-level menu item now works correctly.
  • MacCocoa: Checking an ImageWell's Image against nil no longer raises an OutOfBoundsException.
  • MacCocoa: Clicking an item in a ComboBox's drop down list now triggers the ComboBox's Changed event.
  • MacCocoa: Clicking on a BevelButton that's on an inactive floating window no longer makes the floating window have focus.
  • MacCocoa: Clicking on a selectable label no longer turns the text color to black.
  • MacCocoa: Clicks on a ListBox's scrollbars now trigger the ListBox's MouseDown event.
  • MacCocoa: ComboBox.SelStart and SelLength now work correctly.
  • MacCocoa: ComboBox.UseFocusRing now works.
  • MacCocoa: CueText is now preserved when toggling a TextField's Password property.
  • MacCocoa: Disabling MenuItems from a sheet's EnableMenuItems event now works correctly.
  • MacCocoa: DisclosureTriangle's Action event now fires when changing the Value property programatically.
  • MacCocoa: Drop down toolbar buttons now draw at the correct size when running in HiDPI mode.
  • MacCocoa: Drop down toolbar items can now be disabled.
  • MacCocoa: ExportPicture now provides output format options.
  • MacCocoa: Fixed a crash with that could occur when closing an HTMLViewer that had loaded a page.
  • MacCocoa: Fixed an Objective-C exception that would occur when pressing a dead key that has no modifiers.
  • MacCocoa: Fixed the MouseDown event on a Window not firing.
  • MacCocoa: Fixed ToolbarItems not stripping ampersands from their captions.
  • MacCocoa: Focus rings are no longer put on plugin controls that don't specify REALcontrolFocusRing.
  • MacCocoa: For an inactive floating window, clicking on a Canvas, a ContainerControl, or the window itself no longer forces the window to become active.
  • MacCocoa: Getting/setting TextArea.SelOutline no longer causes assertions.
  • MacCocoa: Graphics.DrawPicture no longer crashes if the source rectangle is out of bounds.
  • MacCocoa: HTMLViewers now work on windows that were shown via Window.ShowModal.
  • MacCocoa: ImageWell no longer constrains the image size to the available size of the control.
  • MacCocoa: ImageWell's MouseDown/MouseDrag/MouseUp events now fire correctly.
  • MacCocoa: ImageWells now accept drops.
  • MacCocoa: Keyboard.Async*Key no longer returns false positives.
  • MacCocoa: Listbox column headers no longer remain highlighted when the window is disabled (i.e. lost focus).
  • MacCocoa: ListBox headers now draw correctly instead of having strange lines or no lines at all.
  • MacCocoa: Listbox.CellBackgroundPaint's graphics context is no longer offset by the top border amount which would lead to the selection highlight being off a pixel.
  • MacCocoa: Listbox.CellHelpTag works correctly now.
  • MacCocoa: ListBoxes that are inside of a TabPanel now draw their headers correctly.
  • MacCocoa: MenuItem Action event handler are now working.
  • MacCocoa: MessageDialog.GraphicCaution now matches the Carbon appearance.
  • MacCocoa: Metal windows no longer change appearance when being resized.
  • MacCocoa: Movable modal dialogs no longer have incorrectly drawn corners.
  • MacCocoa: No longer 'leaks' four CFStrings when switching applications.
  • MacCocoa: No longer crashes if you present a FolderItemDialog that has no file extensions specified. It now falls back to the Mac type from the filter.
  • MacCocoa: No longer crashes when assigning an empty string to PrinterSetup.SetupString.
  • MacCocoa: No longer crashes when getting BevelButton's Icon property and using it for anything.
  • MacCocoa: No longer has unbounded memory growth when using Graphics from a thread or timer.
  • MacCocoa: NotePlayer's gunshot instrument (128) now works correctly.
  • MacCocoa: OpenURLMovie now works correctly.
  • MacCocoa: Password text fields now send KeyDown/KeyUp events.
  • MacCocoa: Picture.FromData now releases its memory immediately instead of waiting until the event loop iteration is over.
  • MacCocoa: Picture.Open now releases its memory immediately instead of waiting until the event loop iteration is over.
  • MacCocoa: PopupMenu now honors its TextFont property.
  • MacCocoa: PopupMenu now honors its TextSize property. The underlying NSPopUpButton still only draws at fixed sizes however, so this does not fix case #16698.
  • MacCocoa: Printing is no longer limited to 72DPI.
  • "MacCocoa: PushButton's ""Rescessed"" button style has been renamed to ""Recessed"", which is spelled properly."
  • MacCocoa: RadioButton's Action event no longer fires before its Open event if its Value property was set to True in the IDE.
  • MacCocoa: RadioButton, Checkbox, and PopupMenu now respect the chosen text size.
  • MacCocoa: REALSetMovieMovie now works correctly.
  • MacCocoa: RectControl.DragOver now only fires when the mouse moves, instead of firing continuously.
  • MacCocoa: RectControl.MouseX and RectControl.MouseY are now relative to the window and not the control.
  • MacCocoa: RuntimeException.Stack detects when symbol names would be 'incorrect' and creates a placeholder function name instead. For example, 'RBGUIKit.xojo_plugin_0.dylib$235' instead of 'PluginMain'.
  • MacCocoa: Scaling the printer setup no longer results in the printing drawing origin being incorrect.
  • MacCocoa: SelectAll now triggers TextArea's selection changed event.
  • MacCocoa: Setting a MessageDialog's alternate button to be default no longer results in two buttons showing the default button 'pulsing blue' status.
  • MacCocoa: Setting a RadioButton's Text property now strips ampersands correctly.
  • MacCocoa: Setting ComboBox.ListIndex to -1 now actually sets it to -1 instead of just clearing the text.
  • MacCocoa: Setting ComboBox.Text programmatically now triggers the TextChanged event.
  • MacCocoa: Setting the text or selected text of a TextField/TextArea/ComboBox now resets the undo manager, preventing the undo menu item changing the text or causing assertions.
  • MacCocoa: Setting Underline to False on a Label now works properly.
  • MacCocoa: Simply clicking on a canvas that accepts focus and has a focus ring no longer moves the focus.
  • MacCocoa: Slider values no longer change when using the mouse wheel.
  • MacCocoa: Slider.LiveScroll's initial value is now respected.
  • MacCocoa: Sliders can have negative values now.
  • MacCocoa: Sliders can now have their value set to zero.
  • MacCocoa: Sliders with ticks and a page step that is less the range of the slider now always shows two ticks.
  • MacCocoa: Small progress wheels no longer log a message to console at runtime.
  • MacCocoa: TabPanel's Change event no longer fires before its Open event.
  • MacCocoa: TextArea now ignores enter/return if the TextArea's MultiLine property is False.
  • MacCocoa: TextArea now respects its MouseCursor property.
  • MacCocoa: TextArea's SelTextFont, SelTextSize, SelBold, SelItalic, SelUnderline, SelTextColor, and SelTextAlignment properties now affect the TextArea's typing attributes so that any text the user types will have the correct style.
  • MacCocoa: TextArea's SelTextFont, SelTextSize, SelBold, SelItalic, SelUnderline, SelTextColor, and SelTextAlignment properties now work correctly when the selection length is 0.
  • MacCocoa: TextArea.CharPosAtXY now returns the correct value in a scrolled TextArea.
  • MacCocoa: TextArea.LineNumAtCharPos is now always zero based.
  • MacCocoa: TextAreas that have their Styled property set to False can no longer be manipulated by the font panel or the color picker.
  • MacCocoa: TextField no longer crashes in some situations where a TextField's text was set after the user typed.
  • MacCocoa: TextField.AppendText now works.
  • MacCocoa: TextField.Text is now read back correctly even if it contains a NUL. However, this is still a bad idea and should be avoided.
  • MacCocoa: The 'Help' menu now shows the 'Spotlight for Help' field when its text is localized.
  • MacCocoa: The application menu now gets localized for applications that set the build language but don't provide any dynamic constants for that language.
  • MacCocoa: The application's dock icon now displays the list of open windows.
  • MacCocoa: The IconDX and IconDY BevelButton properties now work in the Cocoa framework.
  • MacCocoa: The ListBox lower right corner is no longer transparent when a border doesn't exist.
  • MacCocoa: The non-asynchronous keyboard modifier getters are now more reliable. For example, they are accurately reported during the EnableMenuItems event.
  • MacCocoa: The print job's title is now based off of the front window, matching the Carbon behavior.
  • MacCocoa: The UserCancelled function now resets itself properly after being called.
  • MacCocoa: The Window Maximize/Restore events now work under Cocoa.
  • MacCocoa: Threads that raise exceptions that aren't caught no longer cause the application to deadlock.
  • MacCocoa: Timer set to mode 1 now resets its mode back to 0 on completion.
  • MacCocoa: Toggling a TextField's Password property no longer makes the field become editable.
  • MacCocoa: Toggling the TextField Password property no longer resets the UseFocusRing property.
  • MacCocoa: Toolbar items no longer get out of sync with their enabled property when the overflow menu is present.
  • MacCocoa: ToolButton drop down menus appear in the correct place. Also, MenuItem's action is now triggered before the Toolbar's DropDownMenuAction event.
  • MacCocoa: ToolButtons that are set to Toggle now properly toggle.
  • MacCocoa: ToolButtons with style ToolStyleDropDown now show their drop down menu in the overflow menu.
  • MacCocoa: UpDownArrows' KeyDown event now fires correctly.
  • MacCocoa: When a sheet is open, menu item actions no longer go to the parent window.
  • MacCocoa: When Quit is called when there are windows with sheets on them, including MessageDialogs, the program now beeps and stops the quit process. This matches the Carbon behavior.
  • MacCocoa: When using MenuItem.PopUp from a modal window, all of the menu items are no longer disabled.
  • MacCocoa: Window's Resized event now fires when resizing from the top or left edges.
  • MacCocoa: Window.ContexutalMenuAction now fires correctly.
  • MacCocoa: Window.UpdateNow now flushes the window contents instead of causing an entire refresh of the window.
  • MacCocoa: Windows can be set to move by their window background via declares to -[NSWindow setMovableByWindowBackground:] now.
  • Macintosh: Accepting promised file drags under Carbon has been fixed. An example has been added to demonstrate accepting promised files under Cocoa.
  • 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.
  • 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: No longer adds debug applications to the ""Recent Applications"" list on OS X."
  • 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.
  • MacCocoa: An exception is now raised when manipulating user interface elements from a non-main thread.
  • MacCocoa: DragItem.Handle now returns the underlying NSDraggingInfo object for received DragItems.
  • "MacCocoa: EndOfLine has changed from being a carriage return to a linefeed. EndOfLine.OSX has been added, which returns the linefeed.
  • 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)."
  • MacCocoa: Valid Bundle ID's are required for Cocoa. The bundle ID string must be a uniform type identifier (UTI) that contains only alphanumeric (A-Z,a-z,0-9), hyphen (-), and period (.) characters. The string should also be in reverse-DNS format (but this is NOT required).
  • 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: Naming errors are now shown in a dialog on Linux/Windows and a special warning pane on OS X.
  • 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: Save Project uses Sheet window on OS X.
  • "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.
  • Linux: Picture.FromData now loads the picture from memory instead of creating a temporary file (this requires GTK+ 2.14, otherwise we fallback on creating a temporary file).
  • Mac: The compiler now ignores the 'Mac SDK' user default for Cocoa builds, but still respects it for Carbon.
  • MacCocoa: The application's Open event and the default window's Open event now trigger once the NSApplication has finished launching instead of before. The application's Constructor still fires before then, if you need to modify things early on in the process (but don't open any windows from there).
  • MacCocoa: The menubar is no longer constantly being rebuilt. This results in better performance and the ability to use declares on the underlying NSMenu/NSMenuItem objects.
  • Macintosh: The minimum system version for all applications is now 10.6.
  • 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.

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

  • Fixes
  • 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 (Dec 11, 2012)

  • Bug Fixes:
  • FIX 22563 Compiler: Fixed a crash when parsing a method declaration that had a parameter with no name/type and just a default value. For example, "Sub Bar(=12)".
  • FIX 22886 Compiler: No longer asserts when a class implements an invalid interface name.
  • FIX 22266 Database: Binding an empty string using RealSQLDatabase now works.
  • FIX 18347 Database: Extensive ODBC work done on text fields (and unicode text fields).
  • FIX 13853 Database: Extensive ODBC work done to improve unicode support. To connect to MySQL you should be using the latest version of the driver available from the driver vendor.
  • FIX 18026 Database: Extensive ODBC work was done to improve Unicode support.
  • FIX 13368 Database: No longer keeps the REALSQLDatabase database file locked when the connection failed.
  • FIX 19469 Database: ODBC plugin correctly identifies Boolean types.
  • FIX 20555 Database: ODBC with MS SQL now returns TRUE for BIT columns.
  • FIX 22858 Database: ODBCDatabase no longer fails on RecordSet.Update.
  • FIX 22075 Database: ODBCDatabase.DatabaseName is now correct when used with MS SQL Server.
  • FIX 22166 Database: PostgreSQLDatabase no longer crashes when binding an empty string.
  • FIX 22860 Database: Removed unsupported REALSQLDatabase.DebugMode property.
  • FIX 22654 Database: With PostgreSQLDatabase, accessing a RecordSet after it is closed (via RecordSet.Close or Database.Close) now raises an UnsupportedOperationException instead of crashing.
  • FIX 19253 Desktop: Clipping an already clipped Graphics with negative X/Y now works properly.
  • FIX 22913 Desktop: Instead of crashing when a closed window is used as the parent for ShowWithin/ShowModalWithin, the framework now raises an UnsupportedOperationException.
  • FIX 2122 Desktop: Listbox vertical scrollbar is now updated properly when DefaultRowHeight is changed.
  • FIX 22551 Desktop: Now raises an OutOfBoundsException if the rectangle passed into Window.Bounds' setter has a negative Width or Height.
  • FIX 22604 Desktop: Scroll wheel deltas are correct when natural scrolling is disabled.
  • FIX 22802 Desktop: When showing a modal window in a ContextualMenuAction event, the contextual menu now gets cleaned up properly instead of the Base menu item being reused on subsequent contextual clicks.
  • FIX 22066 DocLangRef: Added CountFields and CountFieldsB to Text Strings category.
  • FIX 21789 DocLangRef: Added info about when MemoryBlock.StringValue can raise an OutOfBoundsException.
  • FIX 7748 DocLangRef: Added links to platform-specific error codes for Serial.LastErrorCode
  • FIX 22763 DocLangRef: Added missing RemoteAddress parameter to WebApplication.SessionWithIdentifier.
  • FIX 4487 DocLangRef: Added note about using ContainerControls with Window.Control property.
  • FIX 18866 DocLangRef: Added Ptr declaration to MemoryBlock.Operator_Convert.
  • FIX 22616 DocLangRef: Added Rect.LocalPoint and Rect.LocalRect.
  • FIX 22421 DocLangRef: Clarified "All" property on FileType.
  • FIX 20583 DocLangRef: Clarified all parameters for WebSession.Cookies.Set.
  • FIX 21796 DocLangRef: Clarified Border property Double vs. Boolean usage.
  • FIX 22637 DocLangRef: Clarified Me vs. Self.
  • FIX 12896 DocLangRef: Clarified that arrays and object types are always passed ByRef.
  • FIX 21790 DocLangRef: Clarified that Movie properties require QuickTime on Windows and are not available at all on Linux.
  • FIX 22460 DocLangRef: Clarified that the Window function returns Nil for unavailable window numbers.
  • FIX 14049 DocLangRef: Combined Invoke into one entry in the MethodInfo method table.
  • FIX 22510 DocLangRef: Fixed examples for FileType to show Icon property is read-only.
  • FIX 22566 DocLangRef: Fixed examples for MySQLPreparedStatement to use correct bind types.
  • FIX 22678 DocLangRef: Fixed typo in BevelButton.List.
  • FIX 22867 DocLangRef: MouseUp is called even if mouse is released outside the control.
  • FIX 22983 DocLangRef: MySQLCommunityServer.GetInsertID and GetAffectedRows now indicate that UInt64 is used.
  • FIX 22618 DocLangRef: Noted that Picture.Save will overwrite existing files.
  • FIX 23320 DocLangRef: RecordSet.RecordCount is now identified as a method and not a property.
  • FIX 23052 DocLangRef: Removed invalid ConstructorInfo.ReturnType property.
  • FIX 18419 DocLangRef: Report.Units now redirects to Reports page where they are described.
  • FIX 12862 DocLangRef: Searching for Build Automation brings up the IDE Script topic in the wiki which describes Build Automation, IDE Script and related features. The new User Guide also has a section on Build Automation.
  • FIX 5453 DocLangRef: Specified timeout units for DoShellCommand (milliseconds) and ODBCDatabase (seconds).
  • FIX 21735 DocLangRef: TabPanel Append method now links to correct page.
  • FIX 20330 DocLangRef: Updated Canvas.Paint examples.
  • FIX 22018 DocLangRef: Updated description of RegistrationAccessErrorException.
  • FIX 17909 DocLangRef: Updated examples for PropertyInfo.Value to show how to set/get a value and how to access an array.
  • FIX 22427 DocLangRef: Updated examples for RGBSurface.
  • FIX 22406 DocLangRef: Updated ListBox.AddFolder reference to example project.
  • FIX 11830 DocLangRef: Updated MouseCursor to indicate Control and Window MouseCursors only work when Application MouseCursor is Nil.
  • FIX 22863 DocLangRef: Updated RectControl.Parent description.
  • FIX 22700 DocLangRef: Updated Toolbar example.
  • FIX 20586 DocLangRef: WebFile.Cached documented.
  • FIX 18898 DocLangRef: WebPopupMenu methods now in docs.
  • FIX 17501 DocPluginsSDK: Added new REALcontrolHandlesKeyboardNavigation flag. This flag only applies on Windows, use it to suppress the default keyboard focus navigation (i.e. suppress arrow keys and modifier-less keyboard mnemonics from switching control focus).
  • FIX 12220 DocUserGuide: Added information about Accept File Types setting for OS X builds.
  • FIX 3651 DocUserGuide: Documented Lock Position for controls.
  • FIX 22595 DocUserGuide: Updated Obtaining Updates section.
  • FIX 10105 Examples: Added GraphicsPrintingExample.rbp.
  • FIX 9576 Examples: All included examples have been updated to latest version.
  • FIX 9990 Examples: Duplicate examples removed.
  • FIX 4471 Examples: Removed outdated ContextualMenu examples.
  • FIX 9963 Examples: Updated Copy and Move Example.
  • FIX 22302 Examples: Updated FluidsDemo.rbp.
  • FIX 14447 Examples: Updated TrayExample.rbp.
  • FIX 21321 Framework: Drawing Object2D objects with rotation now works in Console/Web apps.
  • FIX 22376 Framework: HTTPSocket Content-Type and Content-Length headers are no longer dependent on the selected method.
  • FIX 22839 Framework: HTTPSocket: Removed handling for HTTP 1.1 chunked responses.
  • FIX 20587 Framework: IPCSockets no longer can hang trying to do DNS resolution when connecting.
  • FIX 23078 Framework: Items in the REALbasic module that should have been marked as hidden now are actually hidden.
  • FIX 22706 Framework: JSONItem no longer fails with an OutOfBoundsException when initialized with an empty string.
  • FIX 22262 Framework: MemoryBlock no longer reads memory outside of the MemoryBlock's bounds when getting the value of a 24-bit color.
  • FIX 22517 Framework: Renamed Encodings.UCS4 to UTF32, this encoding assumes the endianness of the machine and does not add a BOM to the string (this is inline with that Encodings.UTF16 does currently). UTF32 now works on Windows.
  • FIX 22235 Framework: When a hidden container becomes visible its children are no longer hidden initially.
  • FIX 15458 IDE: Constants now work for the Web Page Editor.
  • FIX 22621 IDE: Copy files steps for Windows no longer create an additional folder named with the full name of the windows executable + libs.
  • FIX 21775 IDE: Exported web pages, web dialogs & styles in vcp format can now be imported again.
  • FIX 14781 IDE: Filetype Sets entries which contain a MacType or MacCreator which contain trailing spaces no longer get trimmed.
  • FIX 23189 IDE: Hidden properties are not shown in the Property Behavior window.
  • FIX 13944 IDE: Invalid xml will not cause an error in reading the multi item file but may still produce an XML error if you try to import it.
  • FIX 22989 IDE: Project Template window now has an appropriate minimum size.
  • FIX 21643 IDE: Properties for Major, Minor, Debug, Non-Release, and Stage should never print out in scientific notation.
  • FIX 22612 IDE: Remote Debugging "Failed to connect properly." message is now a dynamic constant.
  • FIX 8865 IDE: Report Editor controls whose height and/or width are zero or one are now selectable and draggable.
  • FIX 19423 IDE: The IDE no longer takes a long time to start/quit due to temporary files accumulating.
  • FIX 21998 IDE: The semicolon (;) is not allowed in folder names as it breaks VCP projects.
  • FIX 20251 IDE: The text in the dialog that warns when a control that doesn't support composite windows is added to a composite window, has been updated. The updated text removes information such as versions of Mac OS that are no longer supported. The text was also rewritten to better conform with Apple's UI guidelines for dialog boxes.
  • FIX 22948 IDE: The UTI column of a file type is also searched.
  • FIX 23294 IDE: Using the Style Editor to edit the background of the style no longer throws an OutOfMemoryException on Windows.
  • FIX 22932 IDE: We no longer require a tickle of the Finder to make the icon show & this fixes an issue on 10.8.2.
  • FIX 22605 Linux TextArea/TextField: when the selection change is caused by a mouse event, the SelChange event now fires before the mouse is released like other platforms
  • FIX 22952 Linux: calling the Keyboard Async key methods (i.e. AsyncKeyDown, AsyncShiftKey, etc.) in App.Open, or in a tight loop, now works
  • FIX 22540 Linux: CanGoBack, GoBack, CanGoForward and GoForward now work properly with the WebKit based HTMLViewer.
  • FIX 22476 Linux: Graphics DrawRect, DrawRoundRect, and Pixel now draw correctly instead of being off by 1.
  • FIX 23150 Linux: MenuItems no longer leaks memory, especially if a Tag was assigned.
  • FIX 17539 Linux: Picture.Open no longer crashes when called from a thread.
  • FIX 22354 Linux: Plugins drawing pictures on a graphics from an Offscreen Paint event now offsets the picture properly.
  • FIX 22584 Linux: Setting the Text on the Clipboard no longer wipes out the Picture that was on the clipboard, and vice versa.
  • FIX 22576 Linux: ShowURL now works in newer distros (like Ubuntu 12.04) by using xdg-open to open the file or URL in the user's preferred application.
  • FIX 22190 Mac: App.LongVersion string no longer has the wrong encoding set.
  • FIX 22668 Mac: rbframework.dylib has been moved from Contents/MacOS/ to Contents/Frameworks/ in order to be compatible with XPC.
  • FIX 19046 Mac: Variant.CFStringRefValue no longer leaks CFStrings.
  • FIX 22494 MacCocoa: An ApplicationMenuItem instance no longer appears in both the application menu and the parent designated in the IDE at design time.
  • FIX 21755 MacCocoa: Calling ShowWithin and then Show on a sheet window no longer causes the parent window to go away when the sheet is closed.
  • FIX 22429 MacCocoa: DragItem.Drag now starts in the correct position if invoked during a MouseDrag event.
  • FIX 22995 MacCocoa: Graphics.DrawString no longer crashes if the string contains invalid data for the specified encoding.
  • FIX 23043 MacCocoa: Graphics.StringWidth no longer crashes if the string contains invalid data for the specified encoding.
  • FIX 21937 MacCocoa: IsContextualMenu now returns true for control clicks.
  • FIX 693 MacCocoa: Keyboard.KeyName now works with non-QWERTY keyboard layouts.
  • FIX 9285 MacCocoa: KeyChain.Delete no longer causes crashes.
  • FIX 18665 MacCocoa: ListBox headers left/right edge no longer overlap its border.
  • FIX 22319 MacCocoa: Listbox no longer fires the ValueChanged event twice for the same value when scrolling with the scroll thumb.
  • FIX 21756 MacCocoa: Listbox resizing with the scroll thumb at its max now scrolls the contents (on the left) into view properly instead of creating display artifacts.
  • FIX 22471 MacCocoa: Listbox ScrollPosition is now correctly updated after the Listbox contents have changed.
  • FIX 21795 MacCocoa: MoviePlayer no longer crashes when setting the Movie property a second time.
  • FIX 21527 MacCocoa: MsgBox displays strings without encodings by replacing all 'invisible' characters with the Unicode replacement character.
  • FIX 17944 MacCocoa: No longer crashes if a ListBox cell's string value contains invalid data for the specified encoding.
  • FIX 22715 MacCocoa: No longer crashes when inside of obj_msgSend due to sending mouseMoved: to a deallocated object.
  • FIX 22197 MacCocoa: No longer leaks memory when assigning to the Label.Text property.
  • FIX 18601 MacCocoa: PrefsMenuItem automatically gets the Command-, keyboard shortcut.
  • FIX 17221 MacCocoa: Pressing Shift-Tab now reports the key as character 9 instead of 25.
  • FIX 18769 MacCocoa: Profiler now works with Cocoa builds.
  • FIX 17587 MacCocoa: RefreshRect no longer clears the whole window/canvas.
  • FIX 20183 MacCocoa: Setting TextArea.Text no longer causes bizarre behavior if the string contains invalid data for the specified encoding.
  • FIX 16611 MacCocoa: Setting TextArea.Text no longer causes runtime errors if the string contains invalid data for the specified encoding.
  • FIX 22374 MacCocoa: Showing a sheet window no longer makes the parent window look inactive.
  • FIX 22835 MacCocoa: TextArea.AppendText no longer silently fails if the string contains invalid data for the specified encoding.
  • FIX 21856 MacCocoa: TextField.Border is now preserved when toggling TextField.Password.
  • FIX 19128 MacCocoa: TextField.Border now works correctly with password fields.
  • FIX 16608 MacCocoa: TextField.Copy and TextField.Paste no longer cause assertions.
  • FIX 22607 MacCocoa: TextField.SelectAll is now functional.
  • FIX 10033 MacCocoa: TextField/TextArea masks now work.
  • FIX 18771 MacCocoa: The EditCopy menu item now copies the contents of the ListBox cell being edited instead of the entire row.
  • FIX 20928 MacCocoa: Tooltip.Show no longer crashes if the string contains invalid data for the specified encoding.
  • FIX 11690 MacCocoa: Window.KeyDown now fires even if no control on the window has keyboard focus.
  • FIX 23034 Remote Debugger: Stub no longer displays "Untitled Window" in the menubar in Ubuntu 12.
  • FIX 23302 Web: Control Array "Add" function no longer takes multiple steps to move forward in the debugger.
  • FIX 22487 Web: Controls that have been removed from the DOM will no longer be queried for their value.
  • FIX 21897 Web: Dynamically created WebContainers are now destroyed when they are closed.
  • FIX 22394 Web: Fixed a bug that could hide an exception behind a NilObjectException.
  • FIX 22537 Web: Fixed a bug which caused server responses to get exponentially slower depending on their size.
  • FIX 21764 Web: Framework: Fixed a bug that could cause commands to reach the browser in the wrong order.
  • FIX 22964 Web: Gradients now work properly in Internet Explorer 10.
  • FIX 21030 Web: HelpTag: Fixed a bug where help tags which contained quotes would not render completely.
  • FIX 22259 Web: iOS no longer shows the loading progress indicator after the app has loaded.
  • FIX 22177 Web: Rapidly fired user events no longer cause NilObjectExceptions in the WebControl event handler.
  • FIX 23049 Web: Replaced AJAX push connection with HTML5 EventSource to work around a vendor bug on iOS.
  • FIX 22371 Web: The error dialog no longer appears behind other controls.
  • FIX 21437 Web: Threads no longer leak.
  • FIX 22829 Web: Unsupported WebView.WaitingForSync is now hidden.
  • FIX 23270 Web: WebContainer control arrays no longer fail with JavaScript errors.
  • FIX 21058 Web: WebContainers added programmatically to Control Arrays no longer cause JavaScript errors.
  • FIX 22721 Web: WebContainers no longer leak.
  • FIX 17256 Web: WebContainers now fire MouseUp events in IE7 and IE8.
  • FIX 21487 Web: WebControl Destructors now fire properly.
  • FIX 22273 Web: WebDialogs now show properly the second time on IE8.
  • FIX 22719 Web: WebDialogs, Webpages and WebContainers no longer leak.
  • FIX 18149 Web: WebPage Resize events are now sent to hidden WebPages.
  • FIX 19418 Web: WebRadioGroup WebRadioButtons are now grouped separately when used in WebContainers.
  • FIX 14425 Web: WebSegmentedControl now sends ListIndex changes to the browser.
  • FIX 22609 Web: WebSession.Secure property now only autocompletes as a getter.
  • FIX 20713 Web: WebSessions no longer leak memory.
  • FIX 22848 Windows: Assigning an icon to a MenuItem no longer leaks memory (this could lead to an OutOfMemoryException at some point).
  • FIX 8076 Windows: Date.ShortDate no longer returns a string without a known encoding.
  • FIX 22435 Windows: DrawLine with the same coordinates, i.e. x1 = x2 = y1 = y2 now draws a pixel like it does on OS X and Linux.
  • FIX 22106 Windows: HTMLViewer no longer crashes when calling IsAvailable.
  • FIX 22822 Windows: HTMLViewer no longer crashes when calling LoadURL within the Constructor.
  • FIX 22202 Windows: Listbox ThinDotted grid lines now draw correctly when App.UseGDIPlus is enabled.
  • FIX 21769 Windows: No longer ignores the WCS/ICC color profile when loading images that have these profiles embedded in them.
  • FIX 22126 Windows: Print method in Console apps no longer appends an extra carriage return on Windows.
  • FIX 22020 Windows: RegistryItem was not honoring some custom permission settings in the Registry and just assumed that if it couldn't do all of the things to that Registry item then all it could do is read/query it. This is the new logic:
  • 1. Try to obtain all access rights 2. If denied then obtain read/write permission 3. If denied then just ask for read permission This is not a complete solution (since it doesn't completely cover all the variable/combination of permission settings) but for most purposes this will suffice.
  • FIX 22696 Windows: Right mouse click now triggers MouseUp event when returning True in MouseDown.
  • FIX 21720 Windows: Service apps no longer raises an assertion when calling DoEvents.
  • FIX 21837 Windows: TextField/TextArea KeyDown event now reports the Key correctly for non-ASCII keys.
  • New Items:
  • NEW 35 Database: PostgreSQL Plugin now supports SSL connections using the following properties:
  • SSLMode As Integer -- can be one of the following constant values defined on the PostgreSQLDatabase class: SSLDisable (default) -- only try a non-SSL connection SSLAllow -- first try a non-SSL connection; if that fails, try an SSL connection SSLPrefer -- first try an SSL connection; if that fails, try a non-SSL connection SSLRequire -- only try an SSL connection. If a root CA file is present, verify the certificate in the same way as if verify-ca was specified SSLVerifyCA -- only try an SSL connection, and verify that the server certificate is issued by a trusted CA SSLVerifyFull -- only try an SSL connection, verify that the server certificate is issued by a trusted CA and that the server hostname matches that in the certificate
  • SSLCertificate As FolderItem -- This property specifies the file name of the client SSL certificate, replacing the default ~/.postgresql/postgresql.crt. This parameter is ignored if an SSL connection is not made
  • SSLKey As FolderItem -- This property specifies the location for the secret key used for the client certificate. It can specify a filename that will be used instead of the default ~/.postgresql/postgresql.key
  • Connect also takes an optional additionalOptions As String parameter. Additional connection options can be found here: http://www.postgresql.org/docs/9.1/static/libpq-connect.html Note: the additional options are passed as is (i.e. not escaped in any way)
  • NEW 7269 Framework: Added Crypto module:
  • Enumeration Crypto.Algorithm MD5 SHA1 SHA256 SHA512
  • New functions:
  • Crypto.Hash (Data As MemoryBlock, Algorithm As Cryto.Algorithm) As MemoryBlock Crypto.MD5 (Data As MemoryBlock) As MemoryBlock Crypto.SHA1 (Data As MemoryBlock) As MemoryBlock Crypto.SHA256 (Data As MemoryBlock) As MemoryBlock Crypto.SHA512 (Data As MemoryBlock) As MemoryBlock Crypto.HMAC (Salt As String, Data As MemoryBlock, Algorithm As Crypto.Algorithm) As MemoryBlock Crypto.PBKDF2 (Salt As String, Data As MemoryBlock, Iterations As Integer, desiredHashLength As Integer, Algorithm As Crypto.Algorithm) As MemoryBlock
  • The MD5, SHA1, SHA256, and SHA512 functions are basically just convenience methods for Crypto.Hash.
  • NEW 23093 Framework: Crypto.HMAC renamed salt parameter to key.
  • NEW 21912 Framework: TextArea: Added LineHeight and LineSpacing properties.
  • LineHeight As Double - Controls the height of each line in the TextArea control (it is global so the effect spans all paragraphs). A value of 0 maintains the default line height of the control, while any other value changes the height of each line. The value is tied to the TextUnit property, so if the TextUnit is in Inches then the LineHeight value specifies a height in Inches. LineSpacing As Double - This controls the spacing between lines. So if you wanted your lines to be double spaced, you would enter a value of 2. The default value is 1, or single spaced.
  • NEW 22629 IDE Scripting: Added a ShowDialog method for showing a MessageDialog during execution of a script.
  • NEW 16203 Linux: Speak method is now available (requires eSpeak which is installed by default on Ubuntu 10.04 or newer).
  • NEW 19186 Web: Added a command-line argument to allow users to set the maximum number of simultaneous connections. The default is 200. Usage: --maxsockets=200
  • NEW 14927 Web: Added WebCanvas control to manage graphics on web pages. WebCanvas works similarly to Canvas.
  • NEW 13727 Web: Dynamic Constants now work in Web projects.
  • NEW 23238 Web: Errors written to Errors.Log when App.UnhandledException does not return True now have a SQL Date/Time written with them.
  • NEW 15251 Web: HTMLArea control included in the Web Custom Control SDK Examples.
  • NEW 19123 Web: Implemented first version of the Web Control SDK.
  • NEW 22344 Web: Right-left languages are now supported.
  • Changes:
  • CHANGE 21799 Compiler: Items that would be placed in the resource fork of a built application in a project are no longer supported.
  • Projects that have these will no longer compile. A issue resolution dialog will be presented when such a project is opened. New resource fork items cannot be added to projects.
  • CHANGE 22939 Compiler: The error message "method or property missing" has been changed to reflect the fact that its not always a method or property that's missing.
  • CHANGE 21640 Database: DatabaseCursorField.MacPictValue and DatabaseRecord.MacPictColumn have been removed.
  • CHANGE 21906 Database: MySQLCommunityServer Plugin changes:
  • Deprecated ConnectSSL, use the following properties instead:
  • SSLMode As Boolean (default False) -- Set to true to enable an SSL connection SSLKey As FolderItem -- the path to the key file SSLCertificate As FolderItem -- the path to the certificate file SSLAuthority As FolderItem -- the path to the certificate authority file SSLAuthorityDirectory As FolderItem -- the path to a directory that contains trusted SSL CA certificates in PEM format SSLCipher As String -- list of permissible ciphers to use for SSL encryption CHANGE 22107 Desktop: Removed RB3D class. CHANGE 22140 Desktop: Removed SpriteSurface and ToolbarItem classes. CHANGE 18256 Desktop: The Canvas.Paint event now has an additional parameter, areas() as REALbasic.Rect, that indicate what areas of the Canvas that need redrawing. If the array is empty, the entire control needs to be redrawn.
  • CHANGE 22981 DocLangRef: Added Compiler category, and link in Theme section of LR.
  • CHANGE 21842 DocLangRef: Added docs for Shell.Canonical.
  • CHANGE 12885 DocLangRef: Added Signature for Reports.Run that takes a RecordSet.
  • CHANGE 20828 DocLangRef: Clarified ContainerControl.EmbedWithin and added an example.
  • CHANGE 21992 DocLangRef: Documented MSSQLServerPreparedStatement class.
  • CHANGE 22543 DocLangRef: Removed duplicate LoadPage entry in Method list.
  • CHANGE 14250 DocLangRef: Simplified example for Picture.Open.
  • CHANGE 22973 DocLangRef: TextInputStream.PositionB is a read/write property.
  • CHANGE 14413 DocLangRef: Updated deprecation messages for FolderItem.MacDirID and MacVRefNum.
  • CHANGE 20611 DocLangRef: Updated docs to indicate that WebApplication.Icon is used as the FavIcon.
  • CHANGE 23334 DocLR: Local Language Reference updated.
  • CHANGE 7338 DocUserGuide: User Interface Guide has links to platform UI standards.
  • CHANGE 20098 Framework: All exported functions now use RBInteger to prepare for 64-bit support.
  • CHANGE 21636 Framework: MemoryBlock.MidB and MemoryBlock.LeftB now work with MemoryBlocks created from pointers.
  • CHANGE 20369 IDE: Local Language Reference replacements should use more recent information.
  • CHANGE 22404 IDE: Plugins can now be loaded from zip files, which should still have the RBX file extension. It also can now load plugins from ordinary directories. In both cases, the structure must match what has traditionally been inside of the VirtualVolume that the Plugin Converter created.
  • Note that HTML help will only work with VirtualVolume-based plugins in this release.
  • CHANGE 20698 Mac: the ResourceFork class has been removed.
  • CHANGE 22764 MacCocoa: The Cocoa framework now builds against the 10.7 SDK.
  • CHANGE 23033 Remote Debugger: Removed use of ResourceFork.
  • CHANGE 2398 Remote Debugging: Starting with 2012r2 and Debugger Stub 1.9, debugged apps are now compressed with gzip to increase transfer speed.
  • CHANGE 22080 Web: Internet Explorer 7 now requires the ChromeFrame plugin.
  • CHANGE 22278 Web: Perl path for Windows builds is now c:\perl\bin\perl.exe
  • CHANGE 19372 Web: Web Edition Standalone Apps are no longer required to have different Application Identifiers; running on different ports is sufficient.
  • CHANGE 23356 WebSDK: Namespace declaration has been changed to a Constant from an event.
  • Constant JavascriptNamespace as String
  • CHANGE 21298 Windows, Linux: TrayItem fixes:
  • - Now throws a PlatformNotSupportedException when used on OS X - Assigning an empty help tag on Windows now works - App.AddTrayItem would return a false positive on Linux when it really did add the tray item so we'll now assume the tray was added successfully and let the user run their main event loop and use declares to determine the actual state of the tray (i.e. whether or not it was really added). See the TrayItem example which includes the declare to check this.

New in Xojo 2012 Release 1.2 (Nov 1, 2012)

  • 22558: MacCocoa: No longer raises an ObjCException when viewing a ContainerControl in the debugger.
  • 22658: Macintosh: Fixed an assertion that was triggered if FolderItem.Item was invoked with an index > 1 on a directory for which the process does not have read access.
  • 21473: Web: Framework: Added a workaround for the iOS 6 Ajax bug.

New in Xojo 2012 Release 1.1 (Nov 1, 2012)

  • 22397: Alpha check for r1.1 has been fixed
  • 22326: Carbon: No longer crashes when calling GetData on a Picture loaded from a PICT
  • 22536: Console: using OLEObject no longer fails with an assertion
  • 22340: Console: Using the AppleEvent classes no longer causes a crash on startup.
  • 22318: Debugger: Again works on Mac OS X 10.5.
  • 22274: Framework: Fixed a bug in HTTPSocket and HTTPSecureSocket which caused the synchronous calls to GET, POST and SendRequest to include NULL characters.
  • 22488: HTTPSocket, HTTPSecureSocket: Fixed a regression where synchronous requests could time out even if all of the data was received.
  • 22246: HTTPSocket: Content-Length header is now being reset to zero before each request
  • 22495: HTTPSocket: Headers are now written in the same order as they were in earlier versions
  • 22363: IDE: Binary data written to an XML formatted project file is again properly encoded as hex bytes when needed
  • 4476: IDE: FileAlias is no longer duplicated in saved projects
  • 21876: MacCocoa: Custom tab orders are now respected.
  • 22207: MacCocoa: No longer leaks memory after receiving a drop via DragItem.
  • 18819: OS X: Application menus are now localized properly
  • 22341: Web: Fixed a bug in our session cookie that caused Apache's Mod_Security module to complain.
  • 16235: Web: WebPopupMenu: Fixed a bug where setting an illegal ListIndex did not get changed to -1

New in Xojo 2012 Release 1 (Sep 3, 2012)

  • Real Studio 2012 Release 1 includes over 350 improvements and 3 new features including:
  • Support for OS X Mountain Lion
  • Webkit Support for HTMLViewer on Windows
  • Incremental Reading/Writing of BLOBs in SQLite/REALSQLDatabase
  • Additionally, this release includes support for OS X Mountain Lion, numerous improvements to Cocoa support and 106 specific improvements to Real Studio Web Edition.

New in Xojo 2011 Release 4 (Dec 7, 2011)

  • 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 2011 Release 3 (Aug 24, 2011)

  • OS X 10.7 Lion Support: Several improvements have been made for Lion, Apple’s latest OS update, including support for high quality voices that are now used for text-to-speech capabilities.
  • HTML5 GeoLocation Support: The WebDeviceLocation class now supports the following additional HTML5 GeoLocation features: Accuracy, Altitude, AltitudeAccuracy, Heading, Speed and TimeStamp. This significantly improves location-based capabilities within applications.
  • Easier CGI Deployment: When building a web app, the CGI now has better file permissions to make it more likely they will be correct when the CGI is installed on the web server. This improves web app development efficiency and speeds the installation process.

New in Xojo 2011 Release 2 (Jun 21, 2011)

  • WebSockets: WebSockets allow for a direct connection between the browser and the app in a way that is more efficient than HTTP/AJAX. Apps should scale better and be more responsive (especially on iOS and Android). Because WebSockets are only supported by Safari and Chrome, Real Studio created apps will still work with other browsers using HTTP/AJAX as they do today. Currently, WebSockets are only supported for stand-alone web apps, not CGI web apps.
  • WebMapViewer control: The WebMapViewer control allows developers to create interactive mapping applications using Google Maps.
  • GeoLocation: The WebDeviceLocation class accesses the HTML5 GeoLocation capabilities in compatible browsers. It allows a user to request a device's location and, if the user agrees, an event fires that returns the latitude and longitude of the device. The WebMapViewer control works great with the new GeoLocation feature.
  • HTML5 Video: WebMoviePlayer is a control that will attempt to play a video file from a web server; the ability to do so is entirely up to the browser. Using the WebMoviePlayer, users can specify a H.264 video or a Mobile WIFI .M4V and the browser will choose which format is compatible and play it. If nothing is compatible, it will use Adobe® Flash® Player to play the video (version 9.0.32 or later).
  • JSON: Javascript Object Notation (JSON) is an essential tool in making external, online services work. The protocol is a way to represent objects as a string so they can be transmitted across the internet.
  • Cocoa Support: Though still a beta feature, support for Cocoa is nearly complete. Users can now choose to compile their applications with the Cocoa build option. Many users find their apps compile with few if any issues.

New in Xojo 2011 Release 1.1 (Apr 21, 2011)

  • Fixed a bug in WebListBox where DeleteAllRows did not clear the selected rows
  • Fixed a bug in the Web Framework which caused touch events to omit touch coordinates when converting to mouse events.
  • Image Views now load & retain their size as set in the initial design when using VCP project types
  • Linux: TextField.SelText now places the text cursor consistently with our other platforms (i.e. Mac/Windows)
  • RbScript: no longer crashes on Core i7 MacBook Pros.
  • KeyUp and KeyDown events now fire on WebPage for IE8
  • Projects saved as VCP will properly reload & display web styles assigned to controls
  • Compiler: the IDE no longer has a failed assertion if a project contains a database.
  • Fixed a bug in WebDialog which caused the underlying WebPage to become unusable when a sheet was dismissed
  • Linux: Picture.GetData now works in Desktop apps

New in Xojo 2011 Release 1 (Mar 8, 2011)

  • Easier Deployment of Web Applications: This release removes the prior implementation for FastCGI deployment using REAL Studio Web Edition. The new CGI option outputs a Perl script that acts as a gateway between your web server and your application. The Perl script goes into the cgi-bin folder, allowing for easier hosting and supporting many more hosting services.
  • Improved Web Application Exception Handling: The Session class now has an UnhandledException event to make it easier to trap exceptions that were not handled in code.
  • Improved Web Application JavaScript Error Handling: When an error occurs in the client-side JavaScript a dialog is now presented that gives the user an option to send the error message to the web application. This information is received by an event the developer can implement to log this information.
  • Improved Web Application File Uploading: You can now limit the number of files the user can upload and new events have been added allowing you to determine when a file has been added or removed.
  • Improved XML Support: XML Classes now use LibXML2, which is actively updated.
  • Improved HTMLViewer: The HTMLViewer now supports getting and setting custom user agent strings and increasing/decreasing the font size.
  • Multiuser Support for RealSQLDatabase: RealSQLDatabase now has a new MultiUser property. This allows web applications to permit multiple users access to a RealSQLDatabase file at the same time. This may eliminate the need, for some web applications, to require a database server.
  • Improved WebListBox: This WebListBox now has a CellClick event, just like the desktop Listbox has. It also now has Cell and Column style properties allowing far greater control over the look and behavior of cells.
  • Improved Drag and Drop: The new DragPicture property lets you use an image for dragging.
  • Improved Mac OS X Clipboard Support: UTIs (Universal Type Identifiers) are now supported by the Clipboard class on Mac OS X.
  • New Microsoft SQL Server Support: A new, native Microsoft SQL Server plugin has been added. This plugin supports Windows only.
  • Improved Cocoa support: This release includes a huge number of improvements to our Cocoa framework. See the release notes for more details.

New in Xojo 2010 Release 5.0 (Dec 14, 2010)

  • Includes 14 new features and 79 improvements. This release also introduces a new platform, REAL Studio Web Edition!
  • REAL Studio Web Edition is the fastest, easiest way to build web applications because you build web apps the same way you build desktop apps. REAL Studio Web Edition does away with the need to learn multiple web technologies like HTML, CSS, JavaScript, AJAX, PHP and Java by offering a single language and development tool. REAL Studio Web Edition is available as a new edition of REAL Studio and is also included in the Enterprise Edition.

New in Xojo 2010 Release 4 (Oct 19, 2010)

  • FIX12 FolderItem.Child now raises an exception on Mac OS if the path contains invalid characters.
  • FIX80 Internal only
  • FIX2241 Windows: HTMLViewer no longer disappears when HTMLViewer.Refresh is called (2010r4b1)
  • FIX3526 The Cocoa MessageDialog now has proper keyboard shortcuts when used as a save dialog (matching other Cocoa applications).
  • FIX8830 Checkboxes in Cocoa now support the indeterminate state. They also respect their initial values.
  • FIX9639 MySQL Community Plugin: no longer depend on Intel libraries on Linux (i.e. fixes the undefined symbol _intel_fast_memcpy error)
  • FIX10498 Linux: Multiline StaticTexts now centers and right justifies properly
  • FIX10551 Checkboxes in Cocoa now respect their initial state. (2010r4a1)
  • FIX10643 Cocoa: PagePanels no longer have a significant delay when switching items. (2010r4a1)
  • FIX11431 StdIn.ReadLine/Read no longer block threads (2010r4b1).
  • FIX11464 The debugger now stops more reliably under Cocoa. (2010r4a1)
  • FIX11483 Controls in other controls no longer jump around wildly when parented in other controls.
  • FIX11677 Cocoa: When a window with a PagePanel first opens, it no longer briefly displays the contents of every pane. (2010r4a1)
  • FIX11733 Focus rings now appear in Canvases if the AcceptFocus and UseFocusRing properties are true in Cocoa (matches the Carbon behavior).
  • FIX11771 MouseDrag event no longer fires continuously if the mouse is not moved.
  • FIX11914 Simply switching tabs in a project does not mark it dirty
  • FIX12044 Application Icon editor calculates correct data channel when accepting an image with translucency.
  • FIX12060 Controls in the report editor now create properly when selecting them in the control list and dragging the bounds out on the report layout.
  • FIX12156 The MessageDialog in Cocoa no longer has accessibility issues when presented as a sheet. Note: This was originally entered as a
  • NEWfeature but was changed to a bug so this release note may appear twice.
  • FIX12157 Under Cocoa, the Window.Activate event now fires after the Window.Open event.
  • FIX12269 Listbox: setting Listbox.CellCheck in code now fires the CellAction event.
  • FIX12360 The Cocoa framework now strips Windows/Linux keyboard accelerators from StaticTextControls.
  • FIX12634 Fixed a bug in SMTPSecureSocket which would not reset the state after finishing sending mail. An SMTP server will usually forcefully disconnect the socket, causing the state to be reset on the next connection. Some servers will sometimes not forcefully disconnect the client. SMTPSecureSocket will now disconnect when asked by the server, allowing future calls to SendMail to function properly.
  • FIX12640 Setting a TabPanel's Value property now works in Cocoa.
  • FIX12672 IDE: hidden items are no longer revealed in Autocomplete list
  • FIX12690 (2010r4b1)
  • FIX12721 N/A
  • FIX12758 Commands being dispatched with the build window as front most were not being handled properly which explains why this bug only manifested itself in builds and not runs. It has been fixed
  • FIX12764 The "special/any" filetype works in Cocoa open dialogs.
  • FIX12765 Bevel button subclasses can be added to window layouts again. This broke in a prior release (2010r4b2)
  • FIX12803 The Cocoa framework now strips Windows/Linux keyboard accelerators from GroupBox, TabPanel, CheckBox, PushButton, and PopupMenu controls (2010r4b1).
  • FIX12805 Local help db is versioned so each release, including separate beta releases, will check and update the db if necessary (2010r4b1).
  • FIX12876 The table presented in Chapter 7 is no longer incorrectly formed. This was a general bug in the rendering code that mishandled the closing wiki table tag (2010r4b1).
  • FIX12890 Default PushButtons that are placed on Canvases or ContainerControls no longer cause the application to deadlock under Cocoa (2010r4b1).
  • FIX12969 The compiler no longer crashes if you specify that your class implements another class (instead of an interface) Instead, it gracefully errors (2010r4b1).
  • FIX12980 Cocoa open and save dialogs now use extensions instead of HFS type codes.
  • FIX12992 OpenGLSurface: the Render event is now called when the OpenGLSurface needs repainting on Windows (this change in behavior makes it consistent now with how it currently works on Mac/Linux)
  • FIX12996 The Action event for DisclosureTriangles now fires in the Cocoa framework.
  • FIX13021 A class that is defined outside a module and used as a moudle property properly autocompletes again (2010r4b1)
  • FIX13038 You can once again get the Text property of a TextField in Cocoa.
  • FIX13049 In the IDE when you uncheck the submenu item in the menu editor the sub menu items are actually removed. This did no happen previously. When you would run the sub menu would appear resulting in a surprising behavior.
  • FIX13058 Lines now draw at the correct width in the Cocoa framework.
  • FIX13059 Cocoa applications no longer crash if you add have a RectControl on the window.
  • FIX13063 Masking now behaves the same in Cocoa as it did in Carbon.
  • FIX13066 The Up and Down events of UpDownArrows now fire on the Cocoa framework. (2010r4a1)
  • FIX13082 QuickTime MoviePlayer: no longer consumes more CPU usage than needed on Windows (probably cuts CPU usage by half)
  • FIX13090 Windows: KeyDown event is now fired for read-only TextFields/TextAreas
  • FIX13102 Sheets now get keyboard focus in the Cocoa framework, even if the maximize button is disabled.
  • FIX13110 Windows: MouseWheel events no longer to to the wrong control (on Windows the MouseWheel events always go to the control that has the focus)
  • FIX13114 Changing the size of a Window in the Cocoa framework no longer causes it to animate. (2010r4a1)
  • FIX13127 RGBSurface: no longer has a public constructor since you cannot create a valid one anyway, and doing so leads to crashes
  • FIX13136 Picture.Save now works with FolderItems with names longer than 28 characters. Note that this does not apply to PICTs, which still use FSSpecs.
  • FIX13149 User MouseMove events now fire for plugin controls placed on windows, even if the plugin doesn't implement the MouseMove event internally.
  • FIX13161 Console: creating an invalid sized picture no longer throws an assertion but an exception instead like we do in GUI apps
  • FIX13163 A bug in the method editor that would occur if you used autocomplete to impelement an inherited method has been fixed.
  • The inherited method would, if it had parameters, leave the parameters inthe method name position which resulted in a compilation error.
  • FIX13202 Picture.Open on a Nil FolderItem no longer crashes but throws a NilObjectException instead
  • FIX13206 Properties once again show up in the expected order
  • FIX13322 Mac Mach-O is now clearly labelled as Mac Carbon Mach-O in the constant editors
  • FIX13323 The SpotlightQuery class now works under Cocoa, instead of throwing a SpotlightException.
  • FIX13324 The AddressBook classes now work under Cocoa.
  • FIX13328 CocoaListboxes now support indeterminate checkboxes.
  • FIX13329 PopupMenu.RowTag no longer leaks on the Mac (2010r4b1)
  • FIX13352 Properties list should no longer sometimes be hidden when opening projects. This was particularly prevalent in the project list view
  • FIX13409 Cocoa: GetOpenFolderItem no longer returns an invalid FolderItem.
  • FIX13419 Layout of events, methods, properties are in alphabetical order in columns instead of across rows
  • FIX13460 Windows: Timer no longer leaks memory
  • FIX13474 Local reference update on major and minor releases as it should
  • FIX13480 Fixed an assertion at runctl.cpp:2343.
  • FIX13523 Several RBScript memory leaks have been fixed.
  • FIX13557 Saving works as expected - web apps are still subject to demo mode restrictions for some editions
  • FIX13560 RbScripts no longer crash the second time they are run if they contain classes (2010r4b3)
  • FIX13593 REALSQLDatabase: SQLSelect with no results now returns a Nil RecordSet
  • FIX13621 ContainerControls no longer crash under Cocoa (2010r4b3)
  • FIX13717 Documentation for record set record count has been updated (2010r4b1)
  • FIX13763 Windows: StaticText no longer leaks (2010r4b1)
  • FIX13767 Cocoa: ListBoxes no longer crash trying to draw checkbox cells
  • FIX13782 REALSQLDatabase: no longer raises an UnsupportedFormatException when retrieving dates/times that are NULL
  • FIX13806 Segmented controls now show the mac style and selection type properties as expect and honor the settings at run time
  • FIX13810 Console Graphics: Picture.GetData can now export JPEG data (2010r4b2)
  • FIX13847 Cocoa: the framework no longer crashes if you attempt to draw a string with an invalid font (2010r4b2)
  • FIX13854 UPdating data in the database editor no longer generates "Not an Error" messages when used with the REAL SQL database (2010r4b2)
  • FIX13884 Hard crash on Mac OS X by dragging a few controls and set the build target to Cocoa fixed (2010r4b2)
  • FIX13885 Cocoa: controls get MouseUp events again, which was broken in a previous beta.
  • FIX13913 Resize handles for the segmented control are placed properly around the border of the control in the form editor not inset as they had been.
  • FIX13961 Searches in the online documentation now include the user guide and real sql documentation namespaces by default
  • FIX14058 Toolbar: removing an item from the Toolbar no longer crashes on Windows
  • NEW2672 OpenDialog class now allows for multiple file selections.
  • Added a MultiSelect As Boolean property on the OpenDialog class which is OFF (False) by default.
  • ShowModal still returns a FolderItem, but in the case of a MultiSelect OpenDialog the FolderItem returned will be the first selection. To obtain a list of all the FolderItems selected we've added an Item(zeroBasedIndex As Integer) As FolderItem property along with a Count As Integer property.
  • NEW9765 A segmented control class has been added to the desktop framework. It is supported for all targets, but not all features are supported on other platforms:
  • on Carbon, only an icon or text can be specified, not both
  • MacControlStyle is only supported on Cocoa
  • Class SegmentedControl
  • dim selectionType as integer
  • dim macControlStyle as integer
  • dim items() as SegmentedControlSegment
  • Event Sub Action(itemIndex as integer)
  • Sub SizeToFit()
  • End Class
  • Class SegmentedControlSegment
  • dim selected as boolean
  • dim enabled as boolean
  • dim title as string
  • dim helpTag as string
  • dim icon as picture
  • dim width as integer
  • End Class
  • NEW11388 Listbox: added ColumnTag( column As Integer) As Variant property
  • NEW12211 The search field on the language reference will search the online wiki
  • NEW12731 RBScript optimization is now done on a background thread, so that REALbasic threads will continue to be responsive.
  • NEW12760 Dialogs have been updated to indicate that the minimum versions is now Windows XP and higher
  • NEW12877 Make External has an ellipsis as it should
  • NEW12961 Console apps on the Mac no longer require QuickTime (i.e. we no longer link against the QuickTime framework)
  • NEW13069 ObjCExceptions now populate the message property based off of the NSException's reason (if it's an NSException).
  • NEW13148 Listbox: Addrow now takes additional parameters, these are used to populate the cells for that row
  • NEW13169 Added WebImageView.ProtectImage property. When true, the user will be unable to drag the image. This is a design-time only property.
  • NEW13193 Graphics: Added an AntiAlias As Boolean property used to draw smooth lines and shapes, including text where applicable. This property is true by default and works for Mac (Carbon and Cocoa), Windows (GDI+ must be enabled) and Console graphics. It has no effect on Linux currently (2010r4b2)
  • NEW13201 The segmented control has been implemented and can be used in Carbon, Cocoa, Windows and Linux.
  • NEW13232 Console apps: now supports loading/saving JPEGs
  • NEW13269 "Build for current platform" builds for Mac OS Intel since the IDE is no longer available as UB or PPC
  • NEW13296 A
  • NEWfunction (REALCopyPictureCGImage) has been added to the plugins SDK to get the CGImageRef of a picture. Note that this function only works under the Cocoa target.
  • NEW13300 Web projects obey intended restrictions based on edition of REAL Studio in use
  • NEW13309 - this not should NOT be part of the release notes as its intended for internal use only -
  • NEW13311 Database items now show the external badge
  • NEW13339 A
  • NEWtemplate has been created for the wiki called "Ctor" ( or constructor in many OO abbreviations)
  • The template had to be called something not already in use.
  • It may require additional tweaking as Dave works with it.
  • NEW13372 The subscript operator can now be overloaded by classes. To use it, implement Operator_Subscript in your class.
  • The ReDim statement can now be overloaded by a class. To use it, implement Operator_Redim in your class.
  • NEW13402 The AddHandler and RemoveHandler statements have been added to the language. These allow you to add event handlers to objects at runtime.
  • Note that you can only have one handler attached to an event at one time. Attempting to add more than one handler will result in a RuntimeException.
  • NEW13434 Added Label class to replace StaticText class (which is now deprecated)
  • NEW13740 The
  • NEWproject dialog now has open recent and open existing buttons along with a revamped look (2010r4b2)
  • NEW13776 The project list now has "show on disk" in the contextual menu when a REAL SQL database is selected (2010r4b2)
  • NEW13785 Added Close method to WebControl to allow disposal of dynamically created controls.
  • NEW13827 The
  • NEWProject dialog responds to cmd-O (2010r4b2)
  • Has updated buttons as well
  • NEW13934 Added WebObject.Page property. Controls can use this to determine which page a control is on.
  • NEW13958 The "Loading" progress dialog no longer tries to show the full path to the project being loaded as this path could easily exceed the dialogs width and not show anything useful. It now shows just the name of the project being loaded
  • CHANGE 12715 Internal refactoring.
  • CHANGE 12751 Internal refactoring.
  • CHANGE 13048 Internal refactoring.
  • CHANGE 14071 Issues with pre-rendered database pages have been corrected in this release of the database

New in Xojo 2010 Release 3.2 (Sep 28, 2010)

  • Fixed various controls that were leaking memory, also affected how much memory the IDE would eat up causing crashes in out of memory situations

New in Xojo 2010 Release 3.1 (Sep 8, 2010)

  • The Separator control now uses the size specified in the IDE, instead of only the default size in the Cocoa framework.
  • The BevelButton control in the Cocoa framework now supports all button types that were supported in the Carbon framework. (2010r3.1fc1)
  • REALSQLDatabase: DatabaseField.Value no longer returns a string for numeric types
  • REALSQLDatabase: Queries with empty strings no longer comes back as NULL
  • The Graphics objects passed into Window.Paint and Canvas.Paint now have valid CGContextRefs. Note that contexts obtained through RectControl.Graphics or Window.Graphics still will not. (2010r3.1fc2)
  • MouseDown events are now sent to Cocoa plugins. (2010r3.1fc2)
  • Users Guide is accessible on Windows as it should be (back and forward also mentioned in this case are in report 12609) (2010r3.1fc2)
  • Switching between local and online references appropriately updates the toolbar (2010r3.1fc2)
  • Pictures loaded from the project in Cocoa now have their mask set correctly. (2010r3.1fc2)
  • Fixed a case where RBScripts that raise exceptions could get into a state where they would either crash or loop forever. (2010r3.1fc2)
  • Linux console apps no longer depend on libfontconfig or libfreetype to be present on user's machine (2010r3.1fc1)
  • Navigating from one chapter section to another works as expected again (2010r3.1fc2)
  • ServerSocket.Listen now resumes listening again after StopListening is called (2010r3.1fc2)
  • Demo features no longer disappear after initial launch of IDE (2010r3.1fc2)
  • Graphics.Handle returns zero on images (2010r3.1fc2)
  • The RBScript plugin now loads on 10.4 instead of causing a crash due to missing symbols.
  • GoTos work in RBScript again. This was broken in fc2.
  • The search field on the language reference will search the online wiki
  • Searches are now saved as part of history and the results are much better presented for simple searches
  • Online wiki has a search field on the top tool bar like the local wiki does (2010r3.1fc2)
  • with tags preserves those tags

New in Xojo 2010 Release 3 (Jul 27, 2010)

  • LLVM for RBScript: RBScripts now run up to 17 times faster than in previous releases. Using LLVM for RBScript is the first step towards the adoption of LLVM for building applications in REAL Studio.
  • Cocoa (Beta): The option to build for Cocoa is now available, but is at the beta stage. There are some new features for Cocoa builds, such as Pushbutton now has a ButtonStyle property that gives access to nine new styles of pushbuttons.
  • Documentation: The REAL Studio documentation is now locally stored and the user can choose between viewing the local version or the online documentation, http://docs.realsoftware.com.
  • Reporting Improvements: To make reporting easier, reports can now take a RecordSet directly to report upon.
  • Database Improvements: ODBC and REALSQLDatabase queries and updates no longer block the other threads while they are executing. This allows users to make their user interface more responsive.
  • Graphics Improvements: All of the graphics classes are now supported in Console applications. Also, pictures can now be copied to and from MemoryBlocks using a variety of picture file formats. Since memoryblocks can be transformed into strings, this allows the user to store pictures without having to write them to the disk first.
  • XML Classes: The XML classes have been updated to use libxml2, a modern, well-maintained XML library.

New in Xojo 2010 Release 2 (May 4, 2010)

  • FIX 3531 Applications no longer crashes when catching an exception without declaring a variable, for example this would often lead to a crash:
  • FIX 5809 [Mac] StyledTextPrinter now respects text alignment.
  • FIX 6205 [Mac] App.ExecutableFile now reports correctly for console apps that have not yet been saved.
  • FIX 6737 Controls on ContainerControls no longer bleed through Page/TabPanels.
  • FIX 9035 Autocomplete causes window change in XP. Minor changes to the code editor _should_ correct this problem from appearing.
  • (It's a hard bug to reproduce reliably so the fix may not prevent all occurrences)
  • (Ranked #9 in Feedback at the time of fix).
  • FIX 9163 XML Plugin: An invalid XPath syntax in XQL can now be caught by exception handler.
  • FIX 9324 A bug in drawing the list of object 2d's to the printers graphics on windows has been fixed.
  • FIX 9605 [Windows] Exceptions thrown in Console apps can now be caught properly.
  • FIX 9608 [Windows] MoviePlayer now fires Play/Stop event.
  • FIX 10184 [Mac] Movies created on the Mac (using FolderItem.CreateMovie) no longer contain a resource fork (this prevented the file from being opened on a PC).
  • FIX 10399 [Windows] Graphics are no longer enlarged when printing with App.UseGDIPlus enabled.
  • FIX 10542 [IDE] Debugger no longer crashes when inspecting property accessors that return strings (the crash usually occurred after Resuming and Breaking again).
  • FIX 10623 App Icon editor behaves better. Right clicking on items now works regardless of whether you have clicked on other items or not. Add will add an image or mask depending on which item you right click on. Drag and drop support for ICNS files should be improved. Cut and paste also works better from one size to another.
  • FIX 10664 Subclasses of report controls now image themselves in the report designer properly.
  • FIX 10690 Build sheet no longer displays outdated information.
  • FIX 10797 [Windows] Listbox headers now flicker less when columns are resized.
  • FIX 10806 The Compiler no longer asserts when comparing non-objects with Is operator. It now reports an error.
  • FIX 10807 [IDE] A potential unhandled KeyNotFoundException when dragging controls in the Window Editor has been fixed.
  • FIX 10822 CFBundleVersion should NOT include letters and should just be a period separated list of integers.
  • This fixes the issue and always writes CFBundleVersion as major . minor . bug . stage code . nonrelease
  • Stage codes are 0 = development, 1 = alpha, 2 = beta, 3 = final
  • FIX 10863 Updated the Compiler to find databases related to the Data Control.
  • FIX 10878 Tabbing into a boolean property in a property list you can use F, 0 or False to set the boolean to false. Anything else will be considered true.
  • FIX 10901 Fie type lists will properly concatenate with ; separators when using addition operators.
  • FIX 10907 Most control properties can be set using constants again. This bug was introdued in a prior release.
  • Some, like TabIndex, that are interdependent on other control tabindexes acannot be set using constants.
  • FIX 10947 A crashing bug in REALSQLDatabase triggered by a MoveFirst method on an empty RecordSet is fixed.
  • FIX 11071 [Language Reference] CurrentExecutingMethodName Referenced in Sub and Function. Should be CurrentMethodName. Fixed on the Wiki.
  • FIX 11204 Bolding of notes now works properly even if you have only 1 line with no end of line.
  • FIX 11239 [Windows] TextField.CharPosAtXY now works properly instead of always returning 0.
  • FIX 11289 [Windows] FolderItem constructor no longer fails when the path provided is in UTF-16.
  • FIX 11326 [Mac] Text files dropped into a project can now be accessed in Console apps.
  • FIX 11331 [Mac] Calling ContainerControl.Close from an Event within the ContainerControl that is being closed no longer crashes.
  • FIX 11363 [Windows] Listbox.CellTextChange event now fires properly.
  • FIX 11374 The PostgreSQL Plugin now quotes the host string if needed (mainly to support domain sockets which are paths).
  • FIX 11419 Added support for importing ActiveX controls that do not expose a dual interface (i.e. ones that only support the IDispatch interface like Modbus and Adobe Photoshop CS4).
  • FIX 11429 TextInputStream.ReadLine now reads UTF16BE encoded text properly.
  • FIX 11430 [Windows] Toolbar no longer overlaps client area when toolbar buttons (other than the first one) have icons assigned.
  • FIX 11440 Windows: the TaskBar now reappears when running a project through the debugger and stopping it with MenuBarVisible disabled
  • FIX 11458 [Windows] LineControl is now properly offset when a Toolbar is present.
  • FIX 11477 Switching from the Window Editor to the Code Editor while changing a property will properly commit the edit.
  • FIX 11493 PagePanel: Removing the current page now triggers the Change event.
  • FIX 11506 [Linux IDE] Typing Shift+W in the code editor no longer triggers the Close Window menu item.
  • FIX 11512 [Linux] FolderItem.Length now correctly reports the file length when the file is an alias file, instead of incorrectly reporting the length of the file it's aliased to.
  • FIX 11520 Typo in reporting example that set one reoslution to -300 when it should have been 300 has been corrected.
  • FIX 11532 Breakpoints set in report control events now clear properly when you choose Clear All Breakpoints.
  • FIX 11538 The IDE will now disallow an empty type field for a property.
  • FIX 11548 Compiler no longer throws a failed assertion and crashes when declaring invalid syntax like Window.EndOfLine (an error is thrown instead now).
  • FIX 11588 [Linux] Toolbar captions are now visible.
  • FIX 11610 Val now returns the correct value for large hexadecimal numbers (like &hADDD3000).
  • FIX 11618 [Compiler] #pragma Unused no longer crashes the compiler if no variable name is specified.
  • FIX 11625 [Date] Date constructor no longer fails with ambiguous compile error when Int64s are used as parameters.
  • FIX 11667 [StaticText] Added Transparent As Boolean property. Use this property to set the transparency of this control. For example if you overlay a StaticText on top of a Canvas/Image then if Transparent is true, the text will overlay transparently (i.e. the background shows through). This property only applies to Windows (a non-Transparent StaticText control will not cause any flicker), on Mac OS X and Linux, the StaticText will always render transparently regardless of this property value.
  • FIX 11675 [Canvas] Backdrop now draws properly when DoubleBuffer is enabled (and the user doesn't have any code in their Paint event).
  • FIX 11700 [Windows] Closing a ContainerControl that has a Default PushButton no longer crashes when you press Enter/Return afterwards.
  • FIX 11709 Showing the method editor fields no longer automatically selects a new name.
  • FIX 11723 [Windows] GroupBox contents no longer flickers when GroupBox is resized.
  • FIX 11727 [Windows] The flicker for Oval and RoundRectangle controls when resized/moved hasbeen reduced.
  • FIX 11737 [Windows] Reduced flicker of Tabpanel contents when Tabpanel is resized.
  • FIX 11772 Notes can no longer be entered without a name.
  • Reading in a project that has a note like this will no longer cause an exception.
  • FIX 11808 Reports will, when saved by the new IDE, reload as created from VCP projects.
  • FIX 11840 New Window once again opens a new window on a project. This was broken in a previous release.
  • FIX 11842 [Linux] System.SerialPort and SerialPortCount now include USB-to-Serial adapters.
  • FIX 11848 Reports and all their contained items can now be searched.
  • FIX 11854 [Linux] The drag rectangle displayed while dragging now properly updates when dragging over plug-in controls.
  • FIX 11874 A bug in saving recent menu items that could result in an out of bounds exception has been fixed.
  • FIX 11911 [Mac] PopupMenu no longer leaks RowTags when Closed or DeleteAllRows is called.
  • FIX 11920 UI elements that do not function with the wiki have been removed.
  • This includes the larger / smaller controls and the location item which is redundant with the Wiki
  • FIX 12000 [Windows] Graphics.DrawPicture now scales the picture properly when UseGDIPlus is enabled.
  • FIX 12006 The build progress window shows the actual application icon if there is one, or it shows a generic application icon if one is not there.
  • FIX 12057 Redundant page removed
  • NEW 3 Added StaticText.Selectable As Boolean.
  • Use this property to allow the StaticText caption to be selectable. You can use the default menu shortcuts to copy the selected text. At this time only Cocoa and Linux is supported.
  • NEW 1396 The entire REAL Studio documentation set is now available on the Wiki (http://docs.realsoftware.com/)!
  • NEW 4994 A new preference for printing allows you to select whether an image of the the layout of a window is included as part of the printing.
  • NEW 9713 The splash screen and about box will say the specific development, alpha or beta version once bug 11533 is fixed.
  • NEW 10674 The IDE now goes to the specific items on the Wiki if it can. If not it will try and show the PDF.
  • NEW 10697 [Windows] Built apps that use plugins (compiled out as DLLs to your "My Application Libs" folder) can now find the DLLs in one of 3 locations:
  • 1. By default we build a "My Application Libs" folder and the built app can find the DLLs in there
  • 2. You can also move the DLLs into a "Libs" folder
  • 3. Or you can move the DLLs next to the built app
  • NEW 10699 Small icon sizes should appear better (Fixed as part of report #10623)
  • NEW 10932 Report groups have a new property, StartNewPageAtEndOfGroup that will, if set, start a new page after the group footer has been rendered (Ranked #13 in Feedback at the time of fix).
  • NEW 11253 The IDE now saves the setting of the use 2006r3 encryption from use to use and run to run.
  • NEW 11414 [Linux] System.Network.IsConnected now works.
  • NEW 11428 Canvas.DoubleClick event now fires even if you return true from the MouseDown event.
  • NEW 11472 REAL Studio has a new preference for how many recent items to track and show. If you set this value to 0 no recent items will be shown.
  • NEW 11620 New Function IsValidData (s As String) As Boolean has been implemented.
  • NEW 11620 Added IsValidData function to TextEncoding class to check if a string is valid for that encoding:
  • NEW 11707 [PostgreSQL Plug-in] SQLSelect and SQLExecute no longer block REALbasic threads.
  • NEW 11931 SSLSockets and the subclasses of it default to SSLv3.
  • NEW 11971 MySQL Community Plugin no longer blocks REALbasic threads when calling SQLSelect or SQLExecute.
  • NOTE 9174 Report fields and labels that have their Italic and / or property set no longer clip when aligned left.
  • NOTE 11073 The IDE will attempt to access the Wiki if you are connected to the internet.
  • If you are not it will attempt to show the PDF version of the Language Refererence.
  • If it cannot do either a message saying it cannot connect and cannot find the PDF will be shown.
  • CHANGE 11681 The IDE now uses the corect URL's for all of the Wiki items.
  • They go to a redirect page on the site that can direct them to the correct final location.

New in Xojo 2010 Release 1 (Feb 10, 2010)

  • FIX 1444 Listbox: UTF-16 strings now display properly.
  • FIX 6184 Fixed an endian issue with QTTrack.MediaType on OS X (Intel) and Windows
  • FIX 6681 Fixed a weird bug where after opening a VCP project the first time you changed the text in a menu item it would also rename the item. It would not do that after you had changed it once.
  • FIX 7062 Fixed a bug that occurs when the path of the attached database contains an apostrophe character.
  • FIX 8950 Report variables show in the debugger
  • FIX 9068 A bug in autocomplete where it would not present the named items of an enumeration in a framework class / module has been fixed
  • FIX 9074 Lines can be added to reports as expected and they no longer disappear from view
  • FIX 9605 Windows: exceptions thrown in Console apps can now be caught properly
  • FIX 9689 Reports.Document.Save now takes an optional "base page name" parameter. It defaults to "Page"
  • Pages saved will be named using the base name + page number.
  • The SaveFile parameter must be a directory.
  • If you pass NIL you get a nil object exception (error 1)
  • If you pass a file instead of a directory you will get an unsupported format exception (error 2)
  • Both will have suitable error messages
  • FIX 9729 Installing Feedback from Linux IDE now works properly
  • FIX 9823 Copy file steps save and restore paths relative to the project file instead of absolute paths.
  • FIX 9954 A Nil Object Exception in pre build Build Automation steps has been fixed.
  • FIX 10125 Windows: Terminal Services ActiveX control now receives events.
  • FIX 10152 IDE: Line control's X1, X2, Y1 and Y2 properties can now be edited.
  • FIX 10221 Windows: the QuickTime MoviePlayer controller no longer takes up movie space (this made the movie resize and so it would look blurry).
  • FIX 10258 Shell: the data/result returned back from the Shell now has an encoding set (it is UTF8 on Linux and OS X, and DOSLatinUS on Windows)
  • FIX 10276 An issue in the compile process where console applications would not have their post build steps run has been fixed.
  • FIX 10334 The Find dialog and Find All dialog will retain the value was last entered IF no text is selected in a code editor.
  • A prior release broke this behavior.
  • FIX 10358 Console apps: using IPCSocket no longer triggers a Failed Assertion.
  • FIX 10389 Listbox.TypeEditableTextArea now works on Windows and Linux.
  • FIX 10421 Fixed the case where if you slected the Build item in a target then added a new build automation step the new step would be added to the end of the project's list of items instead of to the end of the enclosing targets list of steps.
  • FIX 10529 A bug where reading some preferences would convert values from integers to doubles has been fixed.
  • FIX 10596 Compiler no longer throws a failed assertion when building Windows/Linux apps when a file of the same name already exists and a directory of the same name is required to be created.
  • FIX 10677 Linux: TextField text no longer turns grey when moving/resizing the window.
  • FIX 10696 A bug where items that should not be visible in the contextual menu of the form editor has been corrected
  • FIX 10713 Closing a ContainerControl from a control that lives on the ContainerControl no longer causes random crashes (usually seen when resizing).
  • FIX 10715 A memory leak in the Report class has been fixed. Reports had a circular reference which caused the leak.
  • IMPORTANT - Reports now have a CLOSE method that should be called. Failing to call this when you are done with a report can result in leaking memory.
  • FIX 10716 The documentation for the menubar property of the window class has been updated.
  • FIX 10728 External items in the project editor list always had the Property List Behaviour item disabled. This is now enabled based on the type of the item and not just disabled becuase the item is external.
  • FIX 10804 If a class has a deprecated attribute it will be displayed in the Code Editor with a red D indicator instead of the more generic red A which indicates the item has attributes.
  • FIX 10810 Windows: setting TextArea.StyledText.RTFData no longer causes multiple SelChange events to fire
  • FIX 10919 Shell.Execute with parameters now works again on Mac OS X.
  • FIX 10948 Fixed a memory leak in the SQLSelect method.
  • FIX 10981 This fix reverts the patching of the lock left lock top properties when a project is loaded.
  • Controls will have lock left & lock top set by default but if the user turns that off they will remain that way when the project is reopened
  • FIX 11006 If you have to relocate external items in a VCP project when it's loaded the project will be marked dirty
  • FIX 11014 A nil object exception when building console apps has been fixed
  • FIX 11035 Reports do not need to be specifically closed any more
  • FIX 11045 When you cancel compiling the plugins for a project the compile will be cancelled
  • FIX 11072 The contextual menu in the code editor has had one item's text corrected so it provides moree information (it used to say turn off / turn on) but now says Turn Breakpoint On (or Off appropriately)
  • The Help item has been moved to the end of the contextual menu to match the form and report editors
  • FIX 11087 Fixed an encoding bug that occurs when a numeric type is appended to a text type in a new string.
  • FIX 11105 Mac: Console Apps no longer raises assertion failure, on case sensitive HFS+ filesystems, when plug-ins are used
  • FIX 11108 Copy files steps use a relative path to files that is svn and cross platform
  • FIX 11113 An issue where simply openeing an existing project that had tabs open could mark the project dirty has been fixed
  • FIX 11164 Locking settings on the IDE Script Step editor have been adjusted so the editor behaves better.
  • FIX 11205 Builds steps from projects created prior to 2010 r1 b2 will no longer cause nil object exceptions.
  • There is the possibility that any files that cannot be located may be dropped from the build step.
  • You are encouraged to check your steps or recreate them with this beta.
  • NEW 29 The Filetypes Editor now has a new column for the entry of the filetype UTI.
  • This information will be added to the the Mac OS X plist if present.
  • NEW 46 Canvas: Added DoubleClick(X As Integer, Y As Integer) event.
  • NEW 53 Listbox.ActiveCell now returns a TextEdit base class which can either be a TextField or TextArea control. To specify which one the Listbox uses you can use the new TypeEditableTextArea constant. For example:
  • Listbox1.CellType(0,0) = Listbox.TypeEditableTextArea
  • Listbox1.CellType(1,0) = Listbox.TypeEditableTextField
  • NEW 9806 Search results can now be printed.
  • NEW 10085 Added DragItem constructor:
  • DragItem( w As Window, x As Integer, y As Integer, width As Integer, height As Integer )
  • Where w = the window that the drag originates from, the x, and y coordinates are also relative to this window. It can also be a ContainerControl.
  • x, y, width, and height are the size/bounds of the drag rectangle
  • Also Deprecated RectControl.NewDragItem, and Window.NewDragItem
  • NEW 10099 Canvas: added Activate and Deactivate events.
  • NEW 10128 Two new controls have been added to the Report Editor. They are the Date control which allows you to drag a control onto a report that will show the current date the report is run and the page number control which will display the current page number.
  • NEW 10147 All project types will present a dialog when they open projects that are saved in newer versions.
  • VCP projects did not do this previously.
  • NEW 10183 Windows: improved our ActiveX support, now generates support classes instead of just the main automation class and now imports additional type libraries that are referenced within another.
  • NEW 10263 OLEObject: Added a Handle As Ptr property that returns a pointer to the IDispatch interface that is being used.
  • NEW 10457 Compiler no longer adds an .exe extension to Windows builds if .scr (screen saver extension), or .com (command file extension) is present in the file name.
  • NEW 10480 Shell Completed event and Close method are now better documented.
  • NEW 10552 All changes required to update the name of the product to REAL Studio have been implemented.
  • NEW 10631 Menu item arrays are now documented.
  • NEW 10633 Syntax help that appears in the status bar no longer disappears while typing parameter names.
  • NEW 10719 REALSQLServerDatabase is now documented in both the User's Guide and the Language Reference.

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

  • Windows IDE: having a lot of controls on the window no longer prevents the contextual menu from firing.
  • The icon editor has been redesigned so that the icon , mask and preview panes resize proportionaly.
  • Copying a script build step no longer causes an exception.
  • Listbox: you can now properly set the DragItem object's drop position/size in the DragRow event (this was a fix for Mac OS X - Carbon).
  • Report Editor: improved alignment guides especially when trying to align a control's left/top to another control.
  • Performance when converting RTF to Styled Text has been improved and conversion from Styled Text to RTF should be much faster (as much as twice as fast on large blocks of text in our tests).
  • Speed and correctness of RTF conversion has been improved
  • Event pages in the Language Reference now have the class as a clickable link.
  • Nulls are no longer inserted in the name of the font in RTF data on Mac OS X.
  • Saving this data to a file and opening in Word will show the proper fonts for the various style runs.
  • The conversion to RTF no longer inserts nulls in the font names
  • Windows: Menu icons with masks now draw properly on Windows Vista and Windows 7.
  • When viewing dictionaries you no longer have to click on them to view the contents. Refreshing should occur as you move your mouse. This is to keep overall processing requirements down and keep responsiveness up.
  • Report objects can now be seen in the debugger.
  • Escape and Enter keys now behave as expected to cancel / accept the IDE Script Step editor dialog box.
  • Windows: MenuItem icons with white transparent pictures now draw transparently on Windows Vista and Windows 7.
  • The Build Progess dialog box now refreshes better.
  • Upgraded REALSQLDatabase to use sqlite version 3.6.17.
  • The Select All menu item now works in the IDE Script Step editor.
  • Windows: BevelButton's caption background now draws through transparently when placed on a GroupBox.
  • Autocomplete now shows parameters on Windows and Linux.
  • Windows: disabled BevelButtons now draw their border.
  • Attributes now save and reload properly on all platforms.
  • An issue with build automation where steps did not respect the Applies To setting has been resolved.
  • An issue while loading projects on Windows that could result in an "Unknown project type" message has been fixed.
  • The Wordwrap and Multiline propetrites of report fields and labels now work properly.
  • An issue where an error loading a project could result in a build target outside of the Build Automation list has been fixed.
  • File references in Build Automation have been revised to use SaveInfo that is NOT relative to the project file as this could cause exceptions in unsvaed projects. Any previously saved steps may need to be revised.
  • You can no longer attempt to make external, export or encrypt build automation, build targets and the various steps.
  • You cannot export, encrypt or make build automation items external at this time. Menus properly disable so you are not mislead to thinking you can.
  • Windows IDE correctly detects that Feedback is installed on the first try, rather than only on subsequent tries.
  • Windows: right clicking on a PushButton, Slider, RadioButton (and possibly others) that are embedded inside a GroupBox no longer crashes.
  • Listbox.CompareRows no longer fires when no column is selected.
  • An extraneous prebuild debug log message as been removed.
  • Some items in the online Language Reference that were in the wrong category have been fixed.
  • Compiling for PPC machines no longer generates a stack size error for the vast majority of projects. There may still be extreme cases where they will still occur.
  • same notes as before
  • Listbox: LastIndex is now updated properly when DeleteAllRows or RemoveRow is called.
  • Windows: "Application" TextFont now maps to "Microsoft Sans Serif" when GDI+ is enabled.
  • Linux IDE: methods parameter field no longer "turns black" when editing.
  • Windows: BevelButtons now draw their border again when an icon assigned is larger than the button.
  • StringShape's default text is now an empty string "" instead of "-".
  • Windows now correctly detects the Feedback app is installed on the first try.
  • Connecting COM events no longer crashes the application.
  • Adding an old REALDatabase to a project and trying to edit it will not cause a failed assertion in the IDE.
  • Buttons on the Database Query Dialog resize appropriately for longer captions in localized versions.
  • Report Editor: control selection highlight now fits the control bounds instead of drawing a few pixels too big.
  • Windows: Graphics.DrawPicture no longer draws Transparent-White as Black.
  • Issues where clicking the the Find All button in the Find dialog would not search the last line of a method/event have been corrected.
  • IDE: Edit Code contextual menu item is now displayed properly on non-English systems when clicking on a plug-in based control.
  • The Build Automation string in the IDE should NOT have been set to be localizable. It is no longer.
  • This _may_ cause a new build automation file to be written the next time a VCP file is saved in a non-English locale.
  • The IDE Build Automation Script editor responds to Command-Return like it would for the Enter key. This causes the default buttons action to occur.
  • Removing a tab from a TabPanel (with the removal being done by a control on that panel) no longer crashes.
  • StyledText and StyleRun now support floating point font sizes.
  • MySQLCommunityServer: GetInsertID and GetAffectedRows now return a UInt64.
  • The bug that allowed the nil object exception to happen in the Calendar.rbp example has been fixed.
  • Command-W and Command-Shift-W behave the same with only one tab open and will close the window.
  • They still behave as "Close Window" and "Close Tab" when there is more than one tab open.
  • An issue with autocomplete where it would not properly autocomplete a variable inside a constructor has been fixed.
  • If a project somehow has no build automation list a nil object exception would be thrown. This has been fixed.
  • An issue where certain types of new projects could end up with no build steps has been fixed.
  • This fixes an eventual nil object exception when trying to build these projects.
  • The LockCheck example has been updated.
  • The Custom Drag example has been updated.
  • Linux and Mac OS X: Shell class now returns the correct exit code when process is killed by signal.
  • The Destination Property example has been updated.
  • Shell: Mac OS X Shell now uses Linux implementation, which fixes a bug with Async shells not firing the DataAvailable event when child process doesn't yield sufficient time, and also calling Close now fires the Complete event.
  • Copy steps in the prebuild path cannot operate correctly when copying to any meta location as they dont exist yet. The exception that was raised by doing this has been fixed.
  • An issue where printing with very small point sizes could result in the text overlapping has been fixed.
  • File > Exit properly quits the IDE even when you have the "Quit when last window closed" option unchecked.
  • Linux: HTMLViewer no longer causes application to abort on Ubuntu 9.10
  • Shell: no longer hangs when calling Close on an interactive shell on OS X 10.6.2.
  • TextField and TextArea now have a common super class called TextEdit.
  • IDE now has a feature to show all existing break points as search results.
  • REALbasic is now code signed on Mac OS X.
  • HTMLViewer: Added Print method to print the entire web page.
  • TextOutputStream.Append( file As FolderItem) As TextOutputStream has been added replacing FolderItem.AppendToTextFile which is now deprecated.
  • Added SelText property to TextEdit class.
  • The IDE Script Step editor sheet is resizable on Mac OS X.
  • Pressing Command-Delete in the Code Editor on Mac OS X behaves like a forward delete.
  • Windows: Graphics.DrawPicture now uses GDI+ to draw the image (if App.UseGDIPlus is enabled).
  • By default new controls will have lock left and top set.
  • Existing controls will be altered ONLY if right and / or bottom are not set.
  • Existing behaviour with no locks set is as though lock left and top are set so this makes that behavior explicit and obvious.
  • The "dirty flag" and event have been implemented. Their name is ContentsChanged and the event and property have the same name. Setting the ContentsChanged property will set the property and raise the event. The event is raised whenever there is an assignment to the property.
  • The "Modified" property has been renamed "Dirty" as it is more indicative of the purpose.
  • A new event, DirtyStateChanged, has been added.
  • The "dirty flag" and event have been implemented. Their name is ContentsChanged and the event and property have the same name.
  • Setting the ContentsChanged property will set the property and raise the event. The event is raised whenever there is an assignment to the property,
  • You can now construct a MouseCursor from a Picture.
  • Added a new constructor to MouseCursor class that takes an image and an x,y hotspot:
  • MouseCursor( image As Picture, xHotSpot As Integer, yHotSpot As Integer )

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

  • 97 Bug Fixes:
  • Method names/view properties are now saved in VCP projects in sorted order.
  • Pasting text into the Code Editor strips low ascii characters that can cause issues.
  • Some issues with the create missing method assistant should be resolved.
  • Changing time zones no longer causes the IDE to need to be re-authenticated.
  • Projects with attributes are now loaded properly instead of being deleted.
  • An issue where the constant editor would not retain changes has been fixed.
  • The REALbasic About box now closes when pressing CMD-W or ESC on Mac OS X and when using CTRL-W on Windows / Linux.
  • A NilObjectException in Menus.AddToContainedMenu when the menu has no items in it has been fixed.
  • Windows: A TextField on a ContainerControl now honors its textcolor and backcolor properties.
  • Mac OS X: A disabled TextArea or TextField now hides its selection.
  • An issue in the SMTPSocket and SMTPSecureSocket that could result in authentications being mishandled has been fixed.
  • Windows: Setting the TextField.Password at runtime now updates the TextField properly instead of requiring a refresh before the change takes affect.
  • Cloning controls in nested ContainerControls now works properly.
  • A bug that occurred where copying and pasting a computed property would mistakenly add a default value which is syntactically invalid, has been fixed.
  • BevelButtons with the No Bevel type no longer over draws on Vista.
  • Windows: TextField Alignment property now works properly.
  • Windows: The backspace/delete keys now function again in Method Name Combobox in the IDE.
  • Compiler no longer throws an assertion when a name of a control is invalid, it now reports it as a compile error.
  • Mac OS X: Debugger now shows listbox RowTag values in the IDE.
  • Search Results editor now shows the name of the window for results involving icons and images that were searched for by name.
  • Localization files (i.e. the .mo files in the Resources folder) are now recreated when building for Windows or Linux.
  • An issue with the project item contextual menu not showing all possible sub menus has been resolved.
  • An exception in the Search Results Editor when searching classes that had their super class adjusted via the Issue Resolution dialog has been fixed.
  • Listbox.ActiveCell now returns TextField instead of an Editfield.
  • Toolbars and toolitems are now part of search results.
  • Mac OS X: ComboBox now auto scrolls to the left when it loses focus.
  • Object2D.RoundRectShape now draws its border properly when the graphics context is clipped.
  • Linux: ComboBox control autocomplete now works.
  • SSLSocket no longer scrambles data or crashes randomly when reading data. This also affected HTTPSecureSocket which is based off of SSLSocket.
  • A recoverable assertion has been disabled as the issue is being recovered from without user intervention.
  • Windows: BevelButtons now draws using the Visual Theme, this makes the BevelType obsolete except for "No Bevel" which still draws like before.
  • ActiveX controls now load properly for RBP/XML project formats, and is now supported properly in RBVCP project formats.
  • Activation dialog buttons are now sized properly for localization.
  • Linux: SelectColor now uses the color supplied as the default color instead of pure white.
  • Windows: Calling MsgBox with Retry, Abort, or Ignore buttons and clicking on one of them no longer causes a failed assertion.
  • Subclass constructors no longer add a call to Super.Constructor when duplicating the constructor.
  • Print menu item now has the full name of the item being printed in the menu. It used to only have a partial path. Also the printed output now displays the full path to the item.
  • Removed CancelClose event from ContainerControl since it's never triggered and was never supposed to be exposed.
  • Linux: Listbox.CellHelpTag now works.
  • Windows: Setting a progressbar to be indeterminant (i.e. setting the Maximum value to 0) now works even when the progressbar is not visible.
  • Mac OS X: SpecialFolder.Cookies now maps to User:Library:Cookies.
  • Object2Ds now draw properly in a clipped graphics context.
  • VCP projects that have properties with attributes no longer lose their scope information.
  • An occasional NilObjectException while cleaning up temporary files has been fixed.
  • The REALbasic IDE no longer throws an OutofBoundsException when loading projects with corrupt Listbox properties.
  • Plugin SDK: REALGetRBVersion now reports the correct version of REALbasic instead of always 2008.05.
  • The Code Editor no longer thinks that any comment with a colon in it is a URI. The only valid URIs are: ftp(s)://, http(s)://, rb-feedback://, feedback://, mailto:emailaddress.
  • When saving a project, an issue where the file extension and the value in the file type popup in the Save As dialog box could be different has been resolved. This corrects a problem where a project could be inadvertently overwritten with one of a different type.
  • Windows: Object2D objects with a fill opacity less than 100 now render with translucency. This requires GDI+ be enabled, see the App.UseGDIPlus property.
  • Windows: setting the TextField font and font size programmatically now works.
  • White space at the end of a method name is stripped as it could cause a hard to find bug.
  • Editing a destructor no longer shows parameters or return types as they would not compile anyway.
  • IDE no longer crashes if you happen to drop a framework into the Project Editor.
  • Removing a tab/page (from a TabPanel/PagePanel) in an event of a control that lives on that tab no longer crashes.
  • An issue that was causing the REALbasic EULA to be presented too often upon launch has been fixed.
  • Windows: Listbox.CellHelpTag no longer steals mouse clicks (i.e. clicks on a cell's HelpTag now fall through to the listbox instead of being handled by the HelpTag).
  • Windows: setting the TextColor or BackColor of a TextField control now updates correctly instead of needing to trigger a Refresh.
  • IDE scripts that build several projects and switch between them should no longer result in a hung IDE.
  • VCP projects that have missing files will present a list of the missing files when the IDE finishes trying to load the project.
  • The return value field is removed for when creating a method as a constructor.
  • Windows: closing a ContainerControl in PushButton Action event no longer crashes.
  • Fixing an editfield control array will correct the supers by considering all items in the control array. If one item is multiline then all items would need to be text areas to avoid casting errors at run time.
  • Fixed a parsing bug that would trigger an unhandled exception when generating COM classes.
  • Linux IDE: increased the height of the close button in the dialog that appears after the check for updates is finished.
  • An issue that was causing ActiveX controls to crash on close has been fixed.
  • Duplicating properties that have no default value will no longer set the default value of the new copy to 0.
  • Running a project that is dirty no longer marks it as clean (not dirty).
  • URI's that use schemes like mailto which do not require the :// work correctly now.
  • Parenthesis matching in the Code Editor should be accurate now with a line of code like theResult = NthField(theResult, ")", 1)
  • Linux: TextField.CueText now works.
  • An issue with undoing changes while actively editing a textual property has been resolved.
  • Windows: TextField now triggers MouseDown when clicking on non-client areas.
  • An issue in the Build Settings dialog box that caused the default platform to be built when building a console application, has been fixed.
  • Linux IDE: multiple copies of the IDE can now be run simultaneously.
  • A nil object exception in the Window Editor has been fixed.
  • IDE no longer gives a failed assertion when selecting "Define missing method" in the code editor's contextual menu.
  • Fixed memory leaks related to object/string arrays in methods.
  • Loading attributes for Window properties has been fixed.
  • Properties that were supposed to be hidden that were being shown are now hidden again.
  • Window width and height no longer show in scientific notation.
  • Attributes are now copied when you duplicate a property.
  • A cause of an out of bounds exception in the IDE tabs has been fixed.
  • A cause of an OutOfMemoryException has been corrected in the Window Editor.
  • Projects that contain localizable values are properly recognized when loading and the Export Localizable values menu item properly enables.
  • Language reference now jumps to various block level statements correctly (For/ Next, Do/Loop etc).
  • A nil object exception that could occur when checking for updates has been fixed.
  • The missing file count reported when loading a VCP format file that has missing files is correct - it had been off by one previously.
  • The Open Recent menu updates properly again.
  • The IDE will no longer allow properties and controls to have the same name as this is an error.
  • Linux: The Options (Preferences) dialog shows the proper title on each panel again.
  • Backcolor property now works for TextField and TextArea controls.
  • An issue with loading VCP projects that contained properties with attributes has been fixed.
  • Renaming modules no longer leaves contained items in the wrong directory. Detection of out of date files should be better as well.
  • Canceling the selection of a default build folder will now cancel the build.
  • Default pushbuttons no longer flash in the Window editor when resizing the window.
  • An exception when using the contextual menu while the mouse is over the close icon has been fixed.
  • An issue where an untyped constant in the Constants Editor could cause a project item to be marked dirty when it wasn’t has been fixed.
  • 39 New Features:
  • The HTMLViewer on Linux now uses WebKit (if it’s installed) to provide superior HTML rendering.
  • BinaryStream now has Open and Create methods, both of which take a folderitem as a parameter. This provides a better design than opening or creating a stream via the FolderItem class.
  • TextInputStream now has an Open method, which takes a folderitem as a parameter. This provides a better design than opening a stream via the FolderItem class.
  • TextOutputStream now has a Create method, which takes a folderitem as a parameter. This provides a better design than opening a stream via the FolderItem class.
  • New IOException class that allows you to catch exceptions (errors) when using the new BinaryStream.Open, BinaryStream.Create, TextOutputStream.Create and TextInputStream.Open methods.
  • New TrayItem.Handle As Ptr property that returns the window handle that the tray item belongs to on Windows, and the GtkStatusIcon widget on Linux.
  • The Icon Editor now separates the image and mask when you drop an image that has both on either the image or mask portion of the icon editor.
  • New Tooltip class that allows you to show tooltips in any location you wish.
  • New Report Editor allows you to create layouts visually for the purpose of printing. These layouts can be used to print data from any source.
  • On Windows, Object2D can now draw edges more smoothly and supports translucency via support for GDI+. To use it, set App.GDIPlus to true.
  • The Declare method can now be used in conjunction with a new graphics class handle type (HandleTypeGDIPlusGraphics) allowing you use features of GDI+ on Windows that REALbasic does not yet support (such as anti-aliasing).
  • Text size for controls can now be set in pixels, points, inches or millimeters via the new TextUnit property.
  • You can now change the text color of the caption of a BevelButton on Windows and Linux via the TextColor property.
  • When you do a contextual click on a control in the Window Editor that you have subclassed, there is now an “Edit Superclass” menu item that will take you right to the code for the parent class.
  • Duplicate is an available option in the project item editor contextual menu.
  • The Shell class nows allows you to indicate which language interpreter you wish to use.
  • The BevelButton now has a BackColor property that allows you to set the background color and HasBackColor property for determining if a custom background color has been set. These properties are only support for Windows and Linux.
  • HTTPSocket & HTTPSecureSocket now support proxy server authentication via the ProxyAuthenticationRequired event.
  • HTTPSocket & HTTPSecureSocket now support Digest authentication for both proxy and www authentication.
  • When a control on a window needs to have its super class updated the name of the containing window, not it's title, is shown in the Issue Resolution Window.
  • Build progress now shows an additional message, Linking, when it has reached that point in the build process.
  • The phase where the compiler strips out unused REALbasic code has been optimized so that it should run up to 300% faster. This is especially noticeable for projects with plugins with many functions where most are unused.
  • The compiler now generates Objective-C exception handlers around Objective-C declares. If an Objective-C exception is raised due to the declare, it will be converted into a REALbasic ObjCException object and raised through the normal REALbasic exception system. ObjCException has a handle property, which allows you to get the underlying exception object (typically an instance of NSException).
  • The Find Window now supports finding in a selection and find and replace all in a selection.
  • A contextual click on the Stack popup menu in the Debugger now provides the option to copy the current position (the method name) in the stack or copy the entire stack (all method names) to the clipboard.
  • The combobox in the method editor now shows the method name + parameters to make it more obvious you are selecting a full prototype and not just a name.
  • Mac OS X: There is a new preference for how the Home and End keys should behave in the Code Editor.
  • There is a new preference that allows you to choose which comment style the Comment button in the Code Editor should use.
  • IDE search column widths are saved and restored. If you adjust the widths they will be preserved instead of being reset constantly.
  • You can now automate the most common functions of building of your applications without having to write IDE scripts using the new Build Automation feature of the Project Editor. This feature is for the REAL Studio edition only.
  • Find and Find All search value fields will be automatically be populated with the selected text from the front most Code Editor.
  • It’s now optional on Windows whether the IDE quits when the last window is closed. If you set it to NOT quit when the last window closes a tray item will be present and you can start a new project from it.
  • Subclasses of container controls now draw the controls on them instead of just an outline.
  • The Remote Debugger stub allows you to toggle whether it should / should not immediately launch a program upon unpacking the files it receives.
  • The Convert to Constant contextual menu item in the Code Editor now will select the entire string even if the cursor is only within the string with no part of the string selected.
  • Mac OS X: You can now specify the role your application fulfills for an accepted file type. Possible roles are Editor, Viewer, Shell and None. None is the default.
  • List of missing files is reported in the console using system.debuglog as they are encountered while loading a VCP project.
  • A new Feedback application has been created for providing us with bug reports and feature requests. It is available via the Help menu.
  • 9 Changes:
  • The following plug-in API calls are no longer deprecated: REALGetControlBounds, REALGetControlPosition, REALSetControlPosition, REALGetControlVisible, REALSetControlVisible, REALGetControlEnabled, REALSetControlEnabled, REALGetControlHandle, REALGetControlWindow.
  • Windows/Linux: now looks in "MyApplication Resources" for language files (where "MyApplication" is the name of the executable) and falls back on "Resources" if that folder is not available. This allows users to share a common folder with multiple RB executables that require resources.
  • The TextSize property of the Graphics class and various RectControls have been updated to take a Single instead of an Integer. See also the TextUnit property to take advantage of this change.
  • App.AddTrayItem now returns a boolean value that lets you know whether or not the tray item was added successfully.
  • The Language Reference window in the IDE now uses WebKit on Linux if WebKit is installed. If not, the PDF version of the Language Reference will be opened instead.
  • Folderitem.OpenAsTextFile, Folderitem.CreateTextFile, Folderitem.OpenBinaryStream, and Folderitem.CreateBinaryStream are deprecated. Use the new methods (described in the New section) above instead.
  • Projects are added to the File -> Recent menu as they are closed not as they are opened. The last closed project/IDE script will be at the top of the list.
  • The “Extract Method” contextual menu has been renamed “Convert to Method”.
  • The “Extract Constant” contextual menu has been renamed “Convert to Constant”.

New in Xojo 2009 Release 3 (Jul 7, 2009)

  • Bug Fixes:
  • The Bevelbutton.Icon property in the Properties pane now shows the currently selected image in its popupmenu.
  • Listbox.Rowtag can now be viewed in the debugger.
  • Many documentation bugs have been fixed.
  • The main toolbar Save button now disables/enables in sync with the File -> Save menu item.
  • Projects that are restored after a crash now restore their project name rather than being untitled.
  • The Warnings dialog box has been resized so that all items show by default.
  • When printing a class, shared properties and methods are now printed separately from unshared properties and methods.
  • VCP projects retain properties, methods, events and such in sorted order. Note that XML projects and project items are not affected by this.
  • A bug in the loading of VCP projects that resulted in external XML items not being marked correctly has been fixed. Editor tabs now are correctly badged for these items and Show On Disk will be available as an option in the contextual menu presented when right-clicking the tab.
  • Opening a VCP project that has items missing no longer corrupts the project.
  • Instead, REALbasic attempts to load as much of the project as possible and will warn you if it is unable to load the entire project.
  • A bug that caused the compiler to report incorrectly when attempting to compile code in an event handler whose super class does not exist has been fixed.
  • CurrentMethodName now works in computed property event handlers.
  • A bug when loading a RBBF project caused the IDE to display a message indicating that files had been changed externally has been fixed.
  • A bug that caused the IDE to erroneously warn that a file had been changed and needs to be reloaded when in fact it had not, has been fixed.
  • The Msgbox method on Windows displays icons again.
  • The MySQL Community Edition plug-in no longer crashes REALbasic on Mac OS X 10.4.
  • Copying/pasting pictures on Windows now supports masks.
  • A sporadic nil object exception when loading the Recent menu items has been fixed.
  • Attributes are now saved and restored equally well in VCP, XML and RBP files.
  • The Windows class now receives keydown events when using ShowModal to display a window whose Visible property was set to false at design time.
  • A bug that caused the vertical scrollbar to lock in the Code Editor has been fixed.
  • The Edit menu in the Italian localization of REALbasic works again.
  • Relaunching REALbasic after a hard crash no longer throws nil object exception.
  • RBScript no longer leaks large chunks of memory.
  • Loading pictures with alpha channels on the Mac no longer causes a crash.
  • A bug that triggered some unhandled exceptions when parsing COM dispatch interfaces (such as when adding the Microsoft Outlook COM reference) has been fixed.
  • The IPCSocket class has been added to the Window Editorʼs controls list.
  • The ODBC plug-in now requires glibc 2.3 on Linux (rather than 2.4) to be compatible with more Linux distributions.
  • A bug that could cause an out of bounds exception in the Search Results editor has been fixed.
  • The Listbox cellʼs HelpTag is now correctly positioned on Windows.
  • Assigning the menubar to the window after the toolbar is assigned no longer causes the toolbar to appear above the menubar on Linux.
  • Changing a caption on a TabPanel that is on a PagePanel no longer makes the TabPanel disappear in the Window Editor.
  • A bug that causes VCP projects to fail after being saved to XML format has been fixed.
  • Windows ActiveX controls wrapped in another ActiveX control no longer cause a crash on quit.
  • An unhandled exception when canceling a build has been fixed.
  • Listbox header separators now better align with the vertical grid lines on Windows.
  • Default values are no longer dropped when copying and pasting properties in the Code Editor.
  • Keyboard shortcuts for adding constants, properties and methods function again.
  • The Hide Empty Events item on the View menu is working again.
  • 32 bit pictures that have no mask honor their Transparent property again on Linux.
  • Invisible controls (such as the Timer) no longer show their Left and Top properties in scientific notation.
  • Dragging a header row in the Property Behavior dialog box no longer causes a nil object exception.
  • Windows ActiveX controls are now saved properly in XML projects.
  • A bug that caused an out of bounds exception when enabling menu items in the IDE has been fixed.
  • A bug that caused the SMTPSocket to fail when sending mail has been fixed.
  • Closing the parent window of a Pushbutton in the Pushbuttonʼs Action event no longer causes the application to crash.
  • Compiling code where the name of an Attribute contains spaces no longer causes a crash.
  • Saving a project in VCP format to a read only volume no longer throws an exception.
  • Now the user gets a friendly dialog informing them that they canʼt save to a read only volume.
  • Setting the Progressbar.Maximum property no longer causes a bad refresh on Windows.
  • Saving PNG files with Folderitem.SaveAsPNG and TIFF (using Folderitem.SaveAsTIFF) that have no mask now works.
  • Using autocomplete in the Script Editor no longer causes a crash.
  • The Keyboard class now correctly reports the state of modifier keys (especially when simulating key presses using another application) on Linux.
  • Project templates once again appear when using REALbasic with a language other than English.
  • Classes can once again be exported using the version control format on Windows.
  • Changing the contents of a Listbox (for example by adding rows) while there is a cell active for editing no longer causes a crash.
  • Copying and pasting an array property no longer creates a new property with an invalid name.
  • A bug that caused control array events to lose their index as integer parameter in text-based projects has been fixed.
  • Changing a color constant via the Color Picker now marks the project as changed.
  • Creating a BinaryStream with a MemoryBlock that is nil no longer crashes but instead throws a nil object exception.
  • Mutex locks are no longer lost after a Mutex with the same ID is created on Linux.
  • Relocating missing files marks the project as changed.
  • The Defining Missing Method code assistant is working again.
  • Saving images no longer leaks memory on Windows XP Professional Edition.
  • Attribute information is no longer lost when loading a VCP project.
  • The compiler no longer strips the executable bit off files copied into the built application.
  • Dropping ICNS files on the project list no longer causes a nil object exception.
  • Clicking the Reload button in the dialog that informs you that files on disk have been externally changed no longer crashes.
  • Viewing the contents of a RecordSet in the Debugger no longer throws an out of bounds exception.
  • A bug that made it appear you could add attributes to controls in the Code Editor has been fixed.
  • Warnings in the warnings list now include the message text as well as the location.
  • REALbasic no longer crashes when viewing a window with many embedded controls.
  • Saving an Excel spreadsheet using REALbasicʼs Excel automation classes no longer throws a type mismatch exception.
  • Close Other Tabs an Close All Tabs no longer close the Debugger tab if itʼs open.
  • The Clear Recent menu item now works on Windows.
  • Duplicate callback methods are no longer generated for COM objects.
  • REALbasic no longer fails to open if it is set to open the last used project and the path to that project is no longer valid.
  • When REALbasic is already running , it can now open projects with non-ASCII characters in the project path.
  • REALbasic now handles closing tabs properly in a window that was opened by choosing Open in New Window when right-clicking on a tab.
  • REALbasic will now quit on Windows and Linux if you close the last project window even if the Language Reference window is still open.
  • The Feedback window is now localized.
  • Folderitem.LastErrorCode is now property set when trying to open a bundle/directory with OpenAsBinaryStream. This is also true for BinaryStream.Open as well.
  • An unnecessary menu separator at the bottom of the Help menu on Windows and Linux has been removed.
  • CStr now honors the system defined decimal separator when converting currency type.
  • #pragma warning now accepts the format described in the documentation (parentheses are no longer required).
  • REALbasic now times out if there is no internet connection available during registration.
  • A bug that caused the Code Editor to throw an exception when dragging a control in the left hand browser pane has been fixed.
  • A type mismatch error caused by making a string constant dynamic and then changing itʼs type to something else has been fixed.
  • The Language Reference once again shows read-only properties by displaying a lock icon.
  • A bug that caused URLs in the Code Editor to stop responding to clicks after the editor was scrolled has been fixed.
  • When printing, events are now printed in alphabetical order.
  • PixmapShape masking now works properly when the shape is rotated.
  • Deleting a collapsed code block now deletes the entire code block and not just the first line.
  • An issue where a button in the Warnings was too short for German localization, has been fixed.
  • An issue where a statictext control was too short for French localization has been fixed.
  • New Features:
  • The StringShape class now has HorizontalAlignment and VerticalAlignment properties that define how the string is aligned when drawn and affect the center of rotation. An Alignment enum has also been added to help make your code more readable. The values are Left=0, Top=1, Center=2, Baseline=3, Right=4 and Bottom=5. The default for HorizontalAlignment is Centered. The default for VerticalAlignment is Baseline.
  • The VirtualVolume class now has a Flush method that forces data to be written rather than requiring you to close the file.
  • BinaryStream now has Create and Open methods that can be used instead of the Folderitem class OpenAsBinaryFile and CreateBinaryFile methods. The new Create method allows you to determine if an existing file should be overwritten or not.
  • An OpenGLSurface control has been added that lets you use OpenGL to create 3D images and animation in REALbasic. This requires a knowledge of the OpenGL language. However, there are some open source projects that are implementing an RB3D-compatible API on top of OpenGL for those of you that use RB3D.
  • The new TextField control is essentially a single-styled, single line Editfield. As a result, it also has a somewhat simpler set of methods and properties. See the notes about the TextField in the Changes section below for details on why we added this new control.
  • The new TextArea control is essentially a multi-styled, multi-line Editfield. See the notes about the TextArea in the Changes section below for details on why we added this new control.
  • You now have the option to show tick marks on the Slider control. Using the new TickStyle property. Thereʼs a new TickStyles (plural) enum you can use to make your code more readable. Itʼs values are None=0, TopLeft=1 and BottomRight=2. Note that while this new feature is available for Windows and Linux, due to Carbon limitations it is not yet available for Mac OS X. It will be available for Mac OS X when we ship our Cocoa-based Mac OS X platform layer.
  • You can now programmatically change the UI focus using two new methods: FocusNext and FocusPrevious.
  • A call to a method that does not yet exist can easily be turned into a method by selecting the non-existing method in the Code Editor and choosing Define New Method from the contextual menu.
  • Sublocations in IDE Scripts now include notes.
  • When viewing arrays of classes in the Debugger, the Properties popup is now in sorted order.
  • You can now use quoted strings as search phrases to search the Language Reference.
  • The Icon Editor now supports dragging and dropping of image files (including icns files on Mac OS X).
  • The Icon Editor now better supports copy and paste from programs like Preview on Mac OS X.
  • The Code Editorʼs contextual menu now has an item that makes it easy to replace non-printing characters in the Code Editor (tabs for example) that might have been accidentally pasted from an outside source.
  • You can now copy and paste groups of constants, properties, methods, etc., by selecting the group header before selecting File -> Copy.
  • IDE Script editor windows now include “IDE Script” in their title to make them easier to identify in the Window menu.
  • Feedback windows now appear in the Window menu. They also can now be minimized and maximized.
  • Analyze Item now displays a dialog that informs you when it finds no errors rather than expecting you to notice this message in the status bar at the bottom of the main window.
  • The Standardize Format item on the Code Editorʼs contextual menu now applies not just to keywords but also to REALbasic classes as well.
  • IDE Scripts can now be executed via the Command-R keyboard shortcut.
  • Command-Up and Command-Down arrow are now supported in the IDE Script Editor.
  • You can now set the color that should be used for the insertion point in the Code Editor.
  • If you start to edit a block of code that is folded, it will unfold automatically to allow editing.
  • A progress bar has been added to the splash screen.
  • REALSQLDatabase queries no longer return incorrect results when using an attached database on Linux.
  • Transparent GIFs are now masked properly on Windows.
  • Button heights in the Resolve Project Issues window have been adjusted to be appropriate for Linux.
  • A bug that crashed REALbasic when attempting to open the Project tab in a new window has been fixed.
  • And illegal cast exception that sometimes occurred at app startup has been fixed.
  • A nil object exception that sometimes occurred while closing a project has been fixed.
  • Changes:
  • The Editfield control has been deprecated. It has been replaced by the new controls, TextField and TextArea. We did this because on all three platforms, two controls are provided for text editing and we can provide you with better controls if we have two that map to the two native controls on each platform. When you open your project in R3, REALbasic will ask you if you would like it to change your Editfield controls into
  • TextField or TextArea controls if the Multiline property is true. If you are setting the Multiline property to true or false at runtime, you will need to make some changes to your code to use TextField and TextArea.
  • The Folderitem class OpenAsBinaryFile and CreateBinaryFile methods have been deprecated. Please begin replacing calls to these with the new Open and Create methods that have been added to the BinaryStream class.
  • The Feedback window now sends us which REALbasic Edition (Studio, Professional or Personal) you are using and which type of license you have (commercial or academic) to help us resolve issues more quickly.
  • If REALbasic encounters a compilation error while building, it now stops the build rather than continuing on to attempt to build for other platforms (if you are doing that) which would fail anyway.
  • The MySQLCommunity plugin has been renamed. Itʼs now called MySQLCommunityServer.
  • REALbasic now displays the Language Reference using the PDF file rather than HTMLViewer to provide a better user experience until we have better HTMLViewer support on Linux.
  • The Build Settings dialog box has been simplified a bit. This was also done in preparation for adding the ability to choose Carbon or Cocoa for Mac OS X builds.
  • REALbasicʼs main window is now centered on the main screen by default.
  • The title of the Feedback window is now “Feedback” instead of “Bug Report”.
  • Window.MacWindowPtr and Window.WinHWND have been deprecated. They are no longer supported in autocomplete and you will receive a warning if you use them.
  • Use Window.Handle instead. These two deprecated properties will be removed in a future release.

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

  • New Features:
  • You can now control whether or not the end user can sort columns in a listbox by clicking on the column header. See the Listbox.HeaderType property for details.
  • Break points can now be toggled using the contextual menu. This was done to make it easier for users with non-US keyboards.
  • Events can now be copied and pasted between classes provided that the target class can implement the event.
  • The Listbox class now has RowTags which are like column tags but on rows.
  • 256 x 256, 32-bit application icons are now supported for Windows Vista.
  • You can now ask REALbasic to check for updates immediately using the shiny, new Check Now button in the Preference dialog box.
  • The NotePlayer control is once again in the list of supported controls.
  • Editing a new class now auto-expands the event handlers so they are visible.
  • There is a new BreakOnExceptions pragma which can be used to override the Break On Exceptions menu item.
  • Listbox cells can now have individual help tags. See the Listbox.CellHelpTag property for details.
  • MySQL Enterprise Server is now officially supported.
  • You can now quit the REALbasic IDE from an IDE script via the QuitIDE command.
  • You can now encrypt and decrypt project items from an IDE script via the EncryptItem and DecryptItem commands. Use the new SelectItem command to select an item to encrypt or decrypt. This is a security measure to defeat brute force attacks created using IDE scripting.
  • Via the Preferences dialog box, you can now indicate what type of project file format you want your project to save in by default.
  • Applications can now be localized into Scottish Gaelic. Enya will be so happy.
  • The MsgBox command now uses the native OS message box on Windows which means that the native buttons will automatically be localized by the OS.
  • The Date class now has a constructor so you can create an object with a specific date with a single line of code.
  • COM is now much better supported for controlling applications and system libraries that support COM.
  • Changes:
  • A new search now immediately clears old results from the search results list.
  • Properties in the Property Behaviors dialog box are now sorted in the same order as they appear in the Properties pane. The Feedback window is no longer modal.
  • Command (Control on Windows and linux) - W now closes the frontmost tab instead of the window if more than one tab is open. It also now works with the Language Reference, About Box, etc.
  • The toolbars for the IDE and Language Reference can now have different toolbar styles.
  • An encrypted project item will now refuse to decrypt after 3 failed attempts and will respond more and more slowly until the project is closed and reopened.
  • Bug Fixes:
  • Oracle Server is once again supported for Mac OS X and has been updated to support the most recent release of Oracle.
  • The ComboBox control on Windows no longer deletes user-entered text when showing/hiding choices without selecting one.
  • MySQL Community Edition Server is once again officially supported.
  • The IDE no longer throws a NilObjectException when dragging a class from the browser list into the Code Editor.
  • Lines of code no longer disappear when expanding and collapsing code blocks in the Code Editor.
  • The IDE no longer crashes on Windows if you launch it, add a control and immediately choose Quit from the File menu.
  • You can now create a file I/O stream from a file descriptor or file pointer on Mac OS X.
  • You can now move controls more than one pixel at a time using the arrow keys.
  • Building a project on Windows from a locked directory will now build to the temporary items directory instead of throwing a NilObjectException.
  • Dates and Times are no longer getting corrupted when using ODBC.
  • On Mac OS X, FolderItem.ShellPath now returns a valid shell path even if the path contains non-ASCII characters.
  • Closing a large Virtual Volume is fast again (like it was in 2008r1 and earlier).
  • Assigning a controlʼs parent property to itself no longer causes a hang.
  • Plug-ins no longer leak memory when they are loaded by a built application running on Mac OS X.
  • The StyleRun class no longer leaks memory.
  • The Location and Search fields in the IDE can now be tabbed into and out of again.
  • Calling Raise() without specifying an exception type no longer causes a failed assertion.
  • GetTrueFolderItem with a root path no longer crashes.
  • 8-bit toolbar icons now appear again on Mac OS X. This broke in 2009r1.
  • System.EnvironmentVariable no longer leaks memory on Mac OS X.
  • Choosing Close Other Tabs no longer closes the Debugger tab if itʼs open.
  • The Code Editor no longer locks keyboard input when clicking away from the autocomplete popup window on Windows.
  • A resize mouse cursor is no longer displayed over the content area if you have a listbox with resizable columns and have column 0 set to a width of 0 on Windows.
  • Uncaught RBScript exceptions no longer cause a runtime failed assertion.
  • The Serial.DataAvailable event is now triggered without the need to move the mouse.
  • The Serial control no longer treats carriage returns (ASCII 13) as new lines (ASCII 10) on Linux.
  • Closing a ContainerControl that contains an HTMLViewer no longer crashes.
  • The text cursor in the Code Editor no longer randomly disappears on Windows.
  • Custom mouse cursors are supported again.
  • Loading pictures with alpha channels no longer crashes on Mac OS X.
  • ConsoleApplication no longer displays nonsense properties in the IDE (like Index, Scope, Top and Left).
  • The FolderItem.Launch method no longer launches the app in the foreground if parameters are included and Active is false.
  • The XMLDocument.Transform method no longer crashes if your XML document is larger than 65K.
  • The Preferences dialog box has been adjusted so that some text strings are no longer clipped.
  • The IDE no longer hangs on launch if the most recent project is on a volume that is no longer available.
  • Copying an event no longer occasionally pastes the event. Incorrect property declarations such as MyVar(19) As Integer() now result in a syntax error instead of a failed assertion.
  • On Linux, Date.WeekOfYear is now consistent with Mac OS X and Windows.
  • On Windows, Resizing a locked Groupbox in the IDEʼs Window Editor no longer crashes when the Groupboxʼs top and bottom meet.
  • The Feedback window will no longer appear to already be in progress when you open it a second time.
  • The Splash Screen text is now properly centered on Linux.
  • The System.Network class no longer throws a failed assertion.
  • Status messages on the Splash Screen are no longer truncated on Linux.
  • Tab bars now respect the entire close icon (and not just half of it) when there are many tabs open.
  • Dynamically localized strings no longer result in Console log errors on Mac OS X.
  • Autocompleting Editfields (like the Location field in the IDE) no longer ignore menu selection.
  • Code folding with nested folded code works better in the Code Editor.
  • Issues where external items could result in a valid folderitem that specified a file that did not exist have been fixed. This was frequently a result of moving and/or renaming external items like pictures.
  • Relaunching the IDE after a hard crash no longer throws a NilObjectException.
  • A bug that resulted in no results being returned when using DoShellCommand in an IDE script on Windows has been fixed.
  • Help tags for toolbar buttons no longer incorrectly display the “&” symbol.
  • The pragma Unused now autocompletes.
  • Lots of various bugs in the language reference content have been fixed.
  • Converting a property to a computed property no longer changes the name to title case.
  • The IDEScript command Sublocations now returns a list delimited by chrb(9) allowing items with spaces in the name to be split in the list.
  • Data is now properly sorted when a row is expanded in the Profiler results.
  • If a checkbox is in an indeterminate state, setting the Value to true no longer clears it. You must use the State property. However, you can still set the Value to false and that will change the state.
  • The Feedback window in the IDE now properly resizes along with all of its controls.
  • Demo apps now quit properly on Linux.
  • A bug has been fixed that caused choosing Save As from the File menu to fail when saving a project in XML format.
  • Building an application that contains plug-ins in a restricted directory no longer causes a failed assertion on Windows.
  • Toolbar icons are now masked properly for screen depths less than 32-bit on Windows.
  • The Listbox no longer copies column data in the wrong order.
  • Windows can no longer be set to “Console Applications Only”.
  • Plugin-Developers: REALLoadObjectMethod and REALLoadGlobalMethod no longer leak memory. REALbasic users: Nothing to see here. Move along.
  • Customizing the toolbar for the Language Reference no longer misnames the Customization dialog box.
  • Popupmenu controls no longer receive the focus when Full Keyboard Access is disabled on Mac OS X.
  • System.Log no longer leaks memory on Mac OS X.
  • Setting Help Tags to controls no longer leaks memory on Mac OS X.
  • If the IDE cannot create the Resources folder while building your application, you will now get an error rather than a failed assertion.
  • Finding items that had an ellipsis in the autocompletion in the Language Reference works again.
  • Methods in subclasses whose parent class was in a namespace now autocomplete.
  • Release notes now contain a final note marking the end of the release notes.

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

  • 26 New Features:
  • You can now copy all menu handlers, methods, constants, and properties by selecting the code group heading and dragging while holding down the platform- specific copy key (Option key - Mac, Control key - Windows and Linux).
  • The font size in the Language Reference window can now be increased and ecreased.
  • REALbasic can now automatically reopen the last opened project. This can be enabled via the Preferences window.
  • There is now a QuickStart window that opens when you launch REALbasic. This window provides resources to new users to help them get started.
  • FolderItem.OpenAsPicture now supports loading 32-bit pictures with masks.
  • FolderItem.SaveAsPicture now supports saving pictures with masks.
  • Importing a picture into a project now includes the mask if there is one.
  • The Canvas class now supports double-buffering on Windows via the DoubleBuffer
  • property. Note that this requires extra memory and the loss of transparency. This
  • property is not necessary on Mac OS X or Linux because those use double-buffering
  • by default.
  • Bug reports can now be entered from the Bug Report dialog box available from the
  • Help menu.
  • Errors reported by Analyze Project now are grouped more generically for better
  • clarity.
  • The Checkbox control how support a three states: checked, unchecked and
  • indeterminate.
  • The Listbox nows supports tri-state checkboxes. See the new Listbox.CellState
  • method for details.
  • The status bar now shows constructor parameters.
  • The Listbox now has HeaderHeight and RowHeight properties. These are read-only.
  • Cut, copy and paste can now be used with class attributes.
  • Importing a file into a project while holding down Option/Alt will import a reference to the file file rather than important its contents making it an external item.
  • CurrentMethodName is a new string constant that, as the name implies, contains the
  • name of the method in which is was accessed. This is useful to anyone building their
  • own error or bug reporting system.
  • Both the Window and Rectcontrol class now have a new property called
  • TrueWindow which returns a reference to the actual enclosing window. This can be
  • useful when a window like a sheet or a control on a container control needs to know
  • the window in which itʼs truly displayed.
  • The Name property in the properties pane now gets the focus when a new project
  • item is added so that you can immediately rename it.
  • The built-in language reference window now supports command-left arrow and
  • command-right arrow for navigating back and forth on the Mac.
  • The Property List Behavior dialog for a container control can be accessed from both
  • the Project Editor and the Code Editor.
  • File I/O streams can now be created on the Mac using a File Descriptor or file
  • pointer.
  • The autocomplete popup menu now shows the icon of the project item if it's a
  • Picture, Sound, MouseCursor, Movie, or Database item. This makes it easier to
  • identify the objectʼs type.
  • A new constant called CurrentBuildAppName is now available to IDE scripts.
  • DebugBuild is a new constant that can be used in IDE scripts to determine that the
  • application is running from the IDE rather than as a built application.
  • You can now copy and paste constants and properties between REALbasic and a
  • text editor. Currently this only supports one constant or property at a time.
  • 9 Changes:
  • ArrowCursor, IBeamCursor and WaitCursor have been removed. These can now be
  • accessed via System.Cursors.
  • Windows added to a project are now resizable by default.
  • Building a Windows application no longer deletes the content of the folder that the
  • app was built in. This allows you to place additional resources next to the IDE
  • without fear of it being deleted upon the next build.
  • Some numeric warnings generated by the compiler are now available again via
  • Analyze Project. However, you must enable these warnings via the Preferences
  • dialog first.
  • The Listbox CellBackgroundPaint event now executes even if the cell is in a column
  • that is unused but visible.
  • Builds are now placed inside a folder titled “Builds” plus the name of the project.
  • Inside this folder, builds are separated into subfolders for each target platform.
  • Serial.Win32DriverHandle, Serial.MacInDriverRefNum and
  • Serial.MacOutDriverRefNum have been removed. User Serial.Handle instead.
  • When editing attributes on Mac OS X the sheet window now has a title that indicates
  • which item to which you are adding attributes.
  • Profile report file are now comma-separated.
  • 100 Bug Fixes:
  • Mac resources are now copied into application bundles with the permissions set to
  • 0644 (rw-r--r--) so it's not necessary to do this in a build script. REALbasic now
  • builds Mac OS X applications with resource permissions set the same way as
  • XCode does 0644 (rw-r--r--).
  • FolderItem.AppendToTextFile no longer truncates an existing file that is currently
  • opened. It now fails and reports an error instead.
  • The Code Editor now indents code based on font size.
  • Popup menus now show their current value in the Window Editor.
  • A sporadic unhandled exception in the IDE tabs has been fixed. This had to do with
  • making the tabs properly highlight the close icon on tabs that were positioned behind
  • other tabs.
  • Dividing small currency values no longer crashes.
  • Applications built for the Mac now properly respect the user's preference for
  • language localization.
  • Floating point literals no longer lose precision when compiled.
  • The Movie class now reports the correct size of the movie on Windows.
  • RegEx search now handles any newline endings again.
  • Compiling structures that contain fields of other structures that contain fields of itself
  • no longer causes a stackoverflow crash.
  • Email messages with multiple attachments can now be received consistently with
  • the POP3Socket.
  • You can move controls more than one pixel at a time using the arrow keys.
  • Links in the built-in language reference now work with Chinese language content.
  • Properties panel will sort in correct order in all localized versions again.
  • Pressing Control-Home now updates the cursor as expected in the Code Editor.
  • You can now use the Folderitem class to open some files on the Mac that could not
  • be opened before such as /dev/random.
  • The 128 x 128 icon format is now better supported with tools such as Growl or
  • Iconographer.
  • Projects saved in version control format now now save attributes of event definitions.
  • Methods missing from a class interface are no longer reported in duplicate.
  • Modules containing external items now save and restore properly.
  • The Project Editorʼs contextual menu no longer allows access to a deleting project
  • item.
  • Modules that contain nothing but external items now save and restore properly but
  • cannot themselves be made external as an external item cannot contain external
  • items.
  • Illegal constant names now generate a syntax error instead of a failed assertion.
  • REALbasic no longer gets in a state where you can't click on things which you
  • should be able to.
  • Mutex locking now works again on the Mac.
  • Images containing transparency imported into a project using REALbasic on
  • Windows now draw properly. This fixes the “blue background” bug with these types
  • of images on Windows XP.
  • The Pushbutton action event is no longer triggered by a right or middle mouse
  • button click on Linux.
  • REALbasic no longer throws exceptions due to some icons that were missing.
  • If the language reference window is the last window to close, REALbasic now quits
  • properly on Windows and Linux.
  • The language reference has been updated to fix numerous issues.
  • The compiler now displays an error rather than a failed assertion when a project item
  • has more than one computed property with the same name.
  • Setting the alignment of a paragraph in a built application no longer causes a failed
  • assertion.
  • Loading global bookmarks no longer causes a project to be treated as if itʼs new.
  • Changing a PagePanel into a TabPanel and vice versa works again.
  • Is it no longer possible to accidentally re-parent one control on to another when both
  • are being dragged.
  • Warnings that are not currently being generated can no longer be selected to be
  • shown or hidden in the warning preference dialog.
  • Computed properties properly indent their code when saved to RBVCP files.
  • On the Mac, GetTrueFolderItem on a volume drive (with PathTypeShell or
  • PathTypeURL), like /Volumes/MyDrive, now works like it did in 2008r4.2 and prior, so
  • instead of returning Macintosh HD:Volumes:MyDrive as an AbsolutePath it now
  • returns MyDrive: as it had before. Aside from the obvious AbsolutePath differences
  • this also solves the problem with getting a Child item on the volume drive.
  • Compiler no longer crashes when aggregating an interface with an unqualified
  • name.
  • Picture.Mask can now be set allowing you to set a new mask or to remove a mask
  • from the picture.
  • Icons on menu items in projects in version control format now save and restore as
  • they do in XML and RBP files.
  • Applications that use XML are now smaller by 300K.
  • A memory leak in the IDE was fixed.
  • Large projects (especially those using the MBS plug-ins) no longer causes a failed
  • assertion in SmartRef.h.
  • When the Properties pane is displayed as a floating palette, it now restores to its last
  • saved size and position.
  • An IDE redraw issue when switching between editor only and normal views of a
  • project has been fixed.
  • Localized strings in projects saved in version control format for different platforms
  • and saved using different language versions of the IDE restore properly in IDE's
  • using a different language.
  • Programmer bygd på Windows med norsk lokalisering nå riktig viser lokaliserte
  • strenger. (#5821)
  • If the Code Editor item browser list has focus and you paste code with a new
  • constant or new property, the constant or property will be created. This allows you to
  • copy and paste constants and properties. This was broken in a previous release.
  • Printing code now provides better support for code that wraps to the next line.
  • REALbasic now does a better job of cleaning up temporary items associated with
  • the language reference.
  • Changing the super property of a Window no longer causes an exception.
  • Menus can no longer be made external. The bug that appeared to let you do this has
  • been fixed.
  • REALbasic can now load BMP files whose images are stored top-down on Linux.
  • Using the XML classes no longer causes a crash on Mac OS X 10.3.9 PowerPC.
  • A compiler bug with converting UInt32s of &hFFFFFFFF to UInt64s has been fixed.
  • Printing a project that has missing external items no longer raises a nil object
  • exception error.
  • The autocomplete popup menu is now wide enough to display constant values.
  • The Forward and Backward buttons in the built-in Language Reference window now
  • work properly when displaying content from plug-ins.
  • The compiler now reports an error for missing conditions on For and While
  • statements instead of throwing a failed assertion.
  • The titles for groups of errors have been made more indicative of the type of error
  • instead of being one specific error message. For example, you will now see "unused
  • local variables" instead of "X is an unused local variable".
  • A bug that caused some errors and warnings to be mixed into the same group has
  • been fixed.
  • The debugger will now display computed properties of type Int16.
  • Preferences are now saved when the Preferences dialog closes instead of just when
  • the IDE quits.
  • Profiler now reports the correct namespace for embedded items.
  • Corrected a bug in the reporting of sublocations in an IDE script that would prevent
  • scripts from properly working to add code to all items in a project.
  • TextHeight and TextAscent properties of the graphics class now show in the
  • debugger.
  • Enums from plug-ins now autocomplete.
  • The registration dialog box handles some localizations better.
  • Tabbing in Preferences dialog now moves to the next logical control instead of
  • erratically.
  • Setting focus to another control in RadioButton.Action event now works properly on
  • Windows.
  • The HTMLViewer now displays a message if you donʼt have the necessary library
  • installed on Linux rather than causing a failed assertion.
  • Modal dialogs on Linux no longer include the minimize and close widgets and are no
  • longer movable (please note that this is dependent on the Window manager, some
  • may not honor these settings).
  • PopupMenus can now gain keyboard focus on the Mac.
  • An unhandled exception bug has been fixed that was caused by deleting a lot of text
  • with the backspace key in the Code Editor.
  • Parent controls, like group boxes, canvases, etc, no longer incorrectly set the
  • controls they own to be selected when you duplicate the parent control. This could
  • result in the contained controls incorrectly being duplicated again when you
  • duplicated the parent more than once.
  • Images that were zoomed in would not scroll all the way right and down. This has
  • been fixed so the entire picture can be seen even when zoomed in.
  • Bug that caused a crash as a result of the floating properties palette has been fixed.
  • Control-clicking on the Analyze project tab no longer throws an exception.
  • REALbasic now better handles loading old projects where the parent of a control is
  • corrupted. This occurred because older versions of REALbasic were not saving this
  • information properly.
  • The property list behavior can now be changed for container controls.
  • The incremental compiler now properly recompiles subclasses of plugin classes
  • when plugin changes.
  • KeyDown/KeyUp event of ComboBox now fires on Windows.
  • Pressing the Tab key in the Window Editor should once again select the next visible
  • control, even when using ListBoxes and ContainerControls.
  • The behaviourIndex property is no longer duplicated in projects saved in version
  • control format.
  • The mode switcher no longer gets out of sync with the actual listing on the error and
  • warnings list.
  • Bin and Oct now works for negative numbers.
  • Profile data tab can now be dragged into separate window.
  • You will no longer get rows showing locations with 0 warnings 0 errors when all
  • types of warnings are hidden.
  • The type filter dialog, used for selecting what filters to show / hide when checking a
  • project for errors, is now resizable.
  • You no longer need to re-select a control before it can be duplicated many times.
  • The display list of errors and warnings is not refreshed when closing the
  • configuration dialog if no settings were changed.
  • Entering a color value will be correctly reflected for editfields, ovals, rectangles,
  • round rectangles & statictext controls.
  • The & character now displays in the summary of a declaration for a constant,
  • method or property.
  • REALSQLDatabase.LastRowID now returns an Int64.
  • Changing the superclass of a control and then reverting the change redraws the
  • affected control in the Window Editor correctly.
  • The Code Editor no longer switches to the Window Editor (in some cases) after
  • choosing Edit -> Undo.
  • The order in which project items appear in the Project Editor is now saved so that it
  • can be restored when the project is reopened.
  • Build progress bar now shows up on Windows Vista.

New in Xojo 2008 Release 5.1 (Dec 16, 2008)

  • Adding tabs to a TabPanel, or pages to a PagePanel, or changing the Super
  • property of a control now updates the control to reflect those changes in the
  • window editor.
  • REALbasic no longer pauses for a long time when compiling on Mac OS X.

New in Xojo 2008 Release 5 (Dec 9, 2008)

  • Framework improvements:
  • The Regular Expressions classes now use the latest version of the PCRE library (7.7).
  • There are three new warnings for unused local variables, unused method parameters, and unused event parameters.
  • Added a new pragma to suppress unused variable warnings. The syntax for it is: #pragma Unused VariableName.
  • RectControl class now has a KeyUp event which is triggered when a key is released on the control that has keyboard focus.  Note that the "key" is not guaranteed to be the same "key" received in the KeyDown event.
  • You can now use the &u modifier to enter Unicode codepoints as string constants.  For instance: &u02A4 would be Latin Small Letter Dezh Digraph(ʤ).
  • Single and Double expressions may now use .Equals to perform ranged equality tests on floating point values. See the Language Reference for details.
  • Added a SendRequest function, which allows the user to specify which HTTP method is used when sending the request. It is identical to the Get / Post APIs, except it has an additional "method" parameter.
  • Added StructureAlignment attribute that allows you to set the natural alignment of a structure when compiling. If you donʼt know what that means, you probably donʼt need to know. :)
  • DatabaseField.StringValue no longer returns the full date for a time column.
  • Updated the authentication handling for the SMTP protocol to correct errors encountered with some servers (affects both the secure and non-secure socket).
  • Converting strings from one encoding to another no longer leaks on Linux.
  • Drawing Listbox offscreen (i.e. using DrawInto) now draws the contents of the listbox properly on the Mac OS X when there is code in the CellBackgroundPaint event.
  • Exceptions thrown from event handlers fired by DoEvents are now catchable.
  • You can now create a file I/O stream from a file descriptor or file pointer on Mac OS X.
  • Transparent images now appear correctly on Mac OS X when assigned to Canvas.Backdrop.
  • XSLT transformations no longer returns infinity (when it shouldn't) on Windows.
  • An invalid constant value no longer causes a failed assertion, instead it generates a compile error.
  • Removed the deprecated function ApplicationSupportFolder.  You should use SpecialFolder.ApplicationData instead.
  • Removed the deprecated function DesktopFolder.  You should use SpecialFolder.Desktop instead.
  • Removed the deprecated function DocumentsFolder.  You should use SpecialFolder.Documents instead.
  • Removed the deprecated function PreferencesFolder.  You should use SpecialFolder.Preferences instead.
  • Removed the deprecated function SystemFolder.  You should use SpecialFolder.System instead.
  • Removed the deprecated function TemporaryFolder.  You should use SpecialFolder.Temporary instead.
  • Removed the deprecated function TrashFolder.  You should use SpecialFolder.Trash instead.
  • Removed the deprecated function SpecialFolder.ShutdownItems.  This API will have no replacement.
  • Removed the deprecated function SpecialFolder.ControlPanels.  This API will have no replacement.
  • Images no longer fail to appear in a project that contained masked pictures when building for Mac OS X from Vista.
  • Using the : operator in RBScript to create a Pair now generates a clear error message instead of a cryptic one about classes not being found.
  • Date.GMTOffset now returns the correct offset instead of always 0 in Linux builds.
  • Date.ModificationDate now returns the correct modification date (when contents change) instead of the change date (when permissions on the file/ directory changed) on Linux.
  • A failed assertion no longer occurs on Mac OS X when a RBScript attempts to make use of delegates.
  • Using the GetTypeInfo operator from RBScript no longer results in failed assertions, but instead generates an appropriate error message.
  • HTMLViewer embedded on a non-visible Tab/PagePanel now shows when Tab/PagePanel becomes visible on Windows.
  • Setting the ColumnType to EditableCell now shows the IBeam cursor for that column on Mac OS X.
  • Toolbars on Windows no longer stop the ConstructContextualMenu event from firing.
  • Dictionary.Lookup no longer returns inconsistent results for integer keys on Mac OS X PowerPC builds.
  • Objective-C declares which return structures Duplicate can how be used to duplicate methods, properties, menu handlers, constants, etc.
  • Source code now prints in color.
  • Container controls can readily be changed at design time to windows and vice versa by changing the Super property. However, you cannot change the default window of a project to a container control.
  • The Resolve dialog now has an obvious Check All button.
  • Unused local variables, unused method parameters and unused event parameters are now reported by the Analyze Project command.
  • You must now drag a control at least 5 pixels horizontally or vertically before it will generate a copy to avoid accidental copying of controls.
  • Viewing a folderitem in debugger on Mac OS X no longer results in strange errors like not being able to write to a file.
  • RaiseEvent no longer auto-completes bogus event handlers.
  • Attributes no longer get split incorrectly when entering a comma in the name or value.
  • Raise statement no longer auto-completes bogus objects that are nor subclasses of RuntimeException.
  • Catch And Exception statements no longer auto-complete bogus objects that are not subclasses of RuntimeException.
  • Results of analyze project can be grouped by type or location.
  • Auto-complete popup window is now dismissed when the text is fully completed on Windows and Linux.
  • The auto-complete popup in a Location field now properly narrows the selection as you type.
  • Structures and Enumerations now auto-complete when the full namespace used.
  • Variables declared inside a block statement no longer auto-complete outside of it.
  • Autocomplete no longer suggests events as completion of Me or Self Autocomplete now supports namespaces (i.e. classes/modules inside modules).
  • IDE no longer allows you to create invalid enumerations Enumerations can only be integers.
  • Loading a project that contain ActiveX controls no longer crashes on Windows if the ActiveX control could not be loaded.
  • Variables declared after an Else clause now auto-complete.
  • Warning preferences are now saved in XML projects.
  • IDE on Windows now resizes at start up to the "default" size you set by opening a new empty project and resizing the IDE.
  • Menu item array indexes can now be removed after items are renamed.
  • Relocating a missing image will regenerate the row icon for display in the Project Editor.
  • The Issue Resolution dialog now resolves all selected issues not just the first one.
  • Reparenting a ContainerControl, that contain disabled controls, no longer enables the controls.
  • Command bar properly enables items based on the type of project being edited.
  • Windows IDE no longer randomly disappears after running or building (commonly seen on Windows XP).
  • The Lock/Unlock toolbar item now properly enables and disables if there is a selection.
  • Applications on Linux are now revealed when a build is completed.
  • Properties Dialog now uses the System font on Linux so the heading in the preferences dialog will appear properly.
  • AddressOf now auto-completes local functions, shared methods, and public and protected methods in modules.
  • Changes in constant values and build language are immediately reflected in the IDE's display.
  • Changing the Super property of a control then undoing the change will retain all property values (custom and non-custom).
  • Plugins that declare duplicate classes are flagged as an error. Since there is no way to resolve this except by quitting the IDE and removing plugins this is the only option given if this situation arises.
  • NilObject Exceptions no longer occur due to errors when setting up IDE scripting for use from the command line.
  • Scope choices are now properly set for modules nested in modules and other contained items.
  • Properties will now always show up grouped correctly.
  • IDE status progressbar no longer flickers on Windows.
  • Bookmarks bar updates properly when editing bookmarks.
  • Build toolbar command and Build Application menu items enable properly when "current platform" is selected as the build target.
  • Debugger is now more intuitive when stepping on Do and While statements.
  • Do statements no longer have to be stepped over. However, you will now have to step over a While expression on each pass through the loop.
  • Debugging console applications whose location path contain spaces now works correctly on Linux.
  • A variable declared in a For-Each statement now accounts for namespaces in its type. For example, “p” now auto-completes properly when typing the line: For Each p As Introspection.PropertyInfo In pi.
  • Certain keywords such as GetTypeInfo, CType, AddressOf, Nil, True, False, now auto-complete when used on the same line as a Dim statement. This is just one specific case. The fix was more general.
  • Introspection class now auto-completes.
  • When folding constants, integer division by zero (and modulus) no longer causes the compiler to crash.  The behavior is the same as at runtime: the results are undefined.
  • Namespaces in folders that have an interface in them no longer cause illegal cast exceptions.
  • Results of Analyze Project now show build errors. Warnings are now displayed hierarchically.
  • Declaration fields now applies standard case with auto-complete.
  • Setting locked positions on a mixed group will now always behave as the menu says.
  • Positioning of edit fields for entering license information conforms to UI guidelines.
  • A new project can now be created when only the IDE script window is open.

New in Xojo 2008 Release 4.2 (Oct 28, 2008)

  • [Fix] Double to UInt64 conversion no longer crashes on Windows machines that do not have SSE3 CPU support.

New in Xojo 2008 Release 4.1 (Oct 14, 2008)

  • [Fix] Mac: resizing a window with a hidden HTMLViewer no longer causes the HTMLViewer to redraw itself.
  • [Fix] Pictures, Sounds, Movies and raw data resources that are dragged into the project are now copied directly from disk into the application's bundle when creating Mac applications instead of copying only the data fork over.
  • [Fix] Str now displays up to 7 significant digits again.
  • [Fix] Locked controls are read properly from VCP files.
  • [Fix] Multiple resource files with the same name are now copied into the Mac bundle's Resources directory with unique names.
  • [Fix] Declares using default parameter values (which are rare, except for auto-generated plugin code) no longer cause crashes when compiling.
  • [Fix] Setting controls locked / unlocked properly dirties the document so it save correctly.

New in Xojo 2008 Release 4 (Sep 23, 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 2008 Release 3.1 (Jul 22, 2008)

  • Version 2008r3.1 focuses on highly-targeted bug fixes, including an issue with accessing the Einhugur Plugin.

New in Xojo 2008 Release 3 (Jul 8, 2008)

  • This version offers several new features, including a new Attributes language feature, an update to the project analyzer to include warnings of deprecated functionality and other code issues, and an integrated profiler that allows programmers to track down performance issues within their applications quickly and without any additional coding.
  • Also included will be the ability to add types within classes and several improvements to the recently added introspection functionality.
  • There are numerous fixes and improvements.

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

  • New release includes 200 improvements and adds Pairs as a new class.

New in Xojo 2008 Release 1 (Feb 12, 2008)

  • [Dep] [All] SpriteSurface: The SpriteSurface is now deprecated. We suggest using Tinrocket's SuperSpriteSurface class instead. The SpriteSurface will be removed from a future version of REALbasic.
  • 272: Compiler erroneously complains about old-syntax destructor methods. Compiler no longer reports a syntax error when it encounters the old, deprecated destructor syntax. (This syntax will be removed in 2008r2.)
  • 127: Crash on Database Access[afakwmrh]: Fixed a crash bug that occurs when the IDE tries to connect to a local REALSQLDatabase data source saved with a previous RB version.
  • 75: RBScript Causes Runtime Error #4 in Console Applications[cblkiarj]: RBScript no longer causes runtime error #4 in console applications.
  • 140: Internal error on build -- Console Application no longer compiles[hbkdjbuh]: Compiler no longer fails with a nil object exception when compiling projects with certain types of syntax errors (a module named "Global", for example).
  • [New] [OSX] AppleEvents: AppleEvent class now has a constructor which accepts a bundle id as the target application for the apple event.
  • [Dep] [OSX] AppleEvents: NewAppleEvent function is being deprecated and the AppleEvent class constructor should be used instead.
  • [Fix] [IDE] Build: Picture files no longer remain 'in use' by the IDE after a compile. (Feedback ID: xzgagwax)
  • [Ref] [IDE] Code Editor: Refactored the code editor declaration functionality for easier maintenance.
  • [Nte] [IDE] Code Editor: The declarations field no longer does error checking for your declarations as you enter them, by design. This feature may return at a future date in a more comprehensive and accurate form.
  • [Fix] [IDE] Code Editor: The platform setting for a dynamic constant does not revert back to the 'Any' setting after modifying the value.
  • [Fix] [IDE] Code Editor: When pasting methods into the code editor, the IDE no longer renames the method if it is a legal overload.
  • [Nte] [IDE] Compiler: "Aggregates" is now a reserved word and cannot be used as an identifier.
  • [Fix] [All] Compiler: Better reports unmatched #if/#endif blocks within a method. Note that this can still cause a cascading error effect where subsequent errors are seemingly nonsensical.
  • [New] [All] Compiler: Can now put arrays into variants. Also, added new special Variant member functions: IsArray and ArrayElementType, as well as a constant TypeArray (&h1000).
  • [Fix] [All] Compiler: Interfaces can be satisfied by superclass methods now.
  • [Fix] [IDE] Compiler: Local declares can now use namespaces when specifying the lib string.
  • [Fix] [All] Compiler: No longer reports an error when using the Call keyword in conjunction with the RaiseEvent keyword.
  • [Fix] [All] Compiler: Now handles structures containing arrays of strings properly when working with the structure's StringValue property.
  • [New] [IDE] Compiler: Now supports explicit interface method implementation. This means that ClassA.Foobar can implement InterfaceB.Wahoo so long as Foobar and Wahoo's signatures match.
  • [Fix] [All] Compiler: Now using more helpful error messages when not using return values from function calls. Also, a more helpful error message appears when using the Call keyword on a function call but passing illegal parameters.
  • [Fix] [IDE] Compiler: The bitwise And, Or and XOr operators now behave more reliably with 64-bit integers on PPC.
  • [Fix] [Mac] Compiler: The bitwise Not operator now works on PPC compiles.
  • [Chg] [Win] Compiler: Updated the manifest file used by built applications so that they run "asInvoker" on Vista. Note that this will disable the folder and registry virtualization provided by the OS for compatibility with broken applications.
  • [Fix] [All] Compiler: Using the Super keyword now works with namespaces when the super class resides in a different module than the base class.
  • [Fix] [IDE] Compiler: Using the bitwise not operator with a 64-bit integer no longer throws an assertion.
  • [New] [All] Compiler: Variants can now hold the following datatypes: Ptr, CString, WString, PString, CFStringRef, WindowPtr and OSType.
  • [New] [All] Compiler: You can now store structures into variants. Legal conversions from a variant holding a structure are: to a string, or to a structure. The current platform endianness is assumed when doing the conversions.
  • [Ref] [All] Control Order: Removed the ControlOrder property. Control order is now parent-relative, and is the same as tab order currently. The z-order, or tab order, can be changed in the IDE.
  • [New] [All] Controls: Added new TabIndex property for RectControls, this now separates the Z-Order from Tab Order.
  • [Kis] [OSX] Controls: Controls that do not normally receive keyboard focus (i.e. without full keyboard access turned on) do not honor their TabIndex property but are tabbed into by their control order
  • [Fix] [IDE] Debugger: No longer writes out empty variable viewer preferences for every variable. Instead, it only writes out preferences for the variable if you have modified it from the default.
  • [Fix] [IDE] Debugger: Now passes command line arguments to debugged console apps on OS X
  • [Fix] [IDE] Debugger: When displaying the string version of a variant in the debugger, the IDE no longer leaks the converted string reference.
  • [Fix] [Win] FolderItem Dialogs: Now use the proper Vista-style dialogs on Vista and higher. Note that in Vista, you cannot modify the dialog's contents (such as button captions, etc).
  • [Fix] [Win] FolderItem: IsReadable and IsWriteable now perform an access check instead of actually attempting the read and the write. This stops triggering spurious security audits, as well as provides a more accurate API.
  • [Fix] [Lnx] FolderItem: Now resolves symbolic links properly
  • [Fix] [Lnx] FolderItem: OpenAsBinaryFile no longer allows you to open directories
  • [Fix] [Win] FolderItemDialog: No longer throws a failed assertion when selecting a different filter type
  • [Dep] [All] Framework: The "IsCMMClick" global function has been removed. It was replaced long ago by "IsContextualClick".
  • [Fix] [IDE] IDE Templates: External templates now behave similarly to internal templates with regards to build settings. Namely, the default platform and names are not gathered from the template.
  • [Fix] [IDE] IDE Window: Opening the IDE that had a maximized window will no longer hide the title bar of the window under the menus, on Mac OS X.
  • [Fix] [IDE] IDE: IDE no longer crashes when attempting to draw an intrinsic control instance in the form editor when no instance of that control appears anywhere in the IDE's own UI.