Inheritance: MonoBehaviour
Exemplo n.º 1
0
        static void Main(string[] args)
        {
            var p1Size = new SvgUnit(SvgUnitType.Millimeter, 181);
            var doc    = new SvgDocument
            {
                Width  = p1Size,
                Height = p1Size
            };

            var spacer = new Spacer(boltDiameter, "Spacer");

            spacer.Create();
            spacer.Transforms.Add(new SvgTranslate(p1Size / 3, p1Size / 3));
            doc.Children.Add(spacer);


            var bigTurret = TurretMount.JumboAndStandard(boltDiameter);

            bigTurret.Create();
            bigTurret.Transforms.Add(new SvgTranslate(p1Size * 2 / 3, p1Size * 2 / 3));
            doc.Children.Add(bigTurret);

            var protractor = new Protractor(boltDiameter, 20, 12, 10);

            protractor.Create();
            protractor.Transforms.Add(new SvgTranslate(p1Size, 0));
            doc.Children.Add(protractor);

            var pointer = new Pointer(boltDiameter, new float[] { 83, 112, 231, 170 });

            pointer.Create();
            doc.Children.Add(pointer);

            File.WriteAllText(@"c:\temp\Drawing.svg", doc.GetXML());
        }
Exemplo n.º 2
0
        private Spacer GetRealSize(Spacer spacer, IEnumerator <int> widths, IEnumerator <int> heights)
        {
            var l = spacer.Left.GetValue(widths.GetNext);
            var r = spacer.Right.GetValue(widths.GetNext);
            var t = spacer.Top.GetValue(heights.GetNext);
            var b = spacer.Bottom.GetValue(heights.GetNext);

            return(new Spacer(t, l, b, r));
        }
Exemplo n.º 3
0
 public void Parse_should_properly_parse_the_spacer()
 {
     Spacer.Parse("").ShouldBe(Spacer.None);
     Spacer.Parse("10").ShouldBe(new Spacer(10));
     Spacer.Parse("15 20").ShouldBe(new Spacer(15, 20));
     Spacer.Parse("15 20 30 40").ShouldBe(new Spacer(15, 20, 30, 40));
     Spacer.Parse(" 15 20 30 40 ").ShouldBe(new Spacer(15, 20, 30, 40));
     Assert.Throws <ArgumentException>(() => Spacer.Parse("x")).Message.ShouldStartWith("Provided value is not a valid Spacer: x");
     Assert.Throws <ArgumentException>(() => Spacer.Parse("10 20 30")).Message.ShouldStartWith("Provided value is not a valid Spacer: 10 20 30");
 }
Exemplo n.º 4
0
        static void Main()
        {
            Spacer sp     = new Spacer('*');
            Header header = new Header(">>> NEW HEADER CLASS <<<");

            // Get the path and filename to process from the user.
            header.DisplayHeader();
            Console.Write(
                "Enter the path to an image with faces that you wish to analyze: ");
            string imageFilePath = @"C:\Users\Administrator\source\repos\JARVIS2\CSC438\faces\faceCollection.json"; //Console.ReadLine();

            Console.Write(imageFilePath);                                                                           // DEBUG: skipping user input for now

            // DEBUG: Testing aux projects
            Console.WriteLine();
            sp.ShowSpacer('=');
            Console.WriteLine();

            Console.WriteLine("> Press any key to continue.");
            Console.ReadKey();
            XDebug xd = new XDebug();

            xd.ShowCheck();

            FileHandler     fh = new FileHandler();
            FaceDataDisplay fd = new FaceDataDisplay();

            fd.DisplayFaceData();

            string      fileText = fh.GetFile(imageFilePath);
            List <Face> faceList = JsonConvert.DeserializeObject <List <Face> >(fileText);

            Console.WriteLine("\n>>> First faceID in faceList: {0}", faceList[0].faceId);

            #region REST API Call
            //if (File.Exists(imageFilePath))
            //{
            //    // Execute the REST API call.
            //    try
            //    {
            //        Console.WriteLine("\nPlease wait a moment for the results to appear.\n");
            //        MakeAnalysisRequest(imageFilePath);
            //    }
            //    catch (Exception e)
            //    {
            //        Console.WriteLine("\n" + e.Message + "\nPress Enter to exit...\n");
            //    }
            //}
            //else
            //{
            //    Console.WriteLine("\nInvalid file path.\nPress Enter to exit...\n");
            //}
            Console.ReadLine();
            #endregion
        }
        public CheckNRadioTestDialog()
            : base("Check And Radio Test", 100, 100, 320, 200)
        {
            girdLayout = new GirdLayout(4, 2);

            girdLayout.SetHorizontalAlignment(0, 0, EHAlignment.HCenter);
            girdLayout.SetHorizontalAlignment(1, 0, EHAlignment.HCenter);
            girdLayout.SetHorizontalAlignment(2, 0, EHAlignment.HCenter);
            girdLayout.SetHorizontalAlignment(3, 0, EHAlignment.HCenter);

            girdLayout.SetHorizontalAlignment(0, 1, EHAlignment.HCenter);
            girdLayout.SetHorizontalAlignment(1, 1, EHAlignment.HCenter);
            girdLayout.SetHorizontalAlignment(2, 1, EHAlignment.HCenter);
            girdLayout.SetHorizontalAlignment(3, 1, EHAlignment.HCenter);

            girdLayout.SetVerticalAlignment(0, 0, EVAlignment.VCenter);
            girdLayout.SetVerticalAlignment(1, 0, EVAlignment.VCenter);
            girdLayout.SetVerticalAlignment(2, 0, EVAlignment.VCenter);
            girdLayout.SetVerticalAlignment(3, 0, EVAlignment.VCenter);

            girdLayout.SetVerticalAlignment(0, 1, EVAlignment.VCenter);
            girdLayout.SetVerticalAlignment(1, 1, EVAlignment.VCenter);
            girdLayout.SetVerticalAlignment(2, 1, EVAlignment.VCenter);
            girdLayout.SetVerticalAlignment(3, 1, EVAlignment.VCenter);

            girdLayout.Right  = 16;
            girdLayout.Left   = 16;
            girdLayout.Top    = 8;
            girdLayout.Bottom = 8;
            girdLayout.Spacer = 4;

            closeButton  = new Button("Close");
            checkButton1 = new CheckButton("Check 1");
            checkButton2 = new CheckButton("Check 2");
            checkButton3 = new CheckButton("Check 3");
            radioGroup   = new RadioGroup();
            radioButton1 = new RadioButton("Radio 1", radioGroup);
            radioButton2 = new RadioButton("Radio 2", radioGroup);
            radioButton3 = new RadioButton("Radio 3", radioGroup);
            spacer       = new Spacer(ESpacerType.Fit);

            Add(checkButton1);
            Add(radioButton1);
            Add(checkButton2);
            Add(radioButton2);
            Add(checkButton3);
            Add(radioButton3);
            Add(spacer);
            Add(closeButton);
            Layout = girdLayout;

            Pack();

            closeButton.MouseReleasedEvent += new MouseReleasedHandler(closeButton_MouseReleasedEvent);
        }
