BetterDirectGui - A drop-in replacement for DirectGui

BetterDirectGui is a project meant to expand the capabilities and make it easier to work with DirectGui. It is also intended to be easy to switch from DirectGui to BetterDirectGui, and GUI:s created with DirectGui should work with BetterDirectGui.

The actual improvements:
Keyboard navigation is supported. It is intended to “just work” and not need any setting up. But it is still configurable to allow the user to change its behavior.

Themability makes it easier to style your GUI and change many options for several GUI-elements at the same time.

No more INITOPT:s. All INITOPT:s have been updated to be able to be changed after widget creation. There were also a bunch of other options that was not marked as INITOPT:s, but still did not have any effect when changed after widget creation. Those were also updated.

Check out the Github page to find out more:

If you find any issues with BetterDirectGui or have ideas about what to improve, please let me know.


That’s impressive-looking! Nicely done! :slight_smile:

1 Like

Thank you!

1 Like

This sounds like some very good additions which have been requested for DirectGui quite a few times. Maybe some of those things could even find their way into Panda3Ds’ DirectGui?

Thank you! I would be happy to contribute these changes to Panda3d. Although keyboard navigation would ideally need some changes to the c++ side of panda if it is to be added to the engine…

Yeah, that would best be added in the PGui system, but even the other things like getting rid of those initopt options would be a good thing. Especially if I think about the things I could remove from the DirectGui Designer and handle every option pretty much the same ^^
Themability is also a big topic but that’s something that needs to be really flexible if I think about the various kinds of GUIs a game could have like RPG games with their inventory systems and whatnot. I haven’t looked in depth into your implementation yet but that’s something I’m looking forward to.

Yeah, removing the initopt options really makes DirectGui more flexible and easier to work with. I have tried to make the themability system flexible, but there is still some more stuff that I want to add. And there are probably a bunch of edge cases that still need to be fixed.

Anyways, thanks for looking at my code :smiley:

1 Like


A couple of days ago a published a new release of BetterDirectGui. You can find it on my GitHub page: GitHub - Augustifolia/BetterDirectGui: Project to make it easier to work with DirectGui in Panda3d
It is a minor release with some bug fixes (mostly about themability) and some smaller tweaks.

1 Like