Exemplo n.º 1
0
        public void SetGrandparentUsingAnonCtorAndMaintainExplicitParentValue()
        {
            var layout = new StackLayout
            {
                Visual   = Maui.Controls.VisualMarker.Material,
                Children =
                {
                    new StackLayout {
                        Visual   = Maui.Controls.VisualMarker.Default,
                        Children =  { ImplicitDefaultView()}
                    }
                }
            };

            var layout2            = layout.Children[0] as StackLayout;
            IVisualController view = layout2.Children[0] as View;

            var target = view.EffectiveVisual;

            Assume.That(((IVisualController)layout).EffectiveVisual.IsMaterial());

            Assume.That(((IVisualController)layout2).EffectiveVisual.IsDefault());

            Assert.IsTrue(!target.IsMaterial(), "EffectiveVisual should be Default");
            Assert.IsTrue(target.IsDefault(), "EffectiveVisual should be Default");
        }
Exemplo n.º 2
0
    /// <summary>
    /// Applies icon data to its visual.(For MapData, after checking its ItemState).
    /// </summary>
    /// <seealso cref="IconVisualController.SetVisual(Sprite)">
    /// At the end ApplyIconVisual() method calls VisualController:SetVisual(Sprite) method.
    /// </seealso>
    public void ApplyIconVisual()
    {
        visualController = GetComponentInChildren <IconVisualController>();
        Sprite visual;

        switch (data.type)
        {
        case ItemType.Map:
            switch (data.mapData.basicData.state)
            {
            case ItemState.Locked: visual = data.mapData.locked; break;

            case ItemState.Unlocked: visual = data.mapData.basicData.icon; break;

            default: throw new System.Exception("Item.data.state has a problem");
            }
            break;

        case ItemType.Body: visual = data.bodyData.basicData.icon; break;

        case ItemType.Extra: visual = data.extraData.basicData.icon; break;

        case ItemType.Special: visual = data.specialData.basicData.icon; break;

        case ItemType.Flag: visual = data.flagData.basicData.icon; break;

        default:
            visual = Sprite.Create(new Texture2D(200, 200), new Rect(Vector2.zero, Vector2.one * 200f), Vector2.one * 0.5f);
            Debug.Log("Control ItemType in debug mod. Track it backward.");
            break;
        }
        visualController.SetVisual(visual);
    }
Exemplo n.º 3
0
        public async Task VisualPropagationPageLevel()
        {
            Shell       shell = new Shell();
            ContentPage page  = new ContentPage();

            shell.Items.Add(CreateShellItem(page));

            // setup title view
            StackLayout titleView = new StackLayout()
            {
                BackgroundColor = Colors.White
            };
            Button button = new Button();

            titleView.Children.Add(button);
            Shell.SetTitleView(page, titleView);
            IVisualController visualController = button as IVisualController;


            Assert.AreEqual(page, titleView.Parent);

            Assert.AreEqual(VisualMarker.Default, ((IVisualController)button).EffectiveVisual);
            page.Visual = VisualMarker.Material;
            Assert.AreEqual(VisualMarker.Material, ((IVisualController)button).EffectiveVisual);
        }
Exemplo n.º 4
0
        static void AddExplicitMaterialToScrollView(ScrollView parent, View child)
        {
            parent.Content = child;

            IVisualController controller = child;

            Assume.That(child.Visual == Maui.Controls.VisualMarker.Material, "child view Visual should be Material");
        }
Exemplo n.º 5
0
        static void AddImplicitToDefault(StackLayout parent, View child)
        {
            parent.Children.Add(child);

            IVisualController controller = child;

            Assume.That(child.Visual == Maui.Controls.VisualMarker.MatchParent, "child view Visual should be MatchParent");
        }
Exemplo n.º 6
0
        static void AddExplicitLTRToScrollView(ScrollView parent, View child)
        {
            parent.Content = child;

            IVisualController controller = child;

            Assume.That(controller.EffectiveVisual.IsDefault(), "child view Visual should be Default");
            Assume.That(child.Visual == Maui.Controls.VisualMarker.Default, "child view Visual should be Default");
        }
Exemplo n.º 7
0
        static void AddExplicitDefaultToLayout(StackLayout parent, View child)
        {
            parent.Children.Add(child);

            IVisualController controller = child;

            Assume.That(controller.EffectiveVisual.IsDefault(), "child view Visual should be Default");
            Assume.That(child.Visual == Maui.Controls.VisualMarker.Default, "child view Visual should be Default");
        }
