SFML community forums

Help => Graphics => Topic started by: 51423benam on January 19, 2018, 06:00:23 pm

Title: Nice way to write a GUI organization system
Post by: 51423benam on January 19, 2018, 06:00:23 pm
Hello,

the following question might be a bit unspecific, but I hope I can ask it like that.
I want to write a node-based audio creation program (kind of a DAW for sound designers. The node system and look should be like the attached image (it's a nodetree from Blender).
Now I wrote a few Widgets and node organization classes, but I don't know really how to write the whole program in a nice and universal structure, but that might be a problem later for me and co-programmers. Can you maybe share some tips or link to good documents/books/whatever?
 I know it's a blurry question and topic, but I can't ask soneone else. Thanks!
Title: Re: Nice way to write a GUI organization system
Post by: eXpl0it3r on January 19, 2018, 06:27:31 pm
Is the idea to write your own UI system or are you fine with some existing library?

Dear Imgui can help you: https://github.com/thedmd/imgui-node-editor
https://github.com/ocornut/imgui/issues/306
There's a SFML binding for it: https://github.com/eliasdaler/imgui-sfml

Or nuklear can do it too, it has two examples on how to use it with SFML: https://github.com/vurtun/nuklear
Title: Re: Nice way to write a GUI organization system
Post by: 51423benam on January 20, 2018, 05:06:46 pm
Theoretical, existing librarys would be OK to, but: I want to have FULL control about my GUI, and also I need audio and network, so I want to stay at SFML and write a GUI organization layer on top of it (with widgets, containers, and so on).
Title: Re: Nice way to write a GUI organization system
Post by: eXpl0it3r on January 20, 2018, 09:57:26 pm
Well did you check out my links? ::)

Imgui as well as nuklear both work on top of SFML.
Whether they provide you the level of control you want is up to you to decide.

Thing is, writing a GUI lib is not a trivial task. Giving up some control for an actually working setup with many widgets is often the better choice. ;)