Login
Newsletter
Werbung

Sa, 18. Juli 2009, 00:00

Das Disko-Framework

Toolkit für Set-Top-Boxen und Touch-Screen-Terminals

Fensterarten

Stefan Schwarzer und Jan-Carl Ronnecker

Fensterarten

Wenn eher ein Desktop-ähnlicher Ansatz gewünscht wird, können jeder Hauptklasse von Windows auch beliebige ChildWindows zugewiesen werden, die innerhalb der Dimensionen des Windows angezeigt werden. Hier kann auch mit einer dynamischen z-Order gearbeitet werden. So entsteht die Möglichkeit, beliebig viele Windows gleichzeitig anzuzeigen.

Hallo Welt!

Um ein Window zu erzeugen und etwas Inhalt anzuzeigen, reicht folgender Code aus:

MMSMainWindow *win;
win = new MMSMainWindow("","100%","100%");
MMSLabel *lbl;
lbl = new MMSLabel(win, "");
lbl->setFont("./","DejaVuSansMono.ttf",16);
lbl->setText("Hello world");
win->add(mylabel);

Die leeren Zeilen bei Window und dem Label-Widget beziehen sich auf Theme-Klassen, die in der Theme-Datei definiert sind. Da keine Themes definiert sind, bleiben diese Zeilen leer. Disko gibt den einzelnen Widgtets ein minimalistisches Aussehen, damit auch ohne definierte Themes tatsächlich etwas auf dem Bildschirm angezeigt wird.

Um das Resultat zu sehen, muss noch das Window auf dem Bildschirm angezeigt werden:

win->show();

Um die Applikation am Laufen zu halten, nutzen wir eine Endlos-Schleife:

while (1) sleep(1);

Wenn alles richtig funktioniert hat, sollte nun ein X11-Window mit dem mittig platzierten Text »Hello World« angezeigt werden.

Window der »Hello World«-Applikation

Stefan Schwarzer und Jan-Carl Ronnecker

Window der »Hello World«-Applikation

Das ist vielleicht nicht besonders spektakulär, aber es ist auch nur die einfachste bzw. kleinste Applikation, die mit Hilfe des Disko-Frameworks erstellt werden kann.

Videos abspielen

Das Einbinden von Videos wird durch die Komponente MMSMedia realisiert, welche - je nachdem - entweder Xine oder GStreamer verwendet. Die einzelnen Quellen werden per MRL angegeben, sofern Xine oder GStreamer mit der entsprechenden Unterstützung übersetzt wurden. Um ein Video in die Applikation einzubinden, reicht folgender Code:

Kommentare (Insgesamt: 0 )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung