Xojo Roadmap: New Desktop controls with API 2 events

Since Xojo Roadmap got a new entry at position 3,

New Desktop controls with API 2 events: Availability of desktop controls with improved consistency. Not required to use, just made available.

I ask myself, if this could be the moment to get a new TreeView Control beside the Listbox. As we know Xojo Listbox is a very large custom control. Its not based on NSTableView and also not based on GtkTreeView as you can see on the header.

Lot’s of us wish a more native look on our Apps. So maybe this is the time for @Xojo to create a new TreeView Control with, initially, less properties then the Listbox control. It could be based on

This way, macOS users could, for example, get elastic Scrollbars in a TreeView control, which they have long wanted for the Listbox. Also variable line heights etc.

Which new Desktop Controls would you like to see?


What are elastic scrollbars?

Have in mind that this are not new controls, this are the SAME old controls just with another name and renamed classes, yup, even more API 2 mess

DateTimePicker took only a decade to be available after the request in feedback :sweat_smile:



I’m none the wiser, sorry.

The elastic bouncy behavior when scrolling on macOS. If you scroll past the bottom it bounces back up, etc

I hate this with a passion and have been looking for a way to disable it completely on macOS. No luck so far. I’ve reduced the amount of it in my app by removing as many HTMLViewers as possible, but I can’t remove them all.

It’s one of those horrible bits of “new” GUI that serve no purpose except to irritate.

Equally, under Linux, I’ve been looking for a way to prevent the scrollbar hiding itself when the user is taking no action. I’m fed up with looking at a page (on a browser under Linux) and thinking that there’s no more text to be read because there’s no scrollbar. This non-feature is a lot worse than the bouncy nonsense.


I do not know why, but I think these are already on work / it is too late to choose (and they do not asked us to vote from a list).

But we can dream / guess.

New means something we do not already have (different, not a ListBox replacement for example). A grid: Yes ! A ListBox replacement: No ! ;-:slight_smile:

Elastic scrolling is when you reach the end of the scrollable content and it snaps back.

im not program in xojo… but i see close about web development, i NOT buy this only for than i need a datagrid, i think this is the best control in a languaje programming…
sorry for mi english…

Does anyone know what this really means? It says new controls but opinion says old controls with new API 2 event names. Can anyone from Xojo explain what this roadmap item actually contains? If it’s so important to go to the top of the roadmap, above Android (which we have been waiting for for years) we should at least have a clear understanding of what it is.

It’s the current controls with renamed events, methods, properties, etc. It’s the next step in the evolution of API 2.0 for Desktop. Also note that order in the Roadmap does not denote order of importance but expected completion order, and different engineers work on different things at the same time. From the Roadmap page:

The order below is the order in which we currently believe we will deliver these features. Features are often developed concurrently by the Xojo team. Thus an individual release will sometimes ship with multiple features from this list. This roadmap only includes large features that we are ready to discuss publicly.

From what I understand, the old controls will not be going away anytime soon, but they may be marked as deprecated. You can mix and match old and new (IE: You could use a DesktopListBox on the same window as ListBox).


It’s just mind-boggling to me that energy that could be usefully expended on other things continues to be wasted on unnecessarily renaming things.


And Projects with these (with new Events) will never be read correctly with previous IDE versions…


These definitely aren’t backward-compatible changes, like the rest of API 2.0.

As a company it is sat that they are focusing on renaming and marketing instead of bug fixing and deliver meaningful features.

But that waste of time is nothing compared with what they expect users do: create a new window, set all the propertys, re-create the GUI with the “new” controls and then copy/paste MANUALLY all the code from the events :roll_eyes: This will be thousands of hours wasted with no real benefit beyond the “it is a new name” nonsense.


Yes, a thousand times. And then they will tell us about some imagined benefit of the new names/events. The worst thing is that the existing code doesn’t autocomplete anymore which makes maintaining said code a huge annoyance.


That is a real issue and why I do most of my coding 2019r1.1 as I have older projects that have to be maintained and need minor feature added and need to be able to run on newer machines, but do not make sense to spend all the time needed to update to API 2.

There is a feature request to be able to set autocomplete to API 1 Or API2 or both.

However at this point it is pretty obvious they will not implement it, which IMO is being really inconsiderate to long time customers.


  • Create a new project in an older version (I think this works up to 2019 R1.1)
  • Save it in the templates folder of your newest Xojo (I save from 2018R3 as “183 template.xojo_binary_project” in 2021 R2 templates folder)
  • use that template for your new projects and you’ll still see the API1 autocomplete suggestions

That didn’t work for me.