2020r1

Xojo 2020 Release 1, with over 320 changes and improvements, was released on August 27th, 2020.

Major changes include:

Bug fixes (161 cases)

Case

Area

Description

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.

Changes (43 cases)

Case

Area

Description

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)

New items (72 cases)

Case

Area

Description

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.

Docs and examples (71 cases)