task: rewrite event handling as a step towards event-based subscriptions
This commit is contained in:
@@ -66,7 +66,9 @@ impl<T: Surface> IdleTask<T> {
|
||||
}
|
||||
|
||||
impl<T: Surface> Task for IdleTask<T> {
|
||||
fn start(&mut self) {
|
||||
fn name(&self) -> &'static str { "Idle" }
|
||||
|
||||
fn start(&mut self, _bus: &mut EventBus) {
|
||||
self.solid.set_shader(Box::new(SolidShader { }));
|
||||
self.surface.set_shader(Box::new(ThinkingShader { }));
|
||||
self.shimmer.set_shader(Box::new(ShimmerShader { }));
|
||||
@@ -76,9 +78,7 @@ impl<T: Surface> Task for IdleTask<T> {
|
||||
self.shimmer.set_opacity(64);
|
||||
}
|
||||
|
||||
fn tick(&mut self, event: &Event, bus: &mut EventBus) {}
|
||||
|
||||
fn stop(&mut self) {
|
||||
fn stop(&mut self, _bus: &mut EventBus) {
|
||||
self.solid.clear_shader();
|
||||
self.surface.clear_shader();
|
||||
self.shimmer.clear_shader();
|
||||
@@ -169,16 +169,19 @@ impl<T: Surface> TestPattern<T> {
|
||||
}
|
||||
|
||||
impl<T: Surface> Task for TestPattern<T> {
|
||||
fn start(&mut self) {
|
||||
self.surface.set_shader(Box::new(self.pattern.clone()));
|
||||
fn name(&self) -> &'static str { "TestPattern" }
|
||||
|
||||
fn start(&mut self, _bus: &mut EventBus) {
|
||||
self.surface.set_shader(Box::new(self.pattern));
|
||||
}
|
||||
|
||||
fn tick(&mut self, event: &Event, bus: &mut EventBus) {
|
||||
fn on_tick(&mut self, bus: &mut EventBus) {
|
||||
self.updater.run(|| {
|
||||
self.pattern = self.pattern.next();
|
||||
log::info!("Test pattern: {:?}", self.pattern);
|
||||
self.frame = 0;
|
||||
self.surface.set_shader(Box::new(self.pattern.clone()));
|
||||
self.surface.set_shader(Box::new(self.pattern));
|
||||
bus.push(Event::new_property_change("animations.test.pattern", format!("{:?}", self.pattern)));
|
||||
});
|
||||
self.stepper.run(|| {
|
||||
self.frame = self.frame.wrapping_add(1);
|
||||
@@ -197,7 +200,7 @@ impl<T: Surface> Task for TestPattern<T> {
|
||||
});
|
||||
}
|
||||
|
||||
fn stop(&mut self) {
|
||||
fn stop(&mut self, _bus: &mut EventBus) {
|
||||
self.surface.clear_shader();
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user