Exemplo n.º 6
0
        public void Spacer_should_initialize_properly_with_1_parameter()
        {
            var distance = SizeUnit.Absolute(15);
            var spacer   = new Spacer(distance);

            spacer.Top.ShouldBe(distance);
            spacer.Bottom.ShouldBe(distance);
            spacer.Left.ShouldBe(distance);
            spacer.Right.ShouldBe(distance);
            spacer.ToString().ShouldBe("15 15 15 15");
        }
Exemplo n.º 7
0
        public void Spacer_should_initialize_properly_with_2_parameters()
        {
            var vertical   = SizeUnit.Absolute(15);
            var horizontal = SizeUnit.Absolute(25);
            var spacer     = new Spacer(vertical, horizontal);

            spacer.Top.ShouldBe(vertical);
            spacer.Bottom.ShouldBe(vertical);
            spacer.Left.ShouldBe(horizontal);
            spacer.Right.ShouldBe(horizontal);
            spacer.ToString().ShouldBe("15 25 15 25");
        }
Exemplo n.º 8
0
        public RollFolderView(Row row)
        {
            this.row = row;
            folder   = row.Components.Get <FolderRow>().Folder;
            label    = new ThemedSimpleText();
            editBox  = new ThemedEditBox {
                LayoutCell = new LayoutCell(Alignment.Center, stretchX: float.MaxValue)
            };
            nodeIcon = new Image(IconPool.GetTexture("Tools.NewFolder"))
            {
                HitTestTarget = true,
                MinMaxSize    = new Vector2(16, 16)
            };
            expandButton = CreateExpandButton();
            var expandButtonContainer = new Widget {
                Layout = new StackLayout {
                    IgnoreHidden = false
                },
                LayoutCell = new LayoutCell(Alignment.Center),
                Visible    = true,
                Nodes      = { expandButton }
            };

            eyeButton  = CreateEyeButton();
            lockButton = CreateLockButton();
            widget     = new Widget {
                Padding = new Thickness {
                    Left = 4, Right = 2
                },
                MinHeight = TimelineMetrics.DefaultRowHeight,
                Layout    = new HBoxLayout {
                    DefaultCell = new DefaultLayoutCell(Alignment.Center)
                },
                HitTestTarget = true,
                Nodes         =
                {
                    (spacer = new Widget()),
                    expandButtonContainer,
                    nodeIcon,
                    Spacer.HSpacer(3),
                    label,
                    editBox,
                    new Widget(),
                    eyeButton,
                    lockButton,
                },
            };
            widget.Components.Add(new AwakeBehavior());
            label.AddChangeWatcher(() => folder.Id, s => label.Text = folder.Id);
            widget.CompoundPresenter.Push(new SyncDelegatePresenter <Widget>(RenderBackground));
            editBox.Visible = false;
            widget.Tasks.Add(HandleDobleClickTask());
        }
Exemplo n.º 9
0
        public void Measure_should_only_include_absolute_values_of_Margin_and_Padding(string margin, string border, string padding, int expectedWidth, int expectedHeight)
        {
            var panel = new Panel
            {
                Inner   = new FixedMeasureComponent(10, 10),
                Margin  = Spacer.Parse(margin),
                Padding = Spacer.Parse(padding),
                Border  = Border.Parse(border)
            };

            panel.Measure(new Size(int.MaxValue, int.MaxValue), TestRendererContext.Instance);
            panel.DesiredSize.ShouldBe(new Size(expectedWidth, expectedHeight));
        }
