After programming some Java it was explained how to create a
GUI but I am curious of how these GUI’s are made at a more fundamental level?
Read up about the X Window System. it's also open source, so you can read the code too.
IMHO, most GUI's are developed about the same.
- Initialize Window Variables
- Set a layout
- Call a main window
- Attach signal/event callback functions (functions that are triggered when you do something)
- And then a run/loop so that the window continues to persist
Obviously while the loop persists various other code can run at the developer's discretion, but it's mostly the same. Case in point here is a GTK Vala, and here is a Window's C exmaple. Obviously the code changes language by language and API by API, but the gist is usually the same.
no, more fundemental then that
are you looking for more higher-level front-end design philosophy? Like making a list of all variables/parameters that can be controlled by the tool/application, deciding which parameters should be accessible by users via the GUI, determining what type of objects should be used for each UI element (i.e. textbox vs dropdown menu, radio button/checkbox logic, etc), how to best provide users with full functionality while also limiting access to certain features and error checking?
like how is the pannel class made?
- Line
- Arc
- Stroke/Fill
At the lowest level on whatever platform your using graphically there will generally be a library that only has the functionality to access the graphics buffer, in whatever form it may be, and perform the draw functions that are listed above. From there however, most, API libraries build on top of that over and over and over. A line becomes a rectangle which then gets filled and stroke which then creates a basic window frame. That window frame then gets another window frame with 2 horizontal lines with connecting arcs on both sides and center text. After signals/events are added, presto... you've got a clickable button. This process repeats over and over again until you have your complete GUI.
Case in point, The last time I used Visual Studio it was Visual Studio 6 and it had a function to create custom controls. IIRC the view and options it gave you was the same as normal, but the difference was that when you were done creating your own control it compiled to a .ocx file that could then be reused over and over again. You can do the same thing in linux, it's just called a shared library.
[ninja edit: grammar]