Create native cross-platform desktop, web, mobile & Raspberry Pi apps

Xojo for Mac

Join our mailing list

Stay up to date with latest software releases, news, software discounts, deals and more.

Subscribe
Download Xojo 2018 Release 2

  -  977.87 MB  -  Trial

What's new in this version:

- 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:
- Build: Windows/Linux IDE: Building with 64-bit native shared libraries in the Plugins folder now works properly.
- Compiler: Analyze will report multiple warnings per line if necessary.
- Compiler: Fixed an issue where Unicode characters in the project path could cause a failure when running or building 64-bit Windows apps.
- 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.
- Crashes & Assertions » Failed Assertion: Cancelling an update no longer causes an exception.
- Crashes & Assertions » IDE Unhandled Exception: No longer get a NilObjectException when navigating back and forth using the forward and backward arrows.
- 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.
- 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.
- Crashes & Assertions » IDE Unhandled Exception: A NilObjectException that could occur when caching plugins has been fixed.
- Database Plugins: MySQLCommunityServer now maintains its unsigned value when retrieving an unsigned smallest type instead of it being converted to a signed value.
- Debugger: Viewing the Runtime->Contents in the debugger (for 64-bit debug apps) no longer crashes debug app.
- Framework » All: Rotated PixmapShapes and StringShapes are now positioned correctly (was incorrectly placed at HiDPI and when printing before).
- Framework » All: Quitting from a Close event no longer causes the application to crash.
- Framework » All: JSONItem.Load no longer raises an OutOfBoundsException for an empty string.
- Framework » All: ContainerControl Moved event now fires again.
- Framework » Linux: HTMLViewer no longer crashes on Pi.
- Framework » Linux: Setting the BackColor and TextColor of a TextField or TextArea control now works.
- 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.
- Framework » Linux: Window bounds now correctly offsets the menu/toolbar from its top/height calculations.
- Framework » Linux: If there are more Tabs than available space to display them on a TabPanel, scrollable arrows now appear to get to them.
- Framework » Linux: Listbox headers no longer appear transparent.
- Framework » Linux: BevelButton no longer ignores the TextSize.
- Framework » Linux: Web apps no longer hang at startup on Linux ARM builds.
- Framework » Linux: Controls in GroupBox are no longer incorrectly positioned on Pi.
- Framework » Macintosh (Cocoa): Listbox with header and no border no longer leaves drawing artifacts behind.
- Framework » Macintosh (Cocoa): Tooltips that are hidden automatically can now show themselves again
- Framework » Web: WebTextAreas whose text contains line ending characters set in the IDE now sends the correct line ending characters to Internet Explorer.
- Framework » Web: WebFileUploader properly resets again when a new instance is created.
- Framework » Web: Auto-Reconnect works on Firefox again.
- Framework » Web: WebStyle gradient stop points render in the correct order again.
- Framework » Web: WebFileUploader no longer fails on IE11.
- Framework » Web: Uploading large files using WebFileUploader will no longer fail with an OutOfBoundsException inside the web framework.
- Framework » Windows: Console apps that write to StdOut now convert the string to the correct encoding for the console.
- Framework » Windows: BevelButton.Caption is no longer partially cut off when CaptionAlignment is Flush Left or Flush Right.
- Framework » Windows: WebKit based HTMLViewer now updates the contents immediately when resizing.
- Framework » Windows: Now honoring the Serial.RequestToSend property.
- 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.
- Framework » Windows: Listbox header no longer lags behind content when scrolling or when resizing columns.
- Framework » Windows: Xojo.IO.TextOutputStream/BinaryStream can now correctly create and open files that contain unicode characters on Windows.
- Framework » Windows: Using Xojo.Net.HTTPSocket to send a file that contains Unicode characters in its file path/name now works.
- Framework » Windows: Now using higher quality anti-aliasing when scaling a Picture.
- Framework » Windows: Slider controls now update their background correctly when its parent window updates.
- Framework » Windows: Sliders placed directly on a TabPanel now correctly matches the TabPanel background color.
- Framework » Windows: Rotating an Object2D on a clipped Graphics now correctly rotates on the relative X, Y delta supplied.
- Framework » Windows: OpenGLSurface: Calling Render from a Paint event now works again.
- Framework » Windows: Listbox focus ring is now drawn thin dotted again instead of dashes.
- Framework » Windows: Embedding ContainerControls on a hidden page of a PagePanel no longer causes redraw artifacts to appear.
- Framework » Windows: WebKit based HTMLViewer now correctly scales when moving between monitors with different DPI scales.
- Framework » Windows: Listbox Drag reorder indicator is no longer offset incorrectly.
- Framework » Windows: Improved ContainerControl scrolling.
- Framework » Windows: MouseMove, MouseEnter and MouseExit events are now called for MDI child windows.
- Framework » Windows: Hierarchical Listbox disclosure icon is no longer painted in wrong row and too small.
- Framework » Windows: A debug app with a Webkit based HTMLViewer on a window can now be closed properly when forcibly stopping the debug app.
- Framework » Windows: Optimized a case where one would draw a picture to another picture frequently.
- 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.
- Framework » Windows: Changing a ToolButton's caption no longer leaks the icon associated with it.
- 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
- 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.
- Framework » iOS: Setting the Active property on an iOSLayoutConstraint to False in the IDE now works.
- 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.
- 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.
- 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.
- 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.
- IDE » Auto Complete: Fixed regression where global methods in external modules would not autocomplete.
- IDE » Auto Complete: MenuItems autocomplete properly.
- IDE » Auto Complete: PagePanel.CreatePane and other internal details removed from autocomplete list.
- 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.
- IDE » Code Editor: Bare Exception and Catch statements no longer draw extraneous code matching markers.
- IDE » Code Editor: Selecting "Go to " from the context menu now selects the constant if it is a module.
- 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.
- 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.
- IDE » Code Editor: Clicking on the code folding hot box works properly.
- IDE » Code Editor: Indents and folding hit box positions are consistent even when using really small or really large font sizes.
- IDE » Code Editor: Code editor contextual Find does partial word searches not just whole word searches.
- IDE » Code Editor: Home and End scroll to beginning and ending of line.
- IDE » Debugger: Viewing properties of a Picture subclass in its Consturctor no longer crashes debugged app.
- IDE » FileIO: Backslash encoded strings in a note no longer cause issues when loading a project.
- IDE » FileIO: Subclassed iOS controls reload properly.
- IDE » FileIO: The IDE now cleans out existing build folders before a target is built. This happens before any pre-build steps.
- IDE » FileIO: Project opening speed is vastly improved for some projects with incredibly long methods.
- IDE » FileTypes Editor: Deleting a file type in the File Type Set Editor moves the selection to an appropriate item.
- IDE » Find & Replace: Search and replace within parameters no longer mishandles ByRef and Optional keywords.
- IDE » Find & Replace: Search followed by a replace no longer alters the found items list or the search scope.
- IDE » Find & Replace: Clicking on a breakpoint in the search results, when showing all breakpoints, correctly moves the Navigator focus.
- IDE » Inspector: Changing the scope of an external Objective-C method no longer drops the Objective-C setting.
- IDE » Inspector: Inspector Size fields changed via paste now retain the correct value.
- IDE » Inspector: Inspector labels no longer shift slightly.
- IDE » Inspector: Labels and switches in Inspector align better on Linux.
- IDE » Inspector: Constants and other code items cannot have names that end in white space.
- 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.
- 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.
- IDE » Inspector: The button on the Inspector panel for multiline items no longer has draw through artifacts.
- IDE » Inspector: Fixed up a bug in the method edit pane that resulted in an exception when adding an overload method to an interface.
- IDE » Inspector: Formatting is removed when you paste formatted text into the parameters field.
- 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.
- IDE » Layout Editor: Windows IDE: The window titlebar icon no longer overlaps the title text in the layout editor.
- IDE » Layout Editor: Pasting a flex space ToolButton copied from another view no longer causes a hang.
- IDE » Layout Editor: Container control shows assigned backdrop in its design mode not just when placed on another layout.
- IDE » Library: Floating Library panel on macOS no longer draw the top popup menu oddly.
- IDE » Library: Listbox now has a 3x icon in the Library.
- IDE » Miscellaneous: Searching for a picture by name shows the properties of windows controls that its been used in.
- IDE » Miscellaneous: Attributes can refer to constants that use fully qualified dotted paths to access them.
- 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.
- IDE » Miscellaneous: Go To Location no longer overrides tab locks.
- 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.
- IDE » Miscellaneous: Undo of adding a file type to the file type editor removes pane from the UI.
- 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.
- IDE » Miscellaneous: There should be no longer be any overlapping controls in the bottom Find/Errors/Messages panel.
- IDE » Miscellaneous: An exception that could occur when an error that referred to an item that had been deleted no longer occurs.
- IDE » Navigator: Items from search panel are now properly highlighted in the Navigator.
- IDE » Navigator: Icons of items in modules now show the correct icon.
- IDE » Navigator: When changing the name of a method it remains selected in the Navigator.
- IDE » Navigator: Scope settings in the Navigator contextual menu for a class in a module behave properly.
- IDE » Preferences: Can edit color scheme and export immediately without having to first close the Preferences.
- IDE » Profiler: Warning dialog about building with profiling on now displays properly.
- IDE » Profiler: The dialog warning about compiling with profiling on no longer appears oddly on macOS.
- 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.
- IDE » Updater: Update panel no longer draws left pane in shocking green.
- IDE » Web Page Editor: Naming an image / picture the same as a property on a web page no longer causes compilation errors.
- Plugin SDK: Plugin SDK prototypes are as expected and don’t generate warnings if you turn on strict prototypes.
- Plugin SDK: Updated REALGetPropValue to be more consistent when dealing with Variants.

