GraffitiSuite and Xojo Desktop 2.0: Part 1

We’ve all known this was coming for a while. Today, with the release of Xojo 2021R3, it became a reality. Xojo has created a new set of controls for Desktop to replace the legacy controls which will modernize the API for the user interface as well as bring the APIs for Desktop, Web, and Mobile closer together.

Is It Good? Really? REALLY?!

The short answer is yes. It is a good thing. I, personally, would love to have the APIs for all of the targets be exactly the same, but that’s not realistic (at least not realistically doable in a short timeframe). That being said, there are some painful points.

While the Xojo team did a very admirable job of facilitating the mixing and matching of the new and legacy components in 2021R3 for old projects, there are still some gotchas. The biggest pain point for me is with MenuBars. If you have a DesktopMenuBar in your project, you cannot have any legacy Windows in your project. For GraffitiSuite that means, currently, you must either:

  • Continue to use a project started in 2021R2.1 or earlier (you can save a template project file from 2021R2.1 that will automatically be used for new 2021R3 projects, but I won’t get in to that here)
  • Remove those GraffitiSuite products that use subclasses of Window

The Future

Now, neither of these options is acceptable to me, and I’ve been trying to come up with a few different ways to fix it. I don’t have anything ready right now, but it will be my primary focus until it’s sorted out. The Xojo team, I’m sure, is looking at ways to improve this — at least for the short-term — but I can’t really wait for that.

My current plan is to spend the next week working on this issue, more or less as my sole focus. Whether that means preparing a version of GraffitiSuite Desktop Edition Release 43 that completely migrates to Xojo Desktop API 2.0 or putting in a stop-gap workaround remains to be seen.

I have to say that I’m compelled to make Release 43 the final Desktop API 1.0 release. This would require a 43.1 release targeting Desktop API 2.0 and make that the focus going forward. I’d avoid bogging down GraffitiSuite with workarounds or extra steps that users need to complete just to use new versions of Xojo. If you’re a GraffitiSuite customer who must use an old version of Xojo and absolutely need continued API 1.0 support, I’d love to hear from you so please open a support ticket. That’s the best way I can make the decision on where to go next. I’ve already heard from a few users that they’re ready to jump into Desktop API 2.0, so that’s where I’m leaning.

To be clear, as I did with the Web 1.0 to Web 2.0 shift, there would be a set period of time where I continue to support the Desktop 1.0 products and provide fixes via the support system, but new products and updates would only be publicly released for Desktop 2.0. This actually worked out well in that it gave me a good idea of who needed what, and allowed me to maintain a more narrow focus while moving forward.


As I said before, I haven’t made my final decision. To be clear, I had plenty of time in pre-release phase to figure this out, but I kept hoping for an epiphany. That epiphany never came, so here we are. I do have a version of GraffitiSuite for Desktop 2.0 that is nearly release-ready, but it still needs some work. I ask for patience as I determine the way to best move forward with this dramatic shift in Xojo Desktop.