It is likely that later this week, Microsoft will be announcing Visual Studio for Mac. Is this really true? Why would they do this? What does it mean for Xojo users?
Posts related to Max OS development.
I recently had a folder full of jpg and png images that I wanted to reduce in size (the file sizes, not the image dimensions). There…
Have you ever wondered how the magic behind the “mailto://” or other similar Uniform Resource Identifiers (URI) work? Whether from the web browser URL field or from Xojo via the ShowURL function, when URIs are executed the registered app opens showing the passed parameters (for example, in the Mail app for the ‘To’, ‘Subject’ and ‘Body’ fields).
Implementing this kind of behavior in your OS X apps is not rocket science! Follow these simple steps in order to register a custom URI from your app.
Object Oriented Programming with Xojo, and in this case Event Oriented Programming as well, is simply wonderful. You create objects (Instances) from the defined classes that act as templates and just let them roll. From there, the interactions made by the user are those that determine how objects interact with each other via sending messages to each other (method calls), the access to properties and also the execution of events.
However, sometimes the combination can simply reach unstable situations by the very nature of our applications and here is where failures can arise in memory management. Fortunately, we can keep this under control with the help of the WeakRef class.
Continue reading WeakRef and Memory Management
Xojo is similar to VB, Java and C#
The Xojo programming language is fully object-oriented and uses an object model that is quite similar to VB, Java and C#. If you are used those languages at all, you’ll be right at home with Xojo.
Available since 1998, Xojo was one of the first languages to use Automatic Reference Counting (ARC), something that other languages such as Swift and Objective-C now use. Xojo is type-safe and fully object-oriented making it easy to learn and use, but it also has advanced features such as namespaces, extension methods, exception handling, introspection, delegates and more.
The most direct way to support HiDPI* for custom controls is to draw into the Graphics object passed into the Paint event. That graphics object is already configured with the appropriate scale factor and double buffering- the entire control will be handled correctly by the framework if the DoubleBuffer property is set.
*As with other posts, we’ll use “HiDPI” to refer to both HiDPI on Windows and Retina on OS X.
“Retina” is the name for high resolution screens on Mac and iOS devices while “HiDPI” is the Windows equivalent. For simplicity, I’ll use HiDPI (which really is the universal technical term) for the rest of this blog post. Now that we have HiDPI support in Xojo, if you app doesn’t use any pictures, you can simply open your project, click on Shared under Build Settings and turn on the “Supports Retina/HiDPI” option. That’s all you need to do to have a HiDPI version of your app!
Having said that, if you are creating or using pictures in your project, there may be a few adjustments you’ll need to make to your code. A little over a year ago the process of making sure we had all of the necessary graphics together to build a Retina/HiDPI IDE was added to my to-do list. While 95% of the icons created for the Xojo IDE in 2013 already existed, most of the graphics that made up the IDE itself did not, and the IDE itself needed a bit of an overhaul to get it ready for the big change, both in graphics and in code…