Beispiel #1
0
        public static void BorderAndAreaTest1()
        {
            var con    = new CoreConsole("BorderAndAreaTest1 --- ConsoleWindowsDemo", 25, 80, styles);
            var conWin = new ConsoleWindows(con, con.DefaultRootWindow());

            var textArray   = Enumerable.Repeat("0123456789", conWin.cols / 10).ToArray();
            var textElement = new TextViewElement(0, 0, () => { return(String.Join("", textArray)); });

            conWin.rootWindow.AddElement(textElement);

            for (int rowLoop = 1; rowLoop < conWin.rows; rowLoop++)
            {
                string text = (rowLoop % 10).ToString();
                textElement = new TextViewElement(rowLoop, 0, () => { return(text); });
                conWin.rootWindow.AddElement(textElement);
            }

            var region = new Region(3, 3, 3, 3, ownStyle1);
            var area   = new Area(6, 6, 6, 6, ownStyle2, new Border(Border.defaultBorderFrameSingle));

            var area2 = new Area(10, 20, 20, 8, StyleIndex.Scrollbar, new Border(Border.defaultBorderFrameVertDoubleHorSingle));

            conWin.rootWindow.AddElement(region);
            conWin.rootWindow.AddElement(area);
            conWin.rootWindow.AddElement(area2);

            conWin.rootWindow.AddElement(new TextViewElement(23, 30, () => { return("...press Escape to end..."); }));

            conWin.Start();
        }
        /// <include file='doc\XhtmlBasicTextViewAdapter.uex' path='docs/doc[@for="XhtmlTextViewAdapter.RenderElement"]/*' />
        public void RenderElement(XhtmlMobileTextWriter writer, int index, int beginSubstring, int endSubstring)
        {
            TextViewElement element = Control.GetElement(index);

            writer.WritePendingBreak();
            if (endSubstring == -1)
            {
                endSubstring = element.Text.Length;
            }
            String text = element.Text;

            if (beginSubstring > 0 || endSubstring < text.Length)
            {
                text = text.Substring(beginSubstring, endSubstring - beginSubstring);
            }
            BooleanOption prevBold   = Style.Font.Bold;
            BooleanOption prevItalic = Style.Font.Italic;

            if (element.IsBold)
            {
                Style.Font.Bold = BooleanOption.True;
            }
            if (element.IsItalic)
            {
                Style.Font.Italic = BooleanOption.True;
            }
            ConditionalEnterStyle(writer, Style);
            if (element.Url != null)
            {
                RenderBeginLink(writer, element.Url);
                writer.WriteEncodedText(text);
                RenderEndLink(writer);
            }
            else
            {
                writer.WriteEncodedText(text);
            }
            if (element.BreakAfter)
            {
                writer.SetPendingBreak();
            }
            ConditionalExitStyle(writer, Style);
            Style.Font.Bold   = prevBold;
            Style.Font.Italic = prevItalic;
        }
        private void RenderElement(HtmlMobileTextWriter writer, int index, int begin, int end)
        {
            TextViewElement element = Control.GetElement(index);

            if (end == -1)
            {
                end = element.Text.Length;
            }

            String text = element.Text;

            if (begin > 0 || end < text.Length)
            {
                text = text.Substring(begin, end - begin);
            }

            BooleanOption previousBold   = Style.Font.Bold;
            BooleanOption previousItalic = Style.Font.Italic;

            if (element.IsBold)
            {
                Style.Font.Bold = BooleanOption.True;
            }
            if (element.IsItalic)
            {
                Style.Font.Italic = BooleanOption.True;
            }

            writer.EnterStyle(Style);
            if (element.Url != null)
            {
                RenderBeginLink(writer, element.Url);
                writer.WriteText(text, true);
                RenderEndLink(writer);
            }
            else
            {
                writer.WriteText(text, true);
            }
            writer.ExitStyle(Style, element.BreakAfter);

            Style.Font.Bold   = previousBold;
            Style.Font.Italic = previousItalic;
        }
