Open Source im professionellen Einsatz
Linux-Magazin 03/2004
272

Ereignisse verarbeiten

In der Implementierungsdatei (Listing 2) beschreibt eine Event-Tabelle, wie eine Klasse die Ereignisse verarbeiten soll. Das WX-Makro »BEGIN_EVENT_TABLE()« legt fest, dass »HelloFrame« eine Kindklasse von »wxFrame« ist und die bis »END_EVENT_TABLE()« genannten Ereignisse selbst behandeln möchte. Die Zeilen 18 bis 21 beschreiben mit dem Makro »EVT_MENU( Event_ID, Ereignis_Methode)«, mit welcher Methode die Anwendung auf die Ereignis-IDs reagieren soll.

In diesem Beispiel sind es die Menü-Einträge, die zu den Ereignissen führen: Die Aufrufe in den Zeilen 29 bis 31 und 35 verknüpfen je eine Ereignis-ID mit einem Menü-Eintrag. Klickt ein Anwender auf den Eintrag, löst WX einen »wxCommandEvent« mit dieser ID aus. Die Bibliothek durchsucht nun die Event-Tabelle nach der entsprechenden ID und führt die damit verknüpfte Methode aus.

Callback-Funktionen

Die Zeilen 43 bis 81 zeigen die Callback-Funktionen. »OnAbout()« öffnet die selbst erstellte About-Box, »OnSave()« öffnet einen Speichern-Dialog. Mit der If-Anweisung in Zeile 47 bringt das Programm in Erfahrung, ob der Anwender den OK-Button des Speichern-Dialogs gedrückt hat. Ist dies der Fall, speichert die Callback-Funktion den eingegebenen Text unter dem Namen, den der User im Dialogfenster angegeben hat. Die Methode »OnOpen()« funktioniert analog. »OnQuit()« prüft, ob der Text der angezeigten Datei geändert wurde. Ist dies der Fall, erzeugt sie in Zeile 68 einen Standard-Systemdialog, der den User auf die Änderung aufmerksam macht.

Eine Besonderheit der Eventbehandlung steckt in dem Konstruktor von »AboutDialog«: Er erstellt einen Button, erzeugt aber keine Event-Tabelle. Die Ereignisverarbeitung funktioniert, weil die Vaterklasse »wxDialog« eine Methode »OnOK()« besitzt. Um das automatische Verhalten der Dialogklasse auszunutzen, muss nur die ID des Buttons mit der vordefinierten ID »wxID_OK« belegt sein.

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Wir können auch anders

    Bisher vorgestellte Programme waren in funktionaler Weise implementiert. Schemes Stärken liegen zwar hauptsächlich in diesem Bereich, jedoch gibt es auch die Möglichkeit, objektorientiert vorzugehen.

  • Mit Schwung - ohne Swing

    Linux wird auf dem Desktop salonfähig, von Java ist dies leider nicht zu behaupten, zu gründlich wurde der Ruf schon vor Jahren ruiniert. Mit den Java-Language-Bindings ist aber eine performante und saubere Integration in das K Desktop Environment möglich.

  • Kleine Mahlzeit

    Es muss nicht immer ein ausgewachsenes Programm sein. Viele kleine Aufgaben lassen sich auch mit Applets erledigen, die im Panel residieren und nur darauf warten, aufgerufen zu werden.

  • Atom

    Githubs Editor Atom feierte kürzlich seinen ersten Geburtstag. Das Unternehmen bewirbt die extrem konfigurierbare freie Anwendung als Kompromiss zwischen Vi und Emacs auf der einen, Sublime und Textmate auf der anderen Seite. Auch im Rohzustand wirkt die Mischung schon vielversprechend.

  • Überall Punkte

    Microsofts Dotnet-Plattform steht Linux-Programmierern über die Projekte Mono und DotGNU zur Verfügung. Der Artikel untersucht, wie weit sich die alternativen Implementierungen für Projekte in der Praxis eignen. Im Mittelpunkt steht die Programmierung grafischer Benutzeroberflächen.

comments powered by Disqus

Ausgabe 11/2017

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

Stellenmarkt

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.