I created my own TreeView library

Hi everyone,

I’ve been experimenting with Xojo’s new Library feature and decided to build something practical with it:
a Canvas-based TreeView suitable for reuse across projects.

The TreeView is:

  • dictionary-driven
  • supports expand/collapse
  • allows custom icons per node type
  • supports optional attribute indicators
  • cleanly separates model, layout, and rendering

I found this a great way to both learn the new Library system and end up with a reusable UI component.

The project is available on GitHub here: DesktopTreeViewLibrary
Screenshots:

I’d be happy to hear feedback — especially from others experimenting with Libraries or custom Canvas controls.

I tried building this with the new Grid but wiring up events turned out to be a little challenging.
The DesktopListBox as a TreeView didn’t cut it for me either… but the canvas is nice..

More work to be done, but please feel free to clone the repo!

Cheers!

9 Likes

Link doesn’t work for me :thinking:

Here’s a fixed link :slight_smile:

2 Likes

Moderator action: fixed link in initial post (thanks @Tim_Parnell)

2 Likes

@Brian_O_Brien , how about using Apple’s official alternate row colors on macOS?

Ya.. I had color groups setup but they kept getting lost on import and export.

Where is the scrollbar?

Mouse wheel… and it’s backwards… lol.
Are you able to branch and pull/push?

Refactored code now there is a model, a view and a controller.
Any recommendations for how to handle colors in this app?

2 Likes