Ejemplo n.º 1
0
        /*public override bool HasUnautosavedChanges {
         *      get {
         *              return false;
         *      }
         * }
         *
         * public override bool IsDocumentEdited {
         *      get {
         *              return false;
         *      }
         * }*/

        partial void BackForwardAction(NSSegmentedControl sender)
        {
            var selected = sender.SelectedSegment;

            if (selected == 0)
            {
                LoadNote(history[--currentHistoryPosition], false);
            }
            else
            {
                LoadNote(history[++currentHistoryPosition], false);
            }

            sender.SetSelected(false, 0);
            sender.SetSelected(false, 1);
            UpdateBackForwardSensitivity();
        }
Ejemplo n.º 2
0
        void UpdateToolbarSegmentedControl()
        {
            var childViewControllers = ChildViewControllers;

            ToolbarSegmentedControl.Hidden       = childViewControllers.Length < 2;
            ToolbarSegmentedControl.SegmentCount = childViewControllers.Length;

            for (var i = 0; i < childViewControllers.Length; i++)
            {
                var childViewController = childViewControllers [i];
                var item = GetTabViewItem(childViewController);

                if (item.Image != null)
                {
                    ToolbarSegmentedControl.SetImage(item.Image, i);
                }
                else
                {
                    ToolbarSegmentedControl.SetLabel(item.Label, i);
                }

                if (item.ToolTip != null)
                {
                    ToolbarSegmentedControl.Cell.SetToolTip(item.ToolTip, i);
                }

                if (TabView?.Selected?.ViewController == childViewController)
                {
                    ToolbarSegmentedControl.SetSelected(true, i);
                }
            }

            ToolbarSegmentedControl.SizeToFit();
            var controlSize = ToolbarSegmentedControl.Frame.Size;

            var toolbarItems = View?.Window?.Toolbar?.VisibleItems;

            for (var i = 0; toolbarItems != null && i < toolbarItems.Length; i++)
            {
                var item = toolbarItems [i];
                if (item.View == ToolbarSegmentedControl)
                {
                    item.MinSize = controlSize;
                    item.MaxSize = controlSize;
                }
            }
        }
Ejemplo n.º 3
0
        protected override IView OnConvertToView(FigmaNode currentNode, ViewNode parentNode, ViewRenderService rendererService)
        {
            var segmentedControl = new NSSegmentedControl();

            var frame = (FigmaFrame)currentNode;

            frame.TryGetNativeControlType(out var controlType);
            frame.TryGetNativeControlVariant(out var controlVariant);

            segmentedControl.ControlSize = ViewHelper.GetNSControlSize(controlVariant);
            segmentedControl.Font        = ViewHelper.GetNSFont(controlVariant);

            FigmaNode items = frame.FirstChild(s => s.name == ComponentString.ITEMS);

            if (items != null)
            {
                segmentedControl.SegmentCount = items.GetChildren(t => t.visible).Count();

                if (controlType == FigmaControlType.SegmentedControlRoundRect)
                {
                    segmentedControl.SegmentStyle = NSSegmentStyle.RoundRect;
                }
                else
                {
                    segmentedControl.SegmentStyle = NSSegmentStyle.Rounded;
                }

                int i = 0;
                foreach (FigmaNode button in items.GetChildren(t => t.visible))
                {
                    FigmaNode state = button.FirstChild(s => s.visible &&
                                                        s.name.In(ComponentString.STATE_REGULAR, ComponentString.STATE_SELECTED));

                    if (state == null)
                    {
                        continue;
                    }

                    var text = (FigmaText)state.FirstChild(s => s.name == ComponentString.TITLE);
                    segmentedControl.SetLabel(rendererService.GetTranslatedText(text), i);
                    segmentedControl.SetSelected(selected: state.name == ComponentString.STATE_SELECTED, i);

                    i++;
                }

                bool hasSelection = (segmentedControl.SelectedSegment > -1);

                // Use tab-like behaviour if there is a selected item. Otherwise use the button-like behaviour
                if (hasSelection)
                {
                    segmentedControl.TrackingMode        = NSSegmentSwitchTracking.SelectOne;
                    segmentedControl.SegmentDistribution = NSSegmentDistribution.Fill;
                }
                else
                {
                    segmentedControl.TrackingMode        = NSSegmentSwitchTracking.Momentary;
                    segmentedControl.SegmentDistribution = NSSegmentDistribution.FillEqually;
                }
            }

            return(new View(segmentedControl));
        }