Beispiel #4
0
        public static void ViewAndCangeTest1()
        {
            var con    = new CoreConsole("ViewAndCangeTest1 --- ConsoleWindowsDemo", styles);
            var conWin = new ConsoleWindows(con, con.DefaultRootWindow());

            var region = new Region(3, 10, 10, 10, ownStyle1);
            var area   = new Area(6, 20, 10, 15, ownStyle2, new Border(Border.defaultBorderFramePattern1));

            conWin.rootWindow.AddElement(region);
            conWin.rootWindow.AddElement(area);

            Thread.Sleep(3000);

            var element1 = "proba1";
            var element2 = "proba2";

            var textElement1 = new TextEditElement(10, 40, () => { return(element1); }, (s) => element1 = s);
            var textElement2 = new TextEditElement(10, 60, () => { return(element2); }, (s) => element2 = s);

            var textElement3 = new TextViewElement(23, 30, () => { return("...press Escape to end..."); });
            var textElement4 = new TextViewElement(1, 60, () => { return("........"); }, ownStyle3);

            conWin.rootWindow.AddElement(textElement1);
            conWin.rootWindow.AddElement(textElement2);

            conWin.rootWindow.AddElement(textElement4);
            conWin.rootWindow.AddElement(textElement3);

            string field1 = "aaaaaa";
            string field2 = "bbb";
            string field3 = "cccccccccccccc";
            string field4 = "dd";
            string field5 = "eeeeeeeeeeeeeee eeeeeeeeeeeeeeeeeeeeeeeee eeeeeeeeeeeeeeeeeeeeeeeeeeee eeeeeeeeeeeeeeeeeeeeeeeeeeee eeeeeeeeeeeeeee eeeeeeeee";

            conWin.rootWindow.AddElement(new TextEditElement(15, 40, () => { return(field1); }, (s) => field1     = s));
            conWin.rootWindow.AddElement(new TextEditElement(16, 40, () => { return(field2); }, (s) => field2     = s));
            conWin.rootWindow.AddElement(new TextEditElement(17, 40, 30, () => { return(field3); }, (s) => field3 = s));
            conWin.rootWindow.AddElement(new TextEditElement(18, 40, () => { return(field4); }, (s) => field4     = s));
            conWin.rootWindow.AddElement(new TextEditElement(19, 40, 30, () => { return(field5); }, (s) => field5 = s));

            Task task = conWin.Start(false);                                                    // Don't wait

            Thread.Sleep(3000);

            region.row += 5;
            area.border = new Border(Border.defaultBorderFramePattern2);

            conWin.rootWindow.IndicateChange();

            Thread.Sleep(3000);

            field1 = "PROBA1";                                                                    // textElement1.text
            conWin.rootWindow.IndicateChange();

            Thread.Sleep(3000);

            field2 = "PROBA2";                                                                    // textElement2.text
            conWin.rootWindow.IndicateChange();

            Task.Run(() =>
            {
                for (int i = 0; i < 100; i++)
                {
                    field4 = (i).ToString();                                                      // textElement4.text
                    conWin.rootWindow.IndicateChange();
                    Thread.Sleep(1000);
                }
            });

            task.Wait();

            field3 = "  !!!! STOPPED !!!!";                                                       // textElement3.text
            conWin.rootWindow.IndicateChange();

            Thread.Sleep(10000);
        }
Beispiel #5
0
        public static void SimpleTest1()
        {
            VirtualConsole.defaultSetWindowSize = false;

            var con    = new CoreConsole("SimpleTest1 --- ConsoleWindowsDemo", 25, 80, styles);
            var conWin = new ConsoleWindows(con, con.DefaultRootWindow());

            var textArray = Enumerable.Repeat("0123456789", conWin.cols / 10).ToArray();

            var textElement = new TextViewElement(0, 0, () => { return(String.Join("", textArray)); });

            conWin.rootWindow.AddElement(textElement);

            for (int rowLoop = 1; rowLoop < conWin.rows; rowLoop++)
            {
                string text = (rowLoop % 10).ToString();
                textElement = new TextViewElement(rowLoop, 0, () => { return(text); });
                conWin.rootWindow.AddElement(textElement);
            }

            conWin.styles[StyleIndex.User8] = new Style(WinColor.Red, WinColor.Yellow);
            conWin.styles[StyleIndex.User9] = new Style(WinColor.Blue, WinColor.White);

            textElement = new TextViewElement(10, 10, () => { return("Pressed key:"); }, StyleIndex.User9);
            conWin.rootWindow.AddElement(textElement);

            string stateText = "";

            textElement = new TextViewElement(10, 24, 40, 1, StyleIndex.User8, () => { return(stateText); });
            conWin.rootWindow.AddElement(textElement);

            con.ApplyPreviewReadedKey(consoleKeyInfo =>
            {
                string text = consoleKeyInfo.Key.ToString() + "  [";

                if (consoleKeyInfo.KeyChar != 0)
                {
                    text += consoleKeyInfo.KeyChar;
                }

                text += "]";

                if ((consoleKeyInfo.Modifiers & ConsoleModifiers.Alt) != 0)
                {
                    text += " Alt";
                }

                if ((consoleKeyInfo.Modifiers & ConsoleModifiers.Shift) != 0)
                {
                    text += " Shift";
                }

                if ((consoleKeyInfo.Modifiers & ConsoleModifiers.Control) != 0)
                {
                    text += " Ctrl";
                }


                stateText = text;                                                   // textElement.text

                return(consoleKeyInfo);                                             // pass on this key to process [but you can modify it, for example uppercase use]
            });

            conWin.Start();
        }