public TvControl(ISkin skin, IViewport viewport, TState initialState, string name = null) { _component = new TvComponent <TState>(initialState, name ?? $"TvControl_<$>"); Metadata = new TvControlMetadata(this, _component.ComponentId); var typename = GetType().Name.ToLowerInvariant(); var genericIdx = typename.IndexOf('`'); ControlType = genericIdx != -1 ? typename.Substring(0, genericIdx) : typename; CurrentStyle = skin.GetControlStyle(this); State = initialState; _component.AddViewport(viewport); AddElements(); }
private static async Task Main(string[] args) { var builder = new HostBuilder(); builder.UseTvision2(setup => { setup.UseDotNetConsoleDriver(); setup.Options.UseStartup((sp, tui) => { var cm = sp.GetService <IColorManager>(); var attr = cm.BuildAttributeFor(TvColor.Yellow, TvColor.Blue); var helloWorld = new TvComponent <string>("Tvision2 rocks!"); helloWorld.AddDrawer(ctx => { ctx.DrawStringAt(ctx.State, TvPoint.Zero, attr); }); helloWorld.AddViewport(new Viewport(new TvPoint(10, 10), 30)); tui.UI.Add(helloWorld); return(Task.CompletedTask); }); }).UseConsoleLifetime(); await builder.RunTvisionConsoleApp(); }