Exemplo n.º 10
0
        public void ConstructorTest()
        {
            var guiElement = new Spacer(100, 100);
            var layout     = new BaseLayout(guiElement);

            // check that the guiElement was set
            Assert.That(layout.GetGuiElement(), Is.EqualTo(guiElement));

            // check for default values
            Assert.That(layout.HorizontalAlign, Is.EqualTo(HorizontalAlign.None));
            Assert.That(layout.VerticalAlign, Is.EqualTo(VerticalAlign.None));
            Assert.That(layout.Visible, Is.EqualTo(true));
        }
Exemplo n.º 11
0
        private static Widget CreateKeyEditor(IPropertyEditorParams editorParams, KeyValuePair keyValue, Action <string> submitted, Widget button)
        {
            var keyEditor = editorParams.EditBoxFactory();

            keyEditor.AddChangeWatcher(() => keyValue.Key, s => keyEditor.Text = s);
            keyEditor.Submitted += submitted;
            var keyLabelContainer = new Widget {
                Layout     = new HBoxLayout(),
                LayoutCell = new LayoutCell {
                    StretchX = 1.0f
                },
                Nodes =
                {
                    new ThemedSimpleText {
                        Text           = "Key",
                        VAlignment     = VAlignment.Center,
                        LayoutCell     = new LayoutCell(Alignment.LeftCenter),
                        ForceUncutText = false,
                        Padding        = new Thickness(left: 5f),
                        HitTestTarget  = true,
                        TabTravesable  = new TabTraversable(),
                    },
                },
            };
            var editorContainer = new Widget {
                Layout     = new HBoxLayout(),
                LayoutCell = new LayoutCell {
                    StretchX = 2.0f,
                },
                Nodes =
                {
                    new Widget {
                        Layout = new HBoxLayout{
                            DefaultCell = new DefaultLayoutCell(Alignment.Center), Spacing = 4
                        },
                        Nodes ={ keyEditor,  Spacer.HSpacer(4), button, Spacer.HStretch(), },
                    },
                },
            };

            return(new Widget {
                Layout = new HBoxLayout {
                    IgnoreHidden = false,
                },
                LayoutCell = new LayoutCell {
                    StretchY = 0f,
                },
                Nodes = { keyLabelContainer, editorContainer, },
            });
        }
Exemplo n.º 12
0
        public static Rectangle ShrinkBy(this Rectangle rect, Spacer spacer)
        {
            var l    = spacer.Left.GetValue(rect.Width);
            var r    = spacer.Right.GetValue(rect.Width);
            var t    = spacer.Top.GetValue(rect.Height);
            var b    = spacer.Bottom.GetValue(rect.Height);
            var size = new Size(rect.Width - l - r, rect.Height - t - b);

            if (size.Width < 0 || size.Height < 0)
            {
                return(new Rectangle(rect.Location + new Size(Math.Min(l, rect.Width), Math.Min(t, rect.Height)), Size.Empty));
            }
            return(new Rectangle(rect.Left + l, rect.Top + t, size.Width, size.Height));
        }
Exemplo n.º 13
0
        public void Spacer_should_initialize_properly_with_4_parameters()
        {
            var top    = SizeUnit.Absolute(15);
            var left   = SizeUnit.Absolute(25);
            var bottom = SizeUnit.Absolute(35);
            var right  = SizeUnit.Absolute(45);
            var spacer = new Spacer(top, left, bottom, right);

            spacer.Top.ShouldBe(top);
            spacer.Bottom.ShouldBe(bottom);
            spacer.Left.ShouldBe(left);
            spacer.Right.ShouldBe(right);
            spacer.ToString().ShouldBe("15 25 35 45");
        }
