コード例 #1
0
ファイル: Widget.cs プロジェクト: Nomad1/NewWidgets
        /// <summary>
        /// Initializes a new instance of the <see cref="T:NewWidgets.Widgets.Widget"/> class.
        /// </summary>
        /// <param name="style">Style.</param>
        protected Widget(WidgetStyleSheet style = default(WidgetStyleSheet))
            : base(null)
        {
            if (style.IsEmpty)
            {
                style = DefaultStyle;
            }
            Size = style.Get(WidgetParameterIndex.Size, new Vector2(0, 0));

            m_styleType = WidgetStyleType.Normal;

            m_styles = new WidgetStyleSheet[(int)WidgetStyleType.Max];

            LoadStyle(WidgetStyleType.Normal, style);
        }
コード例 #2
0
ファイル: Widget.cs プロジェクト: Nomad1/NewWidgets
        /// <summary>
        /// Loads the style and possible sub-styles
        /// </summary>
        /// <param name="styleType">Style type.</param>
        /// <param name="style">Style.</param>
        public void LoadStyle(WidgetStyleType styleType, WidgetStyleSheet style)
        {
            if (style.IsEmpty)
            {
                return;
            }

            m_styles[(int)styleType] = style;

            // Hovered can be only subset of Normal, Disabled, Selected or SelectedDisabled
            if (styleType == WidgetStyleType.Normal || styleType == WidgetStyleType.Disabled || styleType == WidgetStyleType.Selected || styleType == WidgetStyleType.SelectedDisabled)
            {
                var hoveredStyleReference = style.Get(WidgetParameterIndex.HoveredStyle, default(WidgetStyleSheet));

                if (!hoveredStyleReference.IsEmpty)
                {
                    WidgetStyleType targetStyleType = 0;
                    switch (styleType)
                    {
                    case WidgetStyleType.Normal:
                        targetStyleType = WidgetStyleType.Hovered;
                        break;

                    case WidgetStyleType.Selected:
                        targetStyleType = WidgetStyleType.SelectedHovered;
                        break;

                    case WidgetStyleType.Disabled:
                        if (style.Name == m_styles[(int)WidgetStyleType.Normal].Name)
                        {
                            targetStyleType = 0;     // workaround to prevent using hovered style when disabled is set to same style as normal
                        }
                        else
                        {
                            targetStyleType = WidgetStyleType.DisabledHovered;
                        }
                        break;

                    case WidgetStyleType.SelectedDisabled:
                        targetStyleType = WidgetStyleType.SelectedDisabledHovered;
                        break;
                    }

                    if (targetStyleType != 0)
                    {
                        LoadStyle(targetStyleType, hoveredStyleReference);
                    }
                }
            }

            // Disabled can be only subset of Normal or Selected
            if (styleType == WidgetStyleType.Normal || styleType == WidgetStyleType.Selected)
            {
                var disabledStyleReference = style.Get(WidgetParameterIndex.DisabledStyle, default(WidgetStyleSheet));

                if (!disabledStyleReference.IsEmpty)
                {
                    WidgetStyleType targetStyleType = 0;
                    switch (styleType)
                    {
                    case WidgetStyleType.Normal:
                        targetStyleType = WidgetStyleType.Disabled;
                        break;

                    case WidgetStyleType.Selected:
                        targetStyleType = WidgetStyleType.SelectedDisabled;
                        break;
                    }

                    if (targetStyleType != 0)
                    {
                        LoadStyle(targetStyleType, disabledStyleReference);
                    }
                }
            }

            // Selected can be only subset of Normal
            if (styleType == WidgetStyleType.Normal)
            {
                var selectedStyleReference = style.Get(WidgetParameterIndex.SelectedStyle, default(WidgetStyleSheet));

                if (!selectedStyleReference.IsEmpty)
                {
                    LoadStyle(WidgetStyleType.Selected, selectedStyleReference);
                }

                var selectedHoveredStyleReference = style.Get(WidgetParameterIndex.SelectedHoveredStyle, default(WidgetStyleSheet));

                if (!selectedHoveredStyleReference.IsEmpty)
                {
                    LoadStyle(WidgetStyleType.SelectedHovered, selectedHoveredStyleReference);
                }
            }
        }
コード例 #3
0
        public WidgetScrollView(WidgetStyleSheet style = default(WidgetStyleSheet))
            : base(style.IsEmpty ? DefaultStyle : style)
        {
            m_contentView        = new WidgetPanel(WidgetPanel.DefaultStyle);
            m_contentView.Parent = this;
            m_horizontalScroll   = WidgetScrollType.Normal | WidgetScrollType.Visible | WidgetScrollType.AutoHide;
            m_verticalScroll     = WidgetScrollType.Normal | WidgetScrollType.Visible | WidgetScrollType.AutoHide;

            m_horizontalScrollBar        = new WidgetBackground(GetProperty(WidgetParameterIndex.HorizontalScrollStyle, DefaultStyle.Get(WidgetParameterIndex.HorizontalScrollStyle, WidgetBackground.DefaultStyle)));
            m_horizontalScrollBar.Parent = this;

            m_horizontalScrollBarIndicator        = new WidgetBackground(GetProperty(WidgetParameterIndex.HorizontalIndicatorStyle, DefaultStyle.Get(WidgetParameterIndex.HorizontalIndicatorStyle, WidgetBackground.DefaultStyle)));
            m_horizontalScrollBarIndicator.Parent = this;

            m_verticalScrollBar        = new WidgetBackground(GetProperty(WidgetParameterIndex.VerticalcrollStyle, DefaultStyle.Get(WidgetParameterIndex.VerticalcrollStyle, WidgetBackground.DefaultStyle)));
            m_verticalScrollBar.Parent = this;

            m_verticalScrollBarIndicator        = new WidgetBackground(GetProperty(WidgetParameterIndex.VerticalIndicatorStyle, DefaultStyle.Get(WidgetParameterIndex.VerticalIndicatorStyle, WidgetBackground.DefaultStyle)));
            m_verticalScrollBarIndicator.Parent = this;

            ClipContents = true;

            m_needLayout = true;
        }