/// <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); }
/// <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); } } }
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; }