Ich mache hier mal einen Thread über die technische Realisierung einer möglichen Tyndur GUI, welchen Namen auch immer sie bekommen wird.
Also meine Idee, ist vergleichbar mit einem Mikrokernel OS. Denn ich stelle mir eine mögliche Realisierung so vor:
Einen Zentralen GUI Server, der die Ausgabe und die Eingabe über Maus und Tastatur.
Und dann die auswechselbaren Module, die der User theoretisch einfach nach seinen Belieben austauschen kann.
Ich geh dann erstmal auf den GUI Server ein.
Dieser Server sollte, wie ein Kernel prinzipiell so wenig Code wie möglich enthalten, den wenn er abstürzt stürzt die gesamte GUI ab. Vor allem weil, dieser eben die Ausgabe und die Eingabe verwaltet. Zum Thema Eingabe ist alles denke ich recht klar. Der Server leitet alles an das ausgewählte Fenster weiter, die er natürlich auch verwaltet. Zum Thema Ausgabe sage ich, dass sozusagen alle Module, die laufen abgeklappert werden und dann ihre Ausgabe logisch sinnvoll auf den Bildschirm gezeichnet wird. D.h. das der Bildschirmhintergrund als erstes gezeichnet wird, dann eben das hinterste bis zum vordersten Fenster und schließlich das Panel. Wobei man das bestimmt optimieren kann.
Die Fenster werden wie gesagt vom GUI Server verwaltet, damit er auch weiß, welche Ein-/Ausgabe zu welchem Programm gehört.
Nachfolgend schreibe ich etwas zu den austauschbaren Modulen.
Die Module können eben alles mögliche sein, dass eben auf einem Desktop vorkommen kann z.B. eine Uhr, Fensterdeko, Panel, Hintergrundzeichenprogramm und ähnliches. Die Module sollten prinzipiell unabhänig voneinander funktionieren können um die GUI möglichst modular gestalten zu können, damit sie möglichst stabil läuft und vom User beliebig konfiguriert werden kann. Desweiteren sollten die Module nicht direkt mit den Grafiktreiber arbeiten müssen, was dann zu fehlerhafter Darstellung auf dem Desktop und Instabilität führen kann. So sollte es eine Art libGUI zwischen den Modulen und dem GUI Server geben.
Ich hoffe es war alles soweit verständlich und alles was hier steht sind meine Ideen und, weil ich Morgen leider nicht an der Designdiskussion teilnehmen kann poste ich es hier, damit es genauso diskutabel ist.
Und genauso kann die Community hier ihre Designtechnischen Ideen posten/einbringen.
Gruß tev