Exemplo n.º 14
0
        public void HorizontalAlignTest()
        {
            var renderer = Substitute.For <NullRenderer>();  // mock the renderer
            var hardware = new NullHardware(1024, 768);
            var stage    = new GuiStage();

            var box = new VBox();

            stage.AddChild(box);   // makes a size of 60x40 just through padding

            var spacerNone = new Spacer(100, 100).SetHAlign(HorizontalAlign.None);

            box.AddChild(spacerNone);
            var spacerLeft = new Spacer(100, 100).SetHAlign(HorizontalAlign.Left);

            box.AddChild(spacerLeft);
            var spacerCenter = new Spacer(100, 100).SetHAlign(HorizontalAlign.Center);

            box.AddChild(spacerCenter);
            var spacerRight = new Spacer(100, 100).SetHAlign(HorizontalAlign.Right);

            box.AddChild(spacerRight);

            // we add one child that will free up some width
            box.AddChild(new Spacer(400, 100));

            stage.CalculateLayout(hardware);     // layout

            // since we have not set a height on the hBox yet we expect all children to be not vertically aligned
            Assert.That(box.GetLayout().GetCalculatedWidth(), Is.EqualTo(400));
            Assert.That(box.GetLayout().GetCalculatedContentWidth(), Is.EqualTo(400));

            Assert.That(spacerNone.GetLayoutProcessingData().AbsoluteGeometry.Left, Is.EqualTo(0));         // NONE stays on top
            Assert.That(spacerLeft.GetLayoutProcessingData().AbsoluteGeometry.Left, Is.EqualTo(0));         // TOP stays on top
            Assert.That(spacerCenter.GetLayoutProcessingData().AbsoluteGeometry.Left, Is.EqualTo(150));     // MIDDLE 400 / 2 - 100 / 2
            Assert.That(spacerRight.GetLayoutProcessingData().AbsoluteGeometry.Left, Is.EqualTo(300));      // BOTTOM 400 - 100

            // new we set a height and then we expect the children to be aligned
            box.SetWidth(800);
            stage.CalculateLayout(hardware);     // layout

            Assert.That(box.GetLayout().GetCalculatedWidth(), Is.EqualTo(800));
            Assert.That(box.GetLayout().GetCalculatedContentWidth(), Is.EqualTo(400));

            Assert.That(spacerNone.GetLayoutProcessingData().AbsoluteGeometry.Left, Is.EqualTo(0));         // NONE stays on top
            Assert.That(spacerLeft.GetLayoutProcessingData().AbsoluteGeometry.Left, Is.EqualTo(0));         // TOP stays on top
            Assert.That(spacerCenter.GetLayoutProcessingData().AbsoluteGeometry.Left, Is.EqualTo(350));     // MIDDLE 800 / 2 - 100 / 2
            Assert.That(spacerRight.GetLayoutProcessingData().AbsoluteGeometry.Left, Is.EqualTo(700));      // BOTTOM (800 - 100)
        }
        public void VerticalAlignTest()
        {
            var renderer = Substitute.For <NullRenderer>();  // mock the renderer
            var hardware = new NullHardware(1024, 768);
            var stage    = new GuiStage();

            var box = new HBox();

            stage.AddChild(box);   // makes a size of 60x40 just through padding

            var spacerNone = new Spacer(100, 100).SetVAlign(VerticalAlign.None);

            box.AddChild(spacerNone);
            var spacerTop = new Spacer(100, 100).SetVAlign(VerticalAlign.Top);

            box.AddChild(spacerTop);
            var spacerMiddle = new Spacer(100, 100).SetVAlign(VerticalAlign.Middle);

            box.AddChild(spacerMiddle);
            var spacerBottom = new Spacer(100, 100).SetVAlign(VerticalAlign.Bottom);

            box.AddChild(spacerBottom);

            // we add one child that will free up some height
            box.AddChild(new Spacer(100, 400));

            stage.CalculateLayout(hardware);

            // since we have not set a height on the hBox yet we expect all children to be not vertically aligned
            Assert.That(box.GetLayout().GetCalculatedHeight(), Is.EqualTo(400));
            Assert.That(box.GetLayout().GetCalculatedContentHeight(), Is.EqualTo(400));

            Assert.That(spacerNone.GetLayoutProcessingData().AbsoluteGeometry.Top, Is.EqualTo(0));      // NONE stays on top
            Assert.That(spacerTop.GetLayoutProcessingData().AbsoluteGeometry.Top, Is.EqualTo(0));       // TOP stays on top
            Assert.That(spacerMiddle.GetLayoutProcessingData().AbsoluteGeometry.Top, Is.EqualTo(150));  // MIDDLE 400 / 2 - 100 / 2
            Assert.That(spacerBottom.GetLayoutProcessingData().AbsoluteGeometry.Top, Is.EqualTo(300));  // BOTTOM 400 - 100

            // new we set a height and then we expect the children to be aligned
            box.SetHeight(800);
            stage.CalculateLayout(hardware);

            Assert.That(box.GetLayout().GetCalculatedHeight(), Is.EqualTo(800));
            Assert.That(box.GetLayout().GetCalculatedContentHeight(), Is.EqualTo(400));

            Assert.That(spacerNone.GetLayoutProcessingData().AbsoluteGeometry.Top, Is.EqualTo(0));      // NONE stays on top
            Assert.That(spacerTop.GetLayoutProcessingData().AbsoluteGeometry.Top, Is.EqualTo(0));       // TOP stays on top
            Assert.That(spacerMiddle.GetLayoutProcessingData().AbsoluteGeometry.Top, Is.EqualTo(350));  // MIDDLE 800 / 2 - 100 / 2
            Assert.That(spacerBottom.GetLayoutProcessingData().AbsoluteGeometry.Top, Is.EqualTo(700));  // BOTTOM (800 - 100)
        }
Exemplo n.º 16
0
        public void StackToArea()
        {
            var polygon = new Polygon
                          (
                new[]
            {
                new Vector3(),
                new Vector3(20, 0),
                new Vector3(20, 20),
                new Vector3(0, 20)
            }
                          );
            var space  = new Space(polygon);
            var spaces = (List <Space>)Spacer.StackToArea(space, 4000, 0);

            Assert.True(spaces.Count == 10);
        }
Exemplo n.º 17
0
        public void Arrange_should_arrange_inner_component(string contentAlignment, string clipMargin, string expectedInnerLayout, string expectedViewRegion)
        {
            var viewport = new Viewport
            {
                Width            = 30,
                Height           = 30,
                ClipMargin       = Spacer.Parse(clipMargin),
                Inner            = new FixedMeasureComponent(100, 200),
                ContentAlignment = Alignment.Parse(contentAlignment)
            };

            viewport.Measure(new Size(int.MaxValue, int.MaxValue), TestRendererContext.Instance);

            viewport.Arrange(new Rectangle(1, 2, 30, 30));
            viewport.Inner.Layout.ShouldBe(RectParser.ToRect(expectedInnerLayout));
            viewport.ActualViewRegion.ShouldBe(RectParser.ToRect(expectedViewRegion));
        }
