Create Split window

I want to create a window with a listbox on the left and a display area on the right with canvas, labels etc.
In between I would like a divider which can be dragged left or right eg. to the right more of the list row would be revealed, to the left and the contents of the display area resize to the available space.
Which Xojo controls would I use and how? Is there an example project for this?

there are many 3rd party “spliiter” controls designed for just that purpose. I used one that I modified in my Tadpole SQL manager

I think Dave is talking about Window Splitter by Einhugur

That is one of many yes.
there are many free alternatives that work just as well

you really don’t need a plugin for that !

A canvas, and a little math… not really hard… gets a bit more complex if you want to synch multiple horizontal and vertical splitters on the same screen… but its not rocket science for sure.

this one is free :

I like imSplitter, but results are far more fluid with the plugin version.

Absolutely! I use the Einhugur splitter all the time. And Björn is a really cool guy. He is one of the long term stable guys. His plugins are very useful to me.

Once in a while I use my own imSplitter when I don‘t want any plugin in a project, and I know, I can always replace it and swap in the plugin splitter.

I use Harry Hooie’s SmartSplitter (anyone know what happened to Harry?) with the old-style cursors replaced by the System cursors. I love The Einhugur WindowSplitter, but the Linux tweaking for GTK-3 is mucking my schedule up and SmartSplitter works on all platforms since it’s native Canvas-based.

If any of you would like to take a look, here’s the version that I use in Xojo:
SmartSplitter Module

Just drop it into you project and it will show up as a customer project control. I recommend a minimum thickness of 10. Sorry that I don’t have documentation.

I just looked at Thomas Templemann’s TTsMarsSplitterDemo and made small changes to cursor handling and it seems very smooth now. First I changed from the internal graphic cursors to the System.Cursors.SplitterEastWest and SplitterNorthSouth. Then I noticed that the splitter cursor changed back to the pointer cursor when dragging so fast that the cursor moves out of the drag area. That is probably the reason the demo has such large (wasted space) drag areas. So I force the app.MouseCursor to be a splitter cursor during the MouseDrag event. Then add a MouseUp event and set app.MouseCursor to nil.
PS: Thanks to Thomas for this function.

I’m using this:

which appears still to be free. Works well for me.

[quote=423140:@Tim Streater]I’m using this:

which appears still to be free. Works well for me.[/quote]

Yes, free! I didn’t test on Windows, though. Maybe it is working better now that the flickering has been reduced in latest Xojo versions.