General GUI/Processor design approach!


I am diving deeper into Juce and my design is getting bigger, so I would like to clarify a concept before messing it up later. Finally, after struggling for weeks to decide how to set up my project, I have decide to approach a top-bottom design.
I have been studing event notifications between files and so on. And my approach is to have a main_component which will contain the rest of the project in a top-bottom manner.
So for example, if I want 4 different panels-sections in my project (lets say panel1:setup, panel2: usb stuff, panel3: ethernet stuff, panel4:levels or whatever), I include “4 panel managers”, each containing both its GUI panel (panelx_gui.c/.h)and its procedures(panelx_proc.c/.h).
So every panelx_proc.c/.h file receives the events triggeres by its gui stuff to do whatever.

Then if I need to lauch events between different panel_managers can do it through the main component or using component change callbacks(buttons, slider or whatsoever) or broadcaster/listener callbacks.

I think this is a good way of reusing components, having the GUI stuff with no specific proccesing funstions at all to be reusable for other projects.

Any idea about it??it is the first time I think in the big flat picture of a processing/GUI project.

Other idea is to have totally different GUI and Proccesing files. But i think I would have to have lot of callbacks in the main component to receive all events from GUI to translate it to the processing stage. Although it was my first approach

Any idea is welcome, maybe it is useful for beggineers as myself!.

Best regards