I've asked a question before, about what I can use to replace the winapi when programming for Linux. Now I want to know what I can use for making the GUI. On windows you can do that with the winapi, but I guess that isn't possible with POSIX right? If I want to write the GUI for Linux, should I use the API of each desktop environment or can I use something that is compatible what practical every desktop environment? I heard something about the X Window system, but I'm not quite sure what that is.
I enjoy writing code where I learn useful things from. Maybe one day I can help wxWidgets by contributing. Anyway, I create multiple versions of the code to work on multiple platforms.
Also, at the moment I'm still using wxWidgets, and I want to write a very specific Graph control. I can't find such a control in the wxWidgets and need to write my own. I'll use Direct2D on windows and I'll need to explore different options at different systems. Therefor it'll be useful to know such things.