Seite 1 von 1

Suche Cross-Plattform TUI Framework

Verfasst: Di Apr 30, 2013 12:19 pm
von Glocke
Hiho,

ich wollte mich auch mal mit TUIs (Text User Interface, also die "Konsolen-Variante" des Graphical User Interface) befassen. Dabei bin ich auf ncurses aufmerksam geworden. Jedoch scheint es das "nur" für Unix-Derivate zu geben.

Könnt ihr mir ein (möglichst objektorientiertes) Framework empfehlen, das folgende Anforderungen erfüllt?
  • Konsolen-Ausgaben an Position <X,Y> (entsprechend der gängigen Rasterung, wie ncurses)
  • verschiedene Farbmodi (vgl. ncurses)
  • parallele Eingabebehandlung (d.h. nicht blocking wie ncurses' getch())
  • Window-/Frame-Objekte (wie es auch bei ncurses welche gibt xD)
  • lauffähig für Windows und Linux-basierte Systeme (mehr schadet natürlich nicht ^^)
Was diese "parallele Eingabebehandlung" angeht: ncurses bietet ja getch, was afaik i.d.R. blockierend arbeitet. Prinzipiell könnte ich getch() in einem Thread behandeln und im "Haupt-Thread" die Oberfläche handhaben. Eingabe-Buchstaben könnte ich dann via queue dem "Haupt-Thread" zur Verfügung stellen. Im Endeffekt geht es mir darum, dass ich mit getch() den eigentlichen Programm-Loop nicht blockiere und so Ergebnisse (paralleler Prozesse) erst nach einem Tastendruck dargestellt werden können... das ist nicht ganz so schön :)

Lizenz-mäßig ist es mir relativ egal. Die Hauptsache ist, dass es für den Privatgebrauch frei zugänglich ist. Eine gute Dokumentation wäre hilfreich ^^

Kp ob ich hier nach einer eierlegenden Wollmilchsau frage :D

LG Glocke

Re: Suche Cross-Plattform TUI Framework

Verfasst: Di Apr 30, 2013 12:43 pm
von Xin
Ich kenne nur ncurses und conio bei Windows.

Allerdings kannst Du ncurses auch unter Windows benutzen, wenn Du eine cygwin-Installation voraussetzt. Cygwin findest Du auf vielen Windows-Entwickler-Rechnern, die häufiger mit Linux-Programmen auf der Konsole arbeiten und sich dafür die bash und sonstige Linux-Befehle auf Windows wünschen, aber es ist eher ungewöhnlich für normalsterbliche Windows-User, also reine Anwender.

Re: Suche Cross-Plattform TUI Framework

Verfasst: Di Apr 30, 2013 12:55 pm
von Glocke
Xin hat geschrieben:Ich kenne nur ncurses und conio bei Windows.
Also müsste ich vermutlich mit beidem arbeiten und via #ifdef entscheiden welches System ich nutze usw.? :D
Oder bin ich besser dran, wenn ich mir den ganzen Kram von Grund auf Baue (für die Farben gibt es ja z.B. die ANSI Escape Codes, die auch mit std::cout funktionieren... ich befürchte bald, dass sich beide Wege nicht viel nehmen oder? :D

LG Glocke

Re: Suche Cross-Plattform TUI Framework

Verfasst: Di Apr 30, 2013 1:21 pm
von sebix
Im Wikipedia Artikel zu TUI gibt es nicht nur reinen Text sondern auch eine kurze Auflistung über Libs. Hast du die schon alle durchgesehen? Eventuelle könntest du im Artikel gleich ergänzen, welche OS die Libs jweils unterstützen und ob proprioetär / OSS.

Re: Suche Cross-Plattform TUI Framework

Verfasst: Di Apr 30, 2013 3:17 pm
von Glocke
So richtig fündig geworden bin ich nicht. Ich denke ich werde erstmal ncurses etwas objektorientiert kapseln und irgendwann mittels Präprozessor die gleiche Funktionalität mittels conio.h unter Windows bereitzustellen.

LG Glocke

Re: Suche Cross-Plattform TUI Framework

Verfasst: Mi Mai 01, 2013 11:32 am
von Bebu
Such mal nach pdcurses. Das ist eine Implementierung von Curses, die auch auf Windows funktioniert. Leider enthält sie nur die Standardteile nach Curses und nicht alle Erweiterungen die Ncurses bietet. Ich konnte damit aber immerhin den von Xin geschriebenen Dedupe Ncurses Teil unter Windows kompilieren und auch laufen lassen.