Exemplo n.º 8
0
        static void AddExplicitMaterialToLayout(StackLayout parent, View child)
        {
            parent.Children.Add(child);

            IVisualController controller = child;

            Assume.That(controller.EffectiveVisual.IsMaterial(), "child view EffectiveVisual should be Material");
            Assume.That(child.Visual == Maui.Controls.VisualMarker.Material, "child view Visual should be Material");
        }
Exemplo n.º 9
0
        static void AddImplicitToMaterialScrollView(ScrollView parent, View child)
        {
            parent.Content = child;

            IVisualController controller = child;

            Assume.That(controller.EffectiveVisual == Maui.Controls.VisualMarker.Material, "child view EffectiveVisual should be Material");
            Assume.That(child.Visual == Maui.Controls.VisualMarker.MatchParent, "child view Visual should be MatchParent");
        }
Exemplo n.º 10
0
        static void AddImplicitToMaterial(StackLayout parent, View child)
        {
            parent.Children.Add(child);

            IVisualController controller = child;


            Assume.That(controller.EffectiveVisual.IsMaterial(), "child view EffectiveVisual should be Material");
            Assume.That(child.Visual == Forms.VisualMarker.MatchParent, "child view Visual should be MatchParent");
        }
Exemplo n.º 11
0
        static View ImplicitDefaultView()
        {
            var view = new View();

            IVisualController controller = view;

            Assume.That(((View)view).Visual == Maui.Controls.VisualMarker.MatchParent, "New view Visual should be MatchParent");

            return(view);
        }
Exemplo n.º 12
0
        static ScrollView ImplicitDefaultScrollView()
        {
            var layout = new ScrollView();

            IVisualController controller = layout;

            Assume.That(controller.EffectiveVisual == Maui.Controls.VisualMarker.Default, "New view EffectiveVisual should be Default");
            Assume.That(layout.Visual == Maui.Controls.VisualMarker.MatchParent, "New view Visual should be MatchParent");

            return(layout);
        }
Exemplo n.º 13
0
        static StackLayout ImplicitDefaultLayout()
        {
            var layout = new StackLayout();

            IVisualController controller = layout;


            Assume.That(controller.EffectiveVisual == Forms.VisualMarker.Default, "New view EffectiveVisual should be Default");
            Assume.That(layout.Visual == Forms.VisualMarker.MatchParent, "New view Visual should be MatchParent");

            return(layout);
        }
Exemplo n.º 14
0
        public void SetParentAndInheritExplicitParentValue()
        {
            var layout             = ExplicitMaterialLayout();
            IVisualController view = ImplicitDefaultView();

            AddImplicitToMaterial(layout, (View)view);

            var target = view.EffectiveVisual;

            Assert.IsTrue(target.IsMaterial(), "EffectiveVisual should be Material");
            Assert.IsTrue(!target.IsDefault(), "EffectiveVisual should be Material");
        }
Exemplo n.º 15
0
        static StackLayout ExplicitDefaultLayout()
        {
            var layout = new StackLayout {
                Visual = Maui.Controls.VisualMarker.Default
            };

            IVisualController controller = layout;

            Assume.That(controller.EffectiveVisual == Maui.Controls.VisualMarker.Default, "Explicit Default view EffectiveVisual should be Default");
            Assume.That(layout.Visual == Maui.Controls.VisualMarker.Default, "Explicit Default view Visual should be Default");
            return(layout);
        }
Exemplo n.º 16
0
        static StackLayout ExplicitMaterialLayout()
        {
            var layout = new StackLayout {
                Visual = Maui.Controls.VisualMarker.Material
            };

            IVisualController controller = layout;

            Assume.That(controller.EffectiveVisual.IsMaterial(), "Explicit RTL view EffectiveVisual should be Material");
            Assume.That(layout.Visual == Maui.Controls.VisualMarker.Material, "Explicit RTL view Visual should be Material");

            return(layout);
        }
Exemplo n.º 17
0
        static ScrollView ExplicitMaterialScrollView()
        {
            var layout = new ScrollView {
                Visual = Maui.Controls.VisualMarker.Material
            };

            IVisualController controller = layout;

            Assume.That(controller.EffectiveVisual == Maui.Controls.VisualMarker.Material, "Explicit RTL view EffectiveVisual should be Material");
            Assume.That(layout.Visual == Maui.Controls.VisualMarker.Material, "Explicit RTL view Visual should be Material");

            return(layout);
        }
