Ich habe mich fr die Athena Widgets entschieden, weil fr sie eine
ausfhrliche Dokumentation unter /usr/X11/mit/hardcopy/ zu finden war und sie
das Experimentieren mit editres erlauben.

Die Lsung ist sehr minimalistisch, ich habe keinen Wert auf Portierbarkeit
gelegt, und in die Grafik nur das ntigste gesteckt.  Aber dies ist ja auch
nur eine bungsaufgabe, um Widgets kennenzulernen, und noch nicht die
Semesteraufgabe, auch wenn der Arbeitsaufwand, um verlliche Informationen
zusammenzusuchen, schon eine Zumutung war.

So habe ich zum Beispiel als Composite Widgets nur einfache Boxen statt Forms
gewhlt.  Da dabei gerade eine hbsche Ofenfront erscheint, ist allein das
Ergebnis dieser speziellen Fonts und Labelgren. Startet man oven ohne die
XOven-Resourcen, dann ist da kein Ofen mehr zu erkennen. Wenn Du einfach make
eingibst, dann wird das Programm aber automatisch mit den richtigen Resourcen
gestartet.

In die grafische Gestaltung der Tr habe ich auch keine Mhe verschwendet.  Es
ist halt ein weier Herd mit einer Tr ohne Fenster, man drckt auf sie, um
sie zu ffnen oder zu schlieen. Bei offener Tr erscheint der Innenraum als
schwarzes Loch. Das ist natrlich sowohl auf Farb- als auch auf
Schwarzweischirmen lauffhig.

Die Forderungen des Aufgabenblatts sind trotzdem komplett erfllt,
insbesondere wird bei offener Tr stets das Kochen angehalten.

Die Heizleistung kann durch Drcken der Powertaste eingestellt werden.

Die Uhr dient als Multifunktionsanzeige: im Grundzustand zeigt sie die
Tageszeit (erkennbar am Doppelpunkt), wenn eine Kochzeit gewhlt
wurde, so wird diese angezeigt und wenn die Kochzeit sekundenweise
heruntergezhlt wird, so ist dies das Zeichen, da der Herd gerade
kocht.

Whrend der Kochzeit kann wie bei einer Eieruhr mit den Zeiteinstellungstasten
die Kochzeit verlngert oder verkrzt werden.

Die Implementierung ist auch stabil bei Rechnerberlastung, bei der
Xt die Timeoutcallbacks nicht rechtzeitig auf die Reihe kriegt, es
wird stets gegen die Systemzeit verglichen. Aus der Dokumentation
wurde nirgends ersichtlich, ob das Toolkit sich forkt und etwa die
Timeoutcallbacks nebenlufig ausfhrt. Ich habe rein sequentiell
programmiert, und noch sind keine Probleme aufgetreten.

Die Stoptaste hat bei laufendem Ofen die Funktion, den Kochvorgang
anzuhalten, ohne die verbleibende Kochzeit zu lschen. Bei
stillstehendem Herd lscht man mit der Stoptaste die Kochzeit und
schaltet zurck auf Uhr. Ich habe berlegt, ob ich als dritte Funktion
der Stoptaste ein Quit einbaue. Es ist jedoch unrealistisch fr einen
Mikrowellenherd, eine Selbstzerstrungstaste zu haben, ich empfehle
daher den Control-C-Interrupt.