Exemplo n.º 18
0
        public void VerticalLayoutTest()
        {
            var renderer = Substitute.For <NullRenderer>();  // mock the renderer
            var hardware = new NullHardware(1024, 768);
            var stage    = new GuiStage();

            var hBox = new VBox().SetX(10).SetY(20).SetPadding(10, 20, 30, 40); // makes a size of 60x40 just through padding

            stage.AddChild(hBox);
            stage.CalculateLayout(hardware);     // layout

            Assert.That(hBox.GetLayoutProcessingData().AbsoluteGeometry, Is.EqualTo(new Rectangle(10, 20, 60, 40)));

            // add a child
            var spacer1 = new Spacer(200, 100);

            hBox.AddChild(spacer1);          // should increase the size by 200x100
            stage.CalculateLayout(hardware); // layout

            Assert.That(hBox.GetLayoutProcessingData().AbsoluteGeometry, Is.EqualTo(new Rectangle(10, 20, 260, 140)));
            // check the absolute position of spacer1
            Assert.That(spacer1.GetLayoutProcessingData().AbsoluteGeometry, Is.EqualTo(new Rectangle(50, 30, 200, 100)));

            // add another child
            var spacer2 = new Spacer(300, 200);

            hBox.AddChild(spacer2);          // should increase the size by 200x100
            stage.CalculateLayout(hardware); // layout

            Assert.That(hBox.GetLayoutProcessingData().AbsoluteGeometry, Is.EqualTo(new Rectangle(10, 20, 360, 340)));
            // check the absolute position of spacer1
            Assert.That(spacer1.GetLayoutProcessingData().AbsoluteGeometry, Is.EqualTo(new Rectangle(50, 30, 200, 100)));
            // check the absolute position of spacer1
            Assert.That(spacer2.GetLayoutProcessingData().AbsoluteGeometry, Is.EqualTo(new Rectangle(50, 130, 300, 200)));

            // check setting the spacing
            hBox.SetSpacing(100);
            stage.CalculateLayout(hardware);     // layout

            Assert.That(hBox.GetLayoutProcessingData().AbsoluteGeometry, Is.EqualTo(new Rectangle(10, 20, 360, 440)));
            // check the absolute position of spacer1
            Assert.That(spacer1.GetLayoutProcessingData().AbsoluteGeometry, Is.EqualTo(new Rectangle(50, 30, 200, 100)));
            // check the absolute position of spacer1
            Assert.That(spacer2.GetLayoutProcessingData().AbsoluteGeometry, Is.EqualTo(new Rectangle(50, 230, 300, 200)));
        }
Exemplo n.º 19
0
 public void SpawnUninteractableDuplicates()
 {
     foreach (Transform spacer in spacers)
     {
         if (spacer != null && spacer.gameObject.activeSelf)
         {
             Spacer spacerScript = spacer.gameObject.GetComponent <Spacer>();
             if (!spacerScript.AmActiveCaller())
             {
                 spacerScript.SpawnFakeRNA();
             }
             else
             {
                 spacerScript.SetAsActiveCaller(false);
             }
         }
     }
 }
Exemplo n.º 20
0
        public void CopyPlace()
        {
            var polygon = new Polygon
                          (
                new[]
            {
                new Vector3(),
                new Vector3(30.0, 10.0),
                new Vector3(20.0, 50.0),
                new Vector3(-10.0, 5.0)
            }
                          );
            var thisSpace = new Space(polygon);
            var vector    = new Vector3(50.0, 0.0, 0.0);
            var copySpace = Spacer.CopyPlace(thisSpace, vector);
            var vertices  = copySpace.Profile.Perimeter.Vertices;

            Assert.Contains(vertices, p => p.X == 50.0 && p.Y == 0.0);
            Assert.Contains(vertices, p => p.X == 80.0 && p.Y == 10.0);
            Assert.Contains(vertices, p => p.X == 70.0 && p.Y == 50.0);
            Assert.Contains(vertices, p => p.X == 40.0 && p.Y == 5.0);
        }
Exemplo n.º 21
0
        public void Stack()
        {
            var polygon = new Polygon
                          (
                new[]
            {
                new Vector3(),
                new Vector3(30, 10),
                new Vector3(20, 50),
                new Vector3(-10, 5)
            }
                          );
            var thisSpace = new Space(polygon);
            var spaces    = Spacer.Stack(thisSpace, 5, 5);
            var elevation = 0.0;

            foreach (Space space in spaces)
            {
                Assert.Equal(elevation, elevation);
                elevation += space.Height + 5;
            }
        }
Exemplo n.º 22
0
 public RollPropertyView(Row row)
 {
     this.row = row;
     propRow  = row.Components.Get <PropertyRow>();
     label    = new ThemedSimpleText {
         Text           = propRow.Animator.TargetPropertyPath,
         ForceUncutText = false,
         VAlignment     = VAlignment.Center,
         OverflowMode   = TextOverflowMode.Ellipsis,
         LayoutCell     = new LayoutCell(Alignment.LeftCenter, float.MaxValue)
     };
     propIcon = new Image {
         LayoutCell = new LayoutCell(Alignment.Center),
         Texture    = IconPool.GetTexture("Nodes.Unknown"),
         MinMaxSize = new Vector2(16, 16)
     };
     widget = new Widget {
         Padding = new Thickness {
             Left = 4, Right = 2
         },
         MinHeight = TimelineMetrics.DefaultRowHeight,
         Layout    = new HBoxLayout {
             DefaultCell = new DefaultLayoutCell(Alignment.Center)
         },
         Nodes =
         {
             (spacer = new Widget()),
             Spacer.HSpacer(6),
             propIcon,
             Spacer.HSpacer(3),
             label,
             CreateLockAnimationButton(),
             Spacer.HSpacer(Theme.Metrics.DefaultToolbarButtonSize.X),
             Spacer.HSpacer(Theme.Metrics.DefaultToolbarButtonSize.X)
         },
     };
     widget.Components.Add(new AwakeBehavior());
     widget.CompoundPresenter.Push(new SyncDelegatePresenter <Widget>(RenderBackground));
 }