Exemplo n.º 18
0
        static View ExplicitDefaultView()
        {
            var view = new View {
                Visual = Maui.Controls.VisualMarker.Default
            };

            IVisualController controller = view;

            Assume.That(controller.EffectiveVisual.IsDefault(), "Explicit Default view EffectiveVisual should be Default");
            Assume.That(((View)view).Visual == Maui.Controls.VisualMarker.Default, "Explicit Default view Visual should be Default");

            return(view);
        }
Exemplo n.º 19
0
        public void SetParentAndMaintainExplicitValue()
        {
            var layout             = ExplicitMaterialLayout();
            IVisualController view = ExplicitDefaultView();

            AddExplicitDefaultToLayout(layout, (View)view);

            var target = view.EffectiveVisual;

            Assert.IsTrue(!target.IsMaterial(), "EffectiveVisual should be Default");
            Assert.IsTrue(target.IsDefault(), "EffectiveVisual should be Default");
            Assert.AreEqual(Maui.Controls.VisualMarker.Default, ((View)view).Visual);
        }
Exemplo n.º 20
0
        public void ListViewVisualIsInheritedByImageInViewCells()
        {
            var lv = new ListView {
                Visual = Maui.Controls.VisualMarker.Material, ItemTemplate = new DataTemplate(() => new ViewCell {
                    View = new Label()
                })
            };

            lv.ItemsSource = Enumerable.Range(0, 10);

            ViewCell          cell   = lv.TemplatedItems[0] as ViewCell;
            IVisualController target = cell.View;

            Assert.AreEqual(Maui.Controls.VisualMarker.Material, target.EffectiveVisual, "ViewCell View is not Material");
        }
Exemplo n.º 21
0
        public void SetParentUsingCtorAndInheritParentValue()
        {
            IVisualController view = ImplicitDefaultView();
            var layout             = new StackLayout {
                Visual = Maui.Controls.VisualMarker.Material, Children = { (View)view }
            };

            Assume.That(((IVisualController)layout).EffectiveVisual.IsMaterial());

            Assume.That(((View)view).Visual == Maui.Controls.VisualMarker.MatchParent);

            var target = view.EffectiveVisual;

            Assert.IsTrue(target.IsMaterial(), "EffectiveVisual should be Material");
            Assert.IsTrue(!target.IsDefault(), "EffectiveVisual should be Material");
            Assert.AreEqual(Maui.Controls.VisualMarker.MatchParent, ((View)view).Visual);
        }
Exemplo n.º 22
0
        public void SetVisualToMatchParentAndInheritParentValue()
        {
            var layout             = ImplicitDefaultLayout();
            var layout2            = ExplicitMaterialLayout();
            IVisualController view = ExplicitDefaultView();

            AddExplicitMaterialToLayout(layout, layout2);

            AddExplicitDefaultToLayout(layout2, (View)view);

            ((View)view).Visual = Maui.Controls.VisualMarker.MatchParent;

            var target = view.EffectiveVisual;

            Assert.IsTrue(target.IsMaterial(), "EffectiveVisual should be Material");
            Assert.IsTrue(!target.IsDefault(), "EffectiveVisual should be Material");
        }
Exemplo n.º 23
0
        public void ScrollViewSetsVisualAndGrandchildMaintainsParentExplicitValue()
        {
            var layout             = ImplicitDefaultScrollView();
            var layout2            = ExplicitMaterialScrollView();
            IVisualController view = ImplicitDefaultView();

            AddExplicitMaterialToScrollView(layout, layout2);
            AddImplicitToMaterialScrollView(layout2, (View)view);

            layout.Visual = Maui.Controls.VisualMarker.Default;

            var target = view.EffectiveVisual;

            Assert.IsTrue(target == Maui.Controls.VisualMarker.Material, "EffectiveVisual should be Material");

            Assert.AreEqual(Maui.Controls.VisualMarker.MatchParent, ((View)view).Visual);
            Assert.AreEqual(Maui.Controls.VisualMarker.Material, layout2.Visual);
        }
Exemplo n.º 24
0
        public void SetGrandparentAndInheritExplicitParentValue()
        {
            var layout             = ExplicitMaterialLayout();
            var layout2            = ExplicitDefaultLayout();
            IVisualController view = ImplicitDefaultView();

            AddExplicitDefaultToLayout(layout, layout2);
            AddImplicitToDefault(layout2, (View)view);

            var target = view.EffectiveVisual;

            Assume.That(((IVisualController)layout).EffectiveVisual.IsMaterial());

            Assume.That(((IVisualController)layout2).EffectiveVisual.IsDefault());

            Assert.IsTrue(!target.IsMaterial(), "EffectiveVisual should be Default");
            Assert.IsTrue(target.IsDefault(), "EffectiveVisual should be Default");
        }
