Exemplo n.º 1
0
        public SetupGuide(IFuse fuse, IObservable <Unit> doneLoadingMainWindow)
        {
            var output = new Subject <string>();

            LogMessages = output;

            var report    = fuse.Report;
            var softwares = new SoftwareCollectionStatus(fuse);

            var showSetupGuide = new BehaviorSubject <bool>(false);

            MissingPluginNotification.Create(fuse, doneLoadingMainWindow, showSetupGuide);

            Application.Desktop.CreateSingletonWindow(
                isVisible: showSetupGuide.CombineLatest(doneLoadingMainWindow, (s, _) => s),
                window: dialog => new Window
            {
                Title   = Observable.Return("Setup guide"),
                Size    = Optional.Some(Property.Constant(Optional.Some(new Size <Points>(500, 300)))),
                Content = Control.Lazy(() => Create(softwares, report, dialog).ShowWhen(showSetupGuide))
                          .WithBackground(Theme.PanelBackground),
                Background = Theme.PanelBackground,
                Foreground = Theme.DefaultText,
                Border     = Separator.MediumStroke,
                Style      = WindowStyle.Fat,
            });

            Menu
                = Menu.Item("Install Android SDKs", () => fuse.RunFuse("install", new [] { "android" }, Observer.Create <string>(output.OnNext)))
                  + Menu.Item("Setup guide", () => showSetupGuide.OnNext(true));
        }
Exemplo n.º 2
0
 static IControl Create(SoftwareCollectionStatus softwares, IReport report, IDialog <object> dialog)
 {
     return(Layout.Dock()
            .Top(CreateSublimeHeaderText().WithMacWindowStyleCompensation())
            .Top(Spacer.Medium)
            .Top(CreatePluginLine(softwares.SublimeApp, report))
            .Top(CreatePluginLine(softwares.SublimePlugin, report))
            .Top(Spacer.Medium)
            .Top(CreateAtomHeaderText())
            .Bottom(
                Buttons.DefaultButtonPrimary(text: "Ok", cmd: Command.Enabled(() => dialog.Close()))
                .WithWidth(100)
                .DockRight())
            .Bottom(Spacer.Medium)
            .Fill()
            .WithPadding(new Thickness <Points>(20)));
 }