Starting with Xojo 2021r3, the Windows IDE is now themed for dark mode. This is because we’ve added support for dark mode aware Windows apps. But wait, how is that even possible with Win32 controls?
Comments closedAuthor: William Yu
While we make the full transition of building the Xojo IDE for M1, you can continue to leverage debugging M1 apps while using the Intel based Xojo IDE on macOS.
Comments closedThe New DateTime class introduced in Xojo 2019r2 is meant as a replacement for the now deprecated Date class. Let’s take a look at how…
Comments closedWinRT is an application framework meant as a replacement for the decades old Win32 API (at least the non-GUI parts of it). Because WinRT is COM-based, and entirely unmanaged code, accessing it directly from Xojo is possible.
Comments closedWith the release of Xojo 2017 Release 2 we have updated our Linux Desktop framework to use GTK+ 3 instead of GTK+ 2. For those not familiar with Linux, GTK+ is a User Interface (i.e. UI) toolkit, much like Cocoa is for macOS and Win32 controls (or WinForms.NET or WPF) is for Windows. GTK+ 2 has been supplying the user interface for Xojo Desktop apps for Linux since we first targeted Linux over a decade ago. It has since been deprecated in favor of GTK+ 3 for quite some time now and GTK+ 2 is typically not installed by default on most Linux distros these days, which makes deploying Xojo Desktop apps on Linux more painful. Unfortunately GTK+ 3 is not ABI compatible with GTK+ 2 so we could not migrate to using GTK+ 3 without completely ditching GTK+ 2.
Let’s take a closer look at what this means for your Linux apps:
Comments closedIn Xojo 2016 Release 4 we switched our main graphics rendering engine on Windows from GDI and GDI+ to Direct2D/DirectWrite. Direct2D/DirectWrite was first introduced by Microsoft in Windows 7, with support in Vista via a Platform Update. It is (or was at the time) Microsoft’s new high-performance 2D vector Graphics API.
Comments closedWith all the Retina/HiDPI work done in the past few years, we’ve had to add some new features along with it. One of these newer features is the Graphics ScaleX and ScaleY properties. For the purposes of Retina/HiDPI, the scale factor is used when converting user space coordinates to backing store coordinates. While mostly integral on MacOS (unless originating from some code that’s probably not ours), it can vary on Windows, and perhaps arguably mostly fractional. This is because Windows allows you to set DPI scales at 125%, 150%, etc. So when dealing with fractional scales there are a few things to watch out for:
- Rounding issues
- Anti-alias effect
While the framework takes care of rounding issues, for the most part, the secondary issue of anti-aliasing is up to you.
Comments closedLearn to customize URI schemes on Windows with Xojo applications.
Comments closedWhile Xojo doesn’t currently provide a direct way of recursively deleting a folder, there are various options that will allow you to do this:
1. Recursively iterate through all the folders, deleting each one. You can read about that at our Developer Site, this is the best cross-platform way.
2. Use the Shell to recursively delete a folder (i.e. “del /s” on Windows, or “rm -rf” on OS X and Linux)
Windows specific ways:
3. SHFileOperation (an older API)
4. IFileOperation (the more modern API that Windows recommends over option #3)
I’ve decided to look at option #4, since this allows more customized options, like the ability to show a progress dialog. However, it is also the slightly more complicated option since it deals with COM & Delegates. The example illustrates this:
Comments closedWith many things in life, more choices means more freedom of expression. We can pick and choose what we like personally as a way to express ourselves. Such is the world on Linux. The myriad of different Linux distros along with all the different Desktop managers and Window managers available are daunting. While more choices is nice (in general anyway), it can also cause more confusion. As a cross-platform developer, you’re probably aware that every operating system has their own way of dealing with crashes and crash reports. On Linux this is no different, but it is more confusing because not every Linux distro plays by the same configuration. This blog will answer some fundamental questions you may have about what happens when your application crashes on Linux.
Comments closed