Changes:
- 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.
- Build Process (GoCD): Debian packages now include high rez icons @ 16, 32, 36, 48, 64, 72, 96, 128, 256, 512.
- Database Plugins: SQLiteDatabase plugin has been updated to version 3.23.1.
- Framework » All: There is a version of REALBasic.Rect that takes x and y instead of a point.
- Framework » Web: App.SessionTimeout can no longer be set lower than 30 seconds.
- 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.
- IDE: Issue resolution window default width is 600 or 75% of the opened project window, whichever is greater.
- IDE » Debugger: The debugger tab now has a bug icon to make it distinct from the others.
- 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.
- Installer: Windows Installer has been updated with the Windows 7 SP1 minimum requirement.
- Lingua: Lingua and iOSImageMaker are now 64-bit on macOS.

New Items:
- Database Plugins: SQLiteDatabase now allows up to 30 attached databases.
- Framework » All: Graphics API now takes Doubles instead of Integers for better precision.
- 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
- 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.
- Framework » Windows: Printing is no longer restricted to 96 DPI.
- Framework » Windows: Updated Webkit based HTMLViewer to CEF 3.3359.1774.gd49d25f.
- 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.
- Framework » iOS: iOSToolbutton.NewBordered is now marked deprecated.
- 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.
- 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.
- Framework » iOS: Inserting or Removing a row/section within the visible rows on an iOS table is now animated.
- Framework » iOS: iOSHTMLViewer is now a WKWebView instead of a UIWebView.
- 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.
- IDE » FileIO: There's now an option to save XML projects with indentation so they are more readable.
- IDE » Find & Replace: Find keeps a history of recent searches (15 at this time).
- IDE » Find & Replace: Search scope segmented control grows and shrinks as segments are added and removed instead of staying the same size.
- 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).
- IDE » Preferences: There is now a “Clear Cache” button on the Build Preferences.
- 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.
- Lingua: Lingua can now import the Tab delimited files that it exports.
- Lingua: Added a menu to specify the search scope.
- Lingua: Added script methods to get the first and last rows and to get/set the current row.
- 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:
- Examples: Moved EasyTCPSocket example projects so that they remain available for Windows/Linux users
- Examples: SQLitePreparedStatement example now uses SQLitePreparedStatement everywhere. Also improved search results output
- Examples: HTTP Example project is now set to 64-bit for macOS and now runs without errors
- Examples: Added port number 5432 to PostgreSQL Listen and Notify example projects
- Examples: WindowMenu example now checks for WindowMenuItems to allow other menus items to also exist in the Window
- Language Reference » Documentation: Redim appears in autocomplete drop-down as “Redim” so it’s consistent with documentation
- Language Reference » Documentation: Array methods should now appear in bulit-in Language Reference
- Language Reference » Documentation: Fixed typo in example code on Str page
- Language Reference » Documentation: Cleaned up examples for StrComp page
- Language Reference » Documentation: Fixed sample code for String.InStr method
- Language Reference » Documentation: Added PreparedSQLStatement.Bind(zeroBasedParam As Integer, value As Variant, type As Integer) method overload to Bind page
- Language Reference » Documentation: Added PreparedSQLStatement.BindType(types() As Integer) method overload to BindType page
- Language Reference » Documentation: Local LR shows the various operators with both their symbol and text name
- Language Reference » Documentation: Description for iOSDatePicker.MinuteInterval now properly notes it can be used with Time and DateTime display modes
- Language Reference » Documentation: Documentation wiki updated with value for REG_QWORD

Join our mailing list

Stay up to date with latest software releases, news, software discounts, deals and more.

Subscribe