public static Tvision2Setup AddTvControls(this Tvision2Setup setup, Action <ISkinManagerBuilder> skinOptions = null) { var tree = new ControlsTree(); setup.Builder.ConfigureServices(sc => { sc.AddSingleton <ControlsTree>(tree); sc.AddSingleton <IControlsTree>(tree); sc.AddSingleton <ISkinManager>(new SkinManager()); }); setup.AddHook <ChangeFocusEventHook>(); setup.Options.AfterCreateInvoke((engine, sp) => { var skinManager = sp.GetRequiredService <ISkinManager>() as SkinManager; var colorManager = sp.GetRequiredService <IColorManager>(); if (skinOptions != null) { FillSkinManager(skinOptions, skinManager, colorManager); } else { FillDefaultSkinManager(skinManager, colorManager); } var ctree = sp.GetRequiredService <IControlsTree>() as ControlsTree; tree.AttachTo(engine.UI); }); return(setup); }
public static Tvision2Setup UseLayoutManager(this Tvision2Setup setup) { setup.Builder.ConfigureServices((hc, sc) => { sc.AddSingleton <ILayoutManager, LayoutManager>(); }); return(setup); }
public static Tvision2Setup AddTvision2Startup <TStartup>(this Tvision2Setup tv2setup) where TStartup : class, ITvisionAppStartup { tv2setup.Builder.ConfigureServices(sc => { sc.AddTransient <ITvisionAppStartup, TStartup>(); }); return(tv2setup); }
public static Tvision2Setup AddTvDialogs(this Tvision2Setup setup) { setup.Builder.ConfigureServices(sc => { sc.AddSingleton <IDialogManager, DialogManager>(); }); setup.AddHook <DialogEscapeKeyHook>(); return(setup); }
public static Tvision2Setup AddStateManager(this Tvision2Setup setup, Action <TvStateManager> configAction) { var manager = new TvStateManager(); configAction?.Invoke(manager); setup.Builder.ConfigureServices(sc => { sc.AddSingleton <TvStateManager>(manager); sc.AddSingleton <ITvStoreSelector>(manager); }); setup.Options.AddAfterUpdateAction(() => manager.DoDispatchAllActions()); return(setup); }
public static Tvision2Setup UseDebug(this Tvision2Setup setup, Action <ITvision2DebugOptions> optionsSetup = null) { setup.Builder.ConfigureServices((hc, sc) => { var options = new Tvision2DebugOptions(); optionsSetup?.Invoke(options); var debugger = new Tvision2Debugger(options); sc.AddSingleton <ITvision2Debugger>(debugger); }); setup.Options.AfterCreateInvoke((engine, sp) => { var viewportManager = sp.GetRequiredService <ITvision2Debugger>(); viewportManager.AttachTo(engine.UI); }); return(setup); }
public static Tvision2Setup UseViewportManager(this Tvision2Setup setup) { setup.AddHook <WindowResizedHook>(); setup.Builder.ConfigureServices(sc => { sc.AddTransient <IViewportFactory, ViewportFactory>(); sc.AddTransient <IDynamicViewportFactory, DynamicViewportFactory>(); sc.AddSingleton <IViewportManager, ViewportManager>(); }); setup.Options.AfterCreateInvoke((engine, sp) => { var viewportManager = sp.GetRequiredService <IViewportManager>() as ViewportManager; viewportManager.AttachTo(engine.UI as ComponentTree); }); return(setup); }
public static IHostBuilder UseTvision2(this IHostBuilder builder, Action <Tvision2Setup> optionsSetup = null) { var setup = new Tvision2Setup(builder); builder.Properties.Add(Tvision2Options.PropertyKey, setup.Options); optionsSetup?.Invoke(setup); builder.ConfigureServices(sc => { sc.Configure <ConsoleLifetimeOptions>(o => o.SuppressStatusMessages = true); }); builder.ConfigureServices((hc, sc) => { sc.AddSingleton <Tvision2Options>(setup.Options as Tvision2Options); sc.AddSingleton <ITuiEngine, TuiEngine>(); }); return(builder); }