Ejemplo n.º 1
0
        public LightweightPlatform(EvasObject parent)
        {
            Forms.NativeParent    = parent;
            _defaultPlatformColor = Device.Idiom == TargetIdiom.Phone ? EColor.White : EColor.Transparent;
            _viewStack            = new Native.Canvas(parent)
            {
                BackgroundColor = _defaultPlatformColor,
            };
            _viewStack.SetAlignment(-1, -1);
            _viewStack.SetWeight(1.0, 1.0);
            _viewStack.LayoutUpdated += OnLayout;
            _viewStack.Show();

            if (Forms.UseMessagingCenter)
            {
                _popupManager = new PopupManager(this);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Composes the structure of all the necessary widgets.
        /// </summary>
        void ConfigureLayout()
        {
            _drawer.SetContent(null, true);
            _drawer.Hide();

            _splitPane.SetPartContent("left", null, true);
            _splitPane.SetPartContent("right", null, true);
            _splitPane.Hide();

            UnPackAll();

            // the structure for split mode and for popover mode looks differently
            if (IsSplit)
            {
                _splitPane.SetPartContent("left", _masterCanvas, true);
                _splitPane.SetPartContent("right", _detailCanvas, true);
                _splitPane.Show();
                _mainWidget = _splitPane;
                PackEnd(_splitPane);

                IsPresented = true;
                UpdateIsPresentChangeable?.Invoke(this, new UpdateIsPresentChangeableEventArgs(false));
                UpdateFocusPolicy(true);
            }
            else
            {
                _drawer.SetContent(_masterCanvas, true);
                _drawer.Show();
                _mainWidget = _detailCanvas;
                PackEnd(_detailCanvas);
                PackEnd(_drawer);

                _drawer.IsOpen = IsPresented;
                UpdateIsPresentChangeable?.Invoke(this, new UpdateIsPresentChangeableEventArgs(true));
                UpdateFocusPolicy();
            }

            _masterCanvas.Show();
            _detailCanvas.Show();

            // even though child was changed, Layout callback was not called, so i manually call layout function.
            // Layout callback was filter out when geometry was not changed in Native.Box
            UpdateChildCanvasGeometry();
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Composes the structure of all the necessary widgets.
        /// </summary>
        void ConfigureLayout()
        {
            _drawer.SetContent(null, true);
            _drawer.Hide();

            _splitPane.SetPartContent("left", null, true);
            _splitPane.SetPartContent("right", null, true);
            _splitPane.Hide();

            UnPackAll();

            // the structure for split mode and for popover mode looks differently
            if (_internalMasterBehavior == MasterBehavior.Split)
            {
                _splitPane.SetPartContent("left", _masterCanvas, true);
                _splitPane.SetPartContent("right", _detailCanvas, true);
                _splitPane.Show();
                _mainWidget = _splitPane;
                PackEnd(_splitPane);

                IsPresented = true;
                UpdateIsPresentChangeable?.Invoke(this, new UpdateIsPresentChangeableEventArgs {
                    CanChange = false
                });
            }
            else
            {
                _drawer.SetContent(_masterCanvas, true);
                _drawer.Show();
                _mainWidget = _detailCanvas;
                PackEnd(_detailCanvas);
                PackEnd(_drawer);

                _drawer.IsOpen = IsPresented;
                UpdateIsPresentChangeable?.Invoke(this, new UpdateIsPresentChangeableEventArgs {
                    CanChange = false
                });
            }

            _masterCanvas.Show();
            _detailCanvas.Show();
        }