Explicit integration API for non-GTK activities
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Tutorius |
New
|
Undecided
|
Unassigned |
Bug Description
For activities that do not have sufficient introspection mechanism, we need to define an interface to the core that allows the tutorial creators to view events related to the execution of the application. This interface would allow events to be shared with the core (either emitted by a UI control or a program event).
For example, suppose we have a PyGame activity that is an adventure game. In order to use the tutorial functions of Tutorius, the developer can register explicit events like 'Gold obtained' or 'Quest completed'. The developer can now use those events to create tutorials. (e.g. "Get the gold pieces" ----'Gold obtained'----> "You can now buy a sword")
The basic use cases would be the following :
1 - Register an Event
2 - Register a control (this means that all events related to this control are registered)
3 - Emit a registered event
4 - Declare custom actions (actions callable from the FSM that are specific to this activity)
5 - Execute a custom action
6 - Register an event handler (a callback that will be called when an external event happens)