コード例 #1
0
        /// <summary>
        /// Selects or deselects a tab.
        /// </summary>
        private void SetSelected(Tab tab, bool selected)
        {
            if (tab == null)
            {
                return;
            }

            tab.IsSelected.Value = selected;
            if (selected)
            {
                // select tab header if it's not selected
                var tabHeader = TabHeaderList.Content.Find <TabHeader>(x => x.ParentTab == tab, false);
                if (tabHeader != null && !tabHeader.IsSelected)
                {
                    TabHeaderList.SelectItem(tabHeader, false);
                }

                // object selected
                _selectedItem      = tab.Item.Value;
                SelectedItem.Value = tab.Item.Value;
                SelectedTab        = tab;
                if (Items != null)
                {
                    Items.SetSelected(_selectedItem);
                }

                // trigger object selected action
                if (TabSelected.HasEntries)
                {
                    TabSelected.Trigger(new TabSelectionActionData {
                        IsSelected = true, TabView = tab, Item = tab.Item.Value
                    });
                }
            }
        }
コード例 #2
0
        /// <summary>
        /// Called when the list of objects has been changed.
        /// </summary>
        private void OnListChanged(object sender, ListChangedEventArgs e)
        {
            // update list of tabs
            if (e.ListChangeAction == ListChangeAction.Clear)
            {
                Clear();
            }
            else if (e.ListChangeAction == ListChangeAction.Add)
            {
                AddRange(e.StartIndex, e.EndIndex);
            }
            else if (e.ListChangeAction == ListChangeAction.Remove)
            {
                RemoveRange(e.StartIndex, e.EndIndex);
            }
            else if (e.ListChangeAction == ListChangeAction.Select)
            {
                SelectTab(e.StartIndex, true);
            }

            if (ListChanged.HasEntries)
            {
                ListChanged.Trigger(new ListChangedActionData {
                    ListChangeAction = e.ListChangeAction, StartIndex = e.StartIndex, EndIndex = e.EndIndex
                });
            }

            LayoutsChanged();
        }
コード例 #3
0
        /// <summary>
        /// Slides the slider to the given position.
        /// </summary>
        private void SetSlideTo(Vector2 mouseScreenPositionIn, bool isEndDrag = false)
        {
            var fillTransform = SliderFillRegion.RectTransform;

            var pos = GetLocalPoint(mouseScreenPositionIn);

            // calculate slide percentage (transform.position.x/y is center of fill area)
            float p = 0;
            float slideAreaLength = fillTransform.rect.width - SliderHandleImageView.Width.Value.Pixels;

            if (Orientation == ElementOrientation.Horizontal)
            {
                p = ((pos.x - fillTransform.localPosition.x + slideAreaLength / 2f) / slideAreaLength).Clamp(0, 1);
            }
            else
            {
                p = ((pos.y - fillTransform.localPosition.y + slideAreaLength / 2f) / slideAreaLength).Clamp(0, 1);
            }

            // set value
            float newValue = (Max - Min) * p + Min;

            if (!SetValueOnDragEnded || (SetValueOnDragEnded && isEndDrag))
            {
                Value.Value = newValue;
                ValueChanged.Trigger();
            }
            else
            {
                UpdateSliderPosition(newValue);
            }
        }
コード例 #4
0
 /// <summary>
 /// Called if a child animation has been completed.
 /// </summary>
 public virtual void ChildAnimationCompleted()
 {
     if (IsAnimationCompleted)
     {
         AnimationCompleted.Trigger();
     }
 }
コード例 #5
0
        /// <summary>
        /// Called when input field value has been updated.
        /// </summary>
        public void InputFieldValueChanged(string value)
        {
            if (!SetValueOnEndEdit)
            {
                Text.Value = InputFieldComponent.text;
            }

            UpdatePlaceholder();
            ValueChanged.Trigger();
        }
コード例 #6
0
        /// <summary>
        /// Called on input field end edit.
        /// </summary>
        public void InputFieldEndEdit(string value)
        {
            if (SetValueOnEndEdit)
            {
                Text.Value = InputFieldComponent.text;
            }

            UpdatePlaceholder();
            EndEdit.Trigger();
        }
コード例 #7
0
        /// <summary>
        /// Called when ToggleValue field changes.
        /// </summary>
        public virtual void ToggleValueChanged()
        {
            // toggle state
            if (IsToggleButton)
            {
                UpdateState();

                ToggleClick.Trigger(ToggleValue.Value);
            }
        }
コード例 #8
0
        /// <summary>
        /// Called when ToggleValue field changes.
        /// </summary>
        public virtual void ToggleValueChanged()
        {
            // toggle state
            if (IsToggleButton)
            {
                if (ToggleValue)
                {
                    SetState("Pressed");
                }
                else
                {
                    SetState(DefaultStateName);
                }

                ToggleClick.Trigger(ToggleValue.Value);
            }
        }
コード例 #9
0
 /// <summary>
 /// Resumes the animation.
 /// </summary>
 public virtual void ResumeAnimation()
 {
     this.ForEachChild <ViewAnimation>(x => x.ResumeAnimation(), false);
     AnimationResumed.Trigger();
 }
コード例 #10
0
 /// <summary>
 /// Pauses the animation.
 /// </summary>
 public virtual void PauseAnimation()
 {
     this.ForEachChild <ViewAnimation>(x => x.PauseAnimation(), false);
     AnimationPaused.Trigger();
 }
コード例 #11
0
 /// <summary>
 /// Stops the animation.
 /// </summary>
 public virtual void StopAnimation()
 {
     this.ForEachChild <ViewAnimation>(x => x.StopAnimation(), false);
     AnimationStopped.Trigger();
 }
コード例 #12
0
 /// <summary>
 /// Non-Propagating input event handler. Called on a view when it blurs.
 /// </summary>
 public virtual void HandleBlur()
 {
     OnBlur.Trigger();
 }
コード例 #13
0
 /// <summary>
 /// Non-Propagating input event handler. Called on a view when it focuses.
 /// </summary>
 public virtual void HandleFocus()
 {
     OnFocus.Trigger();
 }