Headings: !!Einleitung !!Fertigstellung !!Anmeldung !!Bottomline
Der Event Dispatcher ist die Zentrale Verteil-Instanz für alle Events.
- Basisevents können Anmeldung, Abmeldung
- Singleton funktionalität implementiert
- rudimentäre Singletask- Funktionalität existiert, die aber nicht die Wimp Eventcodes benutzt (->inkompatibel, Linux?)
- Timer Events werden angemeldet und in eigene Timer-Event-Liste eingetragen
- Window Events in eigene Window Event-Liste
- Mouse Events in eigene Mouse Event-Liste
- Abarbeiten der Timer Events
- Abarbeiten der Window Events
- Abarbeiten der Mouse Events
Aufgaben
- Alle Eventtypen (siehe unten) bekommen eine eigene Liste, nach Anmeldung eines Handlers bekommt der User ein Handle das normalerweise auch wieder zum Abmelden dient. Damit sind Mehrfachanmeldungen der gleichen Handlerroutine für unterschiedliche Events möglich.
- Nach Eintreffen eines Events (nach Aufruf des Task->?WimpPoll) wird nur die Liste der betroffenen Events abgearbeitet.
Die Anmeldung geschieht über C++ function pointers. Die Eventhandler müssen vom Typ ?EventHandler::Method sein.
- Generelle Anmeldung (keine dekodierung):
- Parameter: Handlerobjekt, Handlermethode, Eventtyp
- Nullevent
- für: Timer
- Parameter: Handlerobjekt, Handlermethode, Rate, Aufrufzahl
- Fensterabhängig: Window Event
- für Open,Close,Redraw,Pointer Entering,Pointer Leaving
- Parameter: Handlerobjekt, Handlermethode, Eventtyp, Windowid
- Fenster&Iconabhängig: Mouse Event
- für Mouse, ?Redraw von Icons?
- Parameter: Handlerobjekt, Handlermethode, Eventtyp, Windowid,Iconid
- Messageevents
- für Filehandling, Programmbeendung (speichern vor beenden)
- Parameter: Handlerobjekt, Handlermethode, Messageid, Messagecode
- Menuevents
- Für Benutzerinteraktion
- Parameter: Handlerobjekt, Handlermethode, Menuid, Eintragid
weitere...
- Mausabhängig, Timergesteuert, nur Bewegung
- Für Mousemove, Freihandbearbeitung, Drag'n'Drop
- Parameter: Handlerobjekt, Handlermethode, Buttonstate, Position
UwesSeite RiscGuiLib