Exemplo n.º 25
0
        public void SetGrandparentUsingCtorAndMaintainExplicitParentValue()
        {
            IVisualController view = ImplicitDefaultView();
            var layout2            = new StackLayout {
                Visual = Forms.VisualMarker.Default, Children = { (View)view }
            };
            var layout = new StackLayout {
                Visual = Forms.VisualMarker.Material, Children = { layout2 }
            };

            var target = view.EffectiveVisual;

            Assume.That(((IVisualController)layout).EffectiveVisual.IsMaterial());

            Assume.That(((IVisualController)layout2).EffectiveVisual.IsDefault());

            Assert.IsTrue(!target.IsMaterial(), "EffectiveVisual should be Default");
            Assert.IsTrue(target.IsDefault(), "EffectiveVisual should be Default");
        }
Exemplo n.º 26
0
        public void GrandparentSetsVisualAndGrandchildMaintainsParentExplicitValue()
        {
            var layout             = ImplicitDefaultLayout();
            var layout2            = ExplicitDefaultLayout();
            IVisualController view = ImplicitDefaultView();

            AddExplicitDefaultToLayout(layout, layout2);
            AddImplicitToDefault(layout2, (View)view);

            layout.Visual = Maui.Controls.VisualMarker.Material;

            var target = view.EffectiveVisual;

            Assert.IsTrue(!target.IsMaterial(), "EffectiveVisual should be Default");
            Assert.IsTrue(target.IsDefault(), "EffectiveVisual should be Default");

            Assert.AreEqual(Maui.Controls.VisualMarker.MatchParent, ((View)view).Visual);
            Assert.AreEqual(Maui.Controls.VisualMarker.Default, layout2.Visual);
        }
Exemplo n.º 27
0
        public void ReParentAndInheritNewParentValue()
        {
            var layout             = ExplicitMaterialLayout();
            IVisualController view = ImplicitDefaultView();
            var layout2            = ExplicitDefaultLayout();

            AddImplicitToMaterial(layout, (View)view);

            ((View)view).Parent = layout2;

            Assume.That(((IVisualController)layout2).EffectiveVisual.IsDefault());

            var target = view.EffectiveVisual;

            Assert.IsTrue(!target.IsMaterial(), "EffectiveVisual should be Default");
            Assert.IsTrue(target.IsDefault(), "EffectiveVisual should be Default");

            Assert.AreEqual(Maui.Controls.VisualMarker.MatchParent, ((View)view).Visual);
        }
Exemplo n.º 28
0
        internal static void SetVisualfromParent(Element child)
        {
            IVisualController controller = child as IVisualController;

            if (controller == null)
            {
                return;
            }

            if (controller.Visual != VisualMarker.MatchParent)
            {
                controller.EffectiveVisual = controller.Visual;
                return;
            }

            if (child.Parent is IVisualController parentView)
            {
                controller.EffectiveVisual = parentView.EffectiveVisual;
            }
        }
Exemplo n.º 29
0
        internal static void PropagateVisual(Element target, Element source)
        {
            IVisualController targetController = target as IVisualController;

            if (targetController == null)
            {
                return;
            }

            if (targetController.Visual != VisualMarker.MatchParent)
            {
                targetController.EffectiveVisual = targetController.Visual;
                return;
            }

            if (source is IVisualController sourceController)
            {
                targetController.EffectiveVisual = sourceController.EffectiveVisual;
            }
        }
Exemplo n.º 30
0
        public void ReParentParentAndInheritNewGrandParentValue()
        {
            var layout             = ExplicitMaterialLayout();
            var layout2            = ImplicitDefaultLayout();
            IVisualController view = ImplicitDefaultView();
            var layout3            = ExplicitDefaultLayout();

            AddImplicitToMaterial(layout, layout2);
            AddImplicitToMaterial(layout2, (View)view);

            layout2.Parent = layout3;

            Assume.That(((IVisualController)layout2).EffectiveVisual.IsDefault());

            Assume.That(view.EffectiveVisual.IsDefault());

            var target = ((View)view).Visual;

            Assert.AreEqual(Maui.Controls.VisualMarker.MatchParent, target);
        }