Exemplo n.º 23
0
        public void It_should_render_viewports()
        {
            var renderer = new PdfRenderer();

            var stack = new Stack();

            stack.AddComponent(new Panel
            {
                Width           = 100,
                Height          = 100,
                Border          = Border.Parse("1 #808080"),
                BackgroundColor = Color.LightBlue,
                BorderRadius    = BorderRadius.Parse("25")
            });
            stack.AddComponent(new Viewport
            {
                Alignment = Alignment.Parse("center left"),
                Width     = 10,
                Inner     = new Panel
                {
                    Width           = 40,
                    Height          = 40,
                    Border          = Border.Parse("1 #808080"),
                    BackgroundColor = Color.White,
                    BorderRadius    = BorderRadius.Parse("20")
                },
                ContentAlignment = Alignment.Parse("center right")
            });
            stack.AddComponent(new Viewport
            {
                Alignment = Alignment.Parse("top center"),
                Height    = 10,
                Inner     = new Panel
                {
                    Width           = 40,
                    Height          = 40,
                    Border          = Border.Parse("1 #808080"),
                    BackgroundColor = Color.White,
                    BorderRadius    = BorderRadius.Parse("20")
                },
                ContentAlignment = Alignment.Parse("bottom center")
            });
            stack.AddComponent(new Viewport
            {
                Alignment = Alignment.Parse("center right"),
                Width     = 10,
                Inner     = new Panel
                {
                    Width           = 40,
                    Height          = 40,
                    Border          = Border.Parse("1 #808080"),
                    BackgroundColor = Color.White,
                    BorderRadius    = BorderRadius.Parse("20")
                },
                ContentAlignment = Alignment.Parse("center left")
            });
            stack.AddComponent(new Viewport
            {
                Alignment = Alignment.Parse("bottom center"),
                Height    = 10,
                Inner     = new Panel
                {
                    Width           = 40,
                    Height          = 40,
                    Border          = Border.Parse("1 #808080"),
                    BackgroundColor = Color.White,
                    BorderRadius    = BorderRadius.Parse("20")
                },
                ContentAlignment = Alignment.Parse("top center")
            });
            stack.AddComponent(new Viewport
            {
                Alignment  = Alignment.Parse("center center"),
                ClipMargin = Spacer.Parse("3 1"),
                Inner      = new Panel
                {
                    Width           = 40,
                    Height          = 40,
                    BackgroundColor = Color.White,
                    Border          = Border.Parse("1 #808080"),
                    BorderRadius    = BorderRadius.Parse("20")
                },
                ContentAlignment = Alignment.Parse("center center")
            });
            var form = new Form(stack);

            var doc = new PdfDocument();

            renderer.Render(form, doc.AddPage(), new PdfRendererOptions {
                AdjustPageSize = true
            });
            PdfImageComparer.ComparePdfs("viewport", doc);
        }
Exemplo n.º 24
0
        public void It_should_render_viewports()
        {
            var renderer = new BitmapRenderer();

            var stack = new Stack();

            stack.AddComponent(new Panel
            {
                Width           = 100,
                Height          = 100,
                Border          = Border.Parse("1 #808080"),
                BackgroundColor = Color.LightBlue,
                BorderRadius    = BorderRadius.Parse("25")
            });
            stack.AddComponent(new Viewport
            {
                Alignment = Alignment.Parse("center left"),
                Width     = 10,
                Inner     = new Panel
                {
                    Width           = 40,
                    Height          = 40,
                    Border          = Border.Parse("1 #808080"),
                    BackgroundColor = Color.White,
                    BorderRadius    = BorderRadius.Parse("20")
                },
                ContentAlignment = Alignment.Parse("center right")
            });
            stack.AddComponent(new Viewport
            {
                Alignment = Alignment.Parse("top center"),
                Height    = 10,
                Inner     = new Panel
                {
                    Width           = 40,
                    Height          = 40,
                    Border          = Border.Parse("1 #808080"),
                    BackgroundColor = Color.White,
                    BorderRadius    = BorderRadius.Parse("20")
                },
                ContentAlignment = Alignment.Parse("bottom center")
            });
            stack.AddComponent(new Viewport
            {
                Alignment = Alignment.Parse("center right"),
                Width     = 10,
                Inner     = new Panel
                {
                    Width           = 40,
                    Height          = 40,
                    Border          = Border.Parse("1 #808080"),
                    BackgroundColor = Color.White,
                    BorderRadius    = BorderRadius.Parse("20")
                },
                ContentAlignment = Alignment.Parse("center left")
            });
            stack.AddComponent(new Viewport
            {
                Alignment = Alignment.Parse("bottom center"),
                Height    = 10,
                Inner     = new Panel
                {
                    Width           = 40,
                    Height          = 40,
                    Border          = Border.Parse("1 #808080"),
                    BackgroundColor = Color.White,
                    BorderRadius    = BorderRadius.Parse("20")
                },
                ContentAlignment = Alignment.Parse("top center")
            });
            stack.AddComponent(new Viewport
            {
                Alignment  = Alignment.Parse("center center"),
                ClipMargin = Spacer.Parse("3 1"),
                Inner      = new Panel
                {
                    Width           = 40,
                    Height          = 40,
                    BackgroundColor = Color.White,
                    Border          = Border.Parse("1 #808080"),
                    BorderRadius    = BorderRadius.Parse("20")
                },
                ContentAlignment = Alignment.Parse("center center")
            });
            var form = new Form(stack);

            var bmp = renderer.Render(form);

            BitmapComparer.CompareBitmaps("viewport", bmp);
        }
