コード例 #1
0
        /// <summary>
        ///    Invoked when the application is launched normally by the end user.  Other entry points
        ///    will be used such as when the application is launched to open a specific file.
        /// </summary>
        /// <param name="e">Details about the launch request and process.</param>
        protected override async void OnLaunched([NotNull] LaunchActivatedEventArgs e)
        {
            _machine = KaraokeMachine.WithABrain();
            var rootFrame = _CreateMainWindow();

            _InitializeViewState(e);
            rootFrame.ChangeToCurrentPageIfNotCurrentlyShowingAnything(e);
            _ActivateApplication();
            await _machine.TurnOn.Execute();
        }
コード例 #2
0
 private _MachineBrains([NotNull] KaraokeMachine machine, [NotNull] Func <Task <_SlideLibrary> > slideLoader,
                        [NotNull] Clock clock)
 {
     _machine     = machine;
     _slideLoader = slideLoader;
     _clock       = clock;
     _machine.ShowOptions();
     _machine.SlideAdvanceSpeed = 10;
     _slideLibrary = null;
 }
コード例 #3
0
        public static _RootWindow InitializeNewWindow([NotNull] KaraokeMachine machine)
        {
            var rootFrame = new Frame
            {
                Language = ApplicationLanguages.Languages[0]
            };

            rootFrame.NavigationFailed += _OnNavigationFailed;
            Window.Current.Content      = rootFrame;

            return(new _RootWindow(rootFrame, machine));
        }
コード例 #4
0
 private _RootWindow([NotNull] Frame rootFrame, [NotNull] KaraokeMachine machine)
 {
     _rootFrame = rootFrame;
     _machine   = machine;
     _rootFrame.Focus(FocusState.Programmatic);
     _machine.PropertyChanged +=
         (sender, args) => { if (string.Equals(args.PropertyName, "CurrentPageType"))
                             {
                                 ChangeToCurrentPage();
                             }
     };
 }
コード例 #5
0
        private static _MachineBrains _ConnectBrainsToMachine([NotNull] KaraokeMachine machine,
                                                              [NotNull] Func <Task <_SlideLibrary> > slideLoader, [NotNull] Clock clock)
        {
            var brains = new _MachineBrains(machine, slideLoader, clock);

            machine.Pause.BindTo(brains.Pause);
            machine.AdvanceSlide.BindTo(brains.AdvanceSlide);
            machine.Stop.BindTo(brains.Stop);
            machine.Start.BindTo(brains.Start);
            machine.StartAutoplay.BindTo(brains.StartAutoplay);
            machine.TurnOn.BindTo(brains.PrepareDeck);
            machine._CleanUp = brains.Dispose;
            return(brains);
        }
コード例 #6
0
        public static _RootWindow WrapExistingFrameIfPresent([NotNull] KaraokeMachine machine)
        {
            var rootFrame = Window.Current.Content as Frame;

            return(rootFrame == null ? null : new _RootWindow(rootFrame, machine));
        }
コード例 #7
0
 public void SetUp()
 {
     _testSubject = KaraokeMachine.Brainless();
 }
コード例 #8
0
 public static _TypedObjectAssertions <KaraokeMachine> Should([NotNull] this KaraokeMachine subject)
 {
     return(new _TypedObjectAssertions <KaraokeMachine>(subject));
 }
コード例 #9
0
 public static void SupplyBrainFor([NotNull] KaraokeMachine machine)
 {
     _ConnectBrainsToMachine(machine, _OpenPresentationFile, new _WallClock());
 }
コード例 #10
0
 public static _MachineBrains WithTrivialSlidesAndUi(out KaraokeMachine machine, [NotNull] Clock clock)
 {
     machine = new KaraokeMachine(ExecuteVia.BackgroundWorkers());
     return(_ConnectBrainsToMachine(machine, _TrivialTestSlides.LoadAllSlides, clock));
 }