Пример #1
0
        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();
        }
Пример #2
0
        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();
        }