Commit Graph

11 Commits

Author SHA1 Message Date
T.M 6bc5f646f1 ConductorBaseWithActiveItem sets new item as ActiveItem before activating it
Up to now, ScreenExtemsions.TryActivate(newItem) was called
before Conductor.ActiveItem was set to the new item. This commit moves
setting ActiveItem to before TryActivate(newItem) call. This allows for
nested activation - that is, a scenario where newItem can "intercept"
its activation and force parent Conductor to immediately activate
another item inside its OnActivate() override, effectively skipping
newItem without displaying it.

Fixes #140
2020-07-26 19:11:52 +01:00
Antony Male 6cd4546a80 Deprecate CanClose
There's no nice way to make it work alongside CanCloseAsync when you're
in a conductor hierarchy. There will always be difference between how
CanClose and CanCloseAsync behave when there are children which need
to be interrogated as well, and that's confusing.
2016-08-26 11:44:34 +01:00
Antony Male b6b9811ab0 Conductors, which override CanCloseAsync, must call CanClose
Otherwise subclasses which override CanClose but not CanCloseAsync won't
work as expected.

Fixes #10
2016-07-09 12:50:51 +01:00
Antony Male fc7f164c53 Remove unnecessary usings in unit tests 2015-09-23 21:46:36 +01:00
Antony Male 4468740338 Implement proper state management in Screen
This takes the old flag-based state management in Screen, and replaces it
with one based on a ScreenState enum. This also gives a way for
interested parties to query the current state, and for an event which
notifies of any state transition.

This meant combining IActivate, IDeactivate, and IClose. This is a sensible
move: these interfaces were inextricably linked anyway, and separating
them had no advantages and a few disadvantages. If external parties are
using these interfaces directly, then migration is necessary, but these
are usually only used by Conductors
2015-01-19 13:08:10 +00:00
Antony Male 46dc485eee Add tests for new conductor Dispose behaviour 2015-01-15 09:54:05 +00:00
Antony Male 5596ba272d Conductors will also Dispose their children if the're IDisposable 2014-08-04 17:35:16 +01:00
Antony Male 4fa4133248 Improve unit test code coverage some more 2014-05-06 17:42:55 +01:00
Antony Male 3ecb0c38c8 Improve test coverage slightly 2014-05-06 13:11:51 +01:00
Antony Male 9e96e8c052 Rename Conductor<T>.Collections to Conductor<T>.Collection, and move Conductor<T>.Collections.Nagivation to Conductor<T>.StackNavigation 2014-04-24 08:11:21 +01:00
Antony Male 4e887447d3 Add some unit tests for the navigating conductor 2014-04-07 12:41:35 +01:00