Exemplo n.º 25
0
        public RollFolderView(Row row)
        {
            this.row = row;
            folder   = row.Components.Get <FolderRow>().Folder;
            label    = new ThemedSimpleText {
                ForceUncutText = false,
                VAlignment     = VAlignment.Center,
                OverflowMode   = TextOverflowMode.Ellipsis,
                LayoutCell     = new LayoutCell(Alignment.LeftCenter, float.MaxValue)
            };
            editBox = new ThemedEditBox {
                LayoutCell = new LayoutCell(Alignment.Center, stretchX: float.MaxValue)
            };
            nodeIcon = new Image(IconPool.GetTexture("Tools.NewFolder"))
            {
                HitTestTarget = true,
                MinMaxSize    = new Vector2(16, 16)
            };
            expandButton = CreateExpandButton();
            var expandButtonContainer = new Widget {
                Layout = new StackLayout {
                    IgnoreHidden = false
                },
                LayoutCell = new LayoutCell(Alignment.Center),
                Visible    = true,
                Nodes      = { expandButton }
            };

            eyeButton  = CreateEyeButton();
            lockButton = CreateLockButton();
            widget     = new Widget {
                Padding = new Thickness {
                    Left = 4, Right = 2
                },
                MinHeight = TimelineMetrics.DefaultRowHeight,
                Layout    = new HBoxLayout {
                    DefaultCell = new DefaultLayoutCell(Alignment.Center)
                },
                HitTestTarget = true,
                Nodes         =
                {
                    (spacer = new Widget()),
                    expandButtonContainer,
                    nodeIcon,
                    Spacer.HSpacer(3),
                    label,
                    editBox,
                    new Widget(),
                    eyeButton,
                    lockButton,
                },
            };
            widget.Components.Add(new AwakeBehavior());
            label.HitTestTarget = true;
            label.AddChangeWatcher(() => folder.Id, s => label.Text = folder.Id);
            label.Gestures.Add(new DoubleClickGesture(() => {
                Document.Current.History.DoTransaction(() => {
                    var labelExtent = label.MeasureUncutText();
                    if (label.LocalMousePosition().X < labelExtent.X)
                    {
                        Rename();
                    }
                    else
                    {
                        Document.Current.History.DoTransaction(ExpandOrCollapse);
                    }
                });
            }));
            widget.Gestures.Add(new ClickGesture(1, ShowContextMenu));
            widget.CompoundPresenter.Push(new SyncDelegatePresenter <Widget>(RenderBackground));
            editBox.Visible = false;
        }
Exemplo n.º 26
0
 public void GetAbsoluteSize_should_return_size(string spacer, int expectedWidth, int expectedHeight)
 {
     Spacer.Parse(spacer).GetAbsoluteSize().ShouldBe(new Size(expectedWidth, expectedHeight));
 }
Exemplo n.º 27
0
        public RollNodeView(Row row)
        {
            this.row = row;
            nodeData = row.Components.Get <NodeRow>();
            label    = new ThemedSimpleText {
                ForceUncutText = false,
                VAlignment     = VAlignment.Center,
                OverflowMode   = TextOverflowMode.Ellipsis,
                LayoutCell     = new LayoutCell(Alignment.LeftCenter, float.MaxValue)
            };
            editBoxContainer = new Widget {
                Visible    = false,
                Layout     = new HBoxLayout(),
                LayoutCell = new LayoutCell(Alignment.LeftCenter, float.MaxValue),
            };
            nodeIcon = new Image(NodeIconPool.GetTexture(nodeData.Node.GetType()))
            {
                HitTestTarget = true,
                MinMaxSize    = new Vector2(21, 16),
                Padding       = new Thickness {
                    Left = 5
                }
            };
            expandButton = CreateExpandButton();
            var expandButtonContainer = new Widget {
                Layout = new StackLayout {
                    IgnoreHidden = false
                },
                LayoutCell = new LayoutCell(Alignment.Center, stretchX: 0),
                Nodes      = { expandButton }
            };

            expandButtonContainer.CompoundPresenter.Add(new SyncDelegatePresenter <Widget>(widget => {
                widget.PrepareRendererState();
                var a          = new Vector2(0, -4);
                var b          = widget.Size + new Vector2(0, 3);
                int colorIndex = nodeData.Node.EditorState().ColorIndex;
                Renderer.DrawRect(a, b, ColorMarks[colorIndex]);
                if (colorIndex != 0)
                {
                    Renderer.DrawRectOutline(a, b, ColorTheme.Current.TimelineRoll.Lines);
                }
            }));
            expandButtonContainer.Updating += delta => {
                bool visible = false;
                foreach (var a in nodeData.Node.Animators)
                {
                    if (!a.IsZombie && a.AnimationId == Document.Current.AnimationId)
                    {
                        visible = true;
                        break;
                    }
                }
                expandButton.Visible = visible;
            };
            enterButton         = NodeCompositionValidator.CanHaveChildren(nodeData.Node.GetType()) ? CreateEnterButton() : null;
            eyeButton           = CreateEyeButton();
            lockButton          = CreateLockButton();
            lockAnimationButton = CreateLockAnimationButton();
            widget = new Widget {
                HitTestTarget = true,
                Padding       = new Thickness {
                    Right = 2
                },
                MinHeight = TimelineMetrics.DefaultRowHeight,
                Layout    = new HBoxLayout {
                    DefaultCell = new DefaultLayoutCell(Alignment.Center)
                },
                Nodes =
                {
                    expandButtonContainer,
                    (indentSpacer = new Widget()),
                    nodeIcon,
                    Spacer.HSpacer(3),
                    label,
                    editBoxContainer,
                    linkIndicatorButtonContainer,
                    (Widget)enterButton ?? (Widget)Spacer.HSpacer(Theme.Metrics.DefaultToolbarButtonSize.X),
                    lockAnimationButton,
                    eyeButton,
                    lockButton,
                },
            };
            widget.Components.Add(new AwakeBehavior());
            label.AddChangeWatcher(() => nodeData.Node.Id, s => RefreshLabel());
            label.AddChangeWatcher(() => IsGrayedLabel(nodeData.Node), s => RefreshLabel());
            label.AddChangeWatcher(() => nodeData.Node.ContentsPath, s => RefreshLabel());
            widget.CompoundPresenter.Push(new SyncDelegatePresenter <Widget>(RenderBackground));
            nodeIdEditor        = new ObjectIdInplaceEditor(row, nodeData.Node, label, editBoxContainer);
            label.HitTestTarget = true;
            label.Gestures.Add(new DoubleClickGesture(() => {
                Document.Current.History.DoTransaction(() => {
                    if (NodeData.Node.EditorState().Locked)
                    {
                        return;
                    }
                    var labelExtent = label.MeasureUncutText();
                    if (label.LocalMousePosition().X < labelExtent.X)
                    {
                        nodeIdEditor.Rename();
                    }
                    else
                    {
                        EnterNode.Perform(nodeData.Node);
                    }
                });
            }));
            widget.Gestures.Add(new ClickGesture(1, ShowContextMenu));
        }
Exemplo n.º 28
0
 public RollAnimationTrackView(Row row)
 {
     this.row = row;
     trackRow = row.Components.Get <AnimationTrackRow>();
     label    = new ThemedSimpleText {
         ForceUncutText = false,
         VAlignment     = VAlignment.Center,
         OverflowMode   = TextOverflowMode.Ellipsis,
         LayoutCell     = new LayoutCell(Alignment.LeftCenter, float.MaxValue)
     };
     editBoxContainer = new Widget {
         Visible    = false,
         Layout     = new HBoxLayout(),
         LayoutCell = new LayoutCell(Alignment.LeftCenter, float.MaxValue),
     };
     propIcon = new Image {
         LayoutCell = new LayoutCell(Alignment.Center),
         Texture    = IconPool.GetTexture("Nodes.Unknown"),
         MinMaxSize = new Vector2(16, 16)
     };
     eyeButton  = CreateEyeButton();
     lockButton = CreateLockButton();
     Widget     = new Widget {
         Padding = new Thickness {
             Left = 4, Right = 2
         },
         MinHeight = TimelineMetrics.DefaultRowHeight,
         Layout    = new HBoxLayout {
             DefaultCell = new DefaultLayoutCell(Alignment.Center)
         },
         Nodes =
         {
             (spacer = new Widget()),
             Spacer.HSpacer(6),
             propIcon,
             Spacer.HSpacer(3),
             label,
             editBoxContainer,
             Spacer.HSpacer(Theme.Metrics.DefaultToolbarButtonSize.X),
             lockButton
         },
     };
     trackIdEditor = new RollNodeView.ObjectIdInplaceEditor(row, Track, label, editBoxContainer);
     label.AddChangeWatcher(() => Track.Id, s => label.Text = s);
     label.HitTestTarget = true;
     label.Gestures.Add(new DoubleClickGesture(() => {
         Document.Current.History.DoTransaction(() => {
             if (trackRow.Locked)
             {
                 return;
             }
             var labelExtent = label.MeasureUncutText();
             if (label.LocalMousePosition().X < labelExtent.X)
             {
                 Rename();
             }
         });
     }));
     Widget.Gestures.Add(new ClickGesture(1, ShowContextMenu));
     Widget.Components.Add(new AwakeBehavior());
     Widget.CompoundPresenter.Push(new SyncDelegatePresenter <Widget>(RenderBackground));
 }
Exemplo n.º 29
0
 private void AddComponent(IContainer container, Image image)
 {
     container.AddComponent(new Panel {
         Margin = Spacer.Parse("1"), Border = Border.Parse("1 green"), Inner = image
     });
 }
Exemplo n.º 30
0
 public void SetSpacer(Spacer spacer, int section = 1)
 {
     _data[section - 1] = (ushort)((_data[section - 1] & 0xF3FF) | ((ushort)spacer << 10));
 }
Exemplo n.º 31
0
 public void SetSpacer(Spacer newFather)
 {
     father = newFather;
 }