Suche Cross-Plattform TUI Framework

Schnelle objektorientierte, kompilierende Programmiersprache.
Antworten
Glocke
Beiträge: 332
Registriert: Fr Okt 26, 2012 8:39 am

Suche Cross-Plattform TUI Framework

Beitrag von Glocke » Di Apr 30, 2013 12:19 pm

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

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Suche Cross-Plattform TUI Framework

Beitrag von Xin » Di Apr 30, 2013 12:43 pm

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.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Glocke
Beiträge: 332
Registriert: Fr Okt 26, 2012 8:39 am

Re: Suche Cross-Plattform TUI Framework

Beitrag von Glocke » Di Apr 30, 2013 12:55 pm

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

sebix
Beiträge: 82
Registriert: Mo Nov 19, 2012 8:27 pm

Re: Suche Cross-Plattform TUI Framework

Beitrag von sebix » Di Apr 30, 2013 1:21 pm

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.

Glocke
Beiträge: 332
Registriert: Fr Okt 26, 2012 8:39 am

Re: Suche Cross-Plattform TUI Framework

Beitrag von Glocke » Di Apr 30, 2013 3:17 pm

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

Benutzeravatar
Bebu
Beiträge: 562
Registriert: Mi Okt 21, 2009 6:19 pm
Wohnort: In der Nähe von Salzburg - Bin aber kein Österreicher!

Re: Suche Cross-Plattform TUI Framework

Beitrag von Bebu » Mi Mai 01, 2013 11:32 am

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.
Wer immer nach dem Unerreichbaren jagt, der wird irgendwann auf die Schnauze fallen!

Antworten