private StylesheetTreeNode AddNodeRecursive(PropertySettingGroup propertySettings, IElementSelector selector, StylesheetTreeNodeCollection parentNodeCollection)
        {
            if (selector.Key == 0)
            {
                return(null);
            }

            StylesheetTreeNode node = parentNodeCollection.FindSelectorNode(selector.Key);

            if (node == null)
            {
                node = new StylesheetTreeNode(this.ownerNode.OwnerTree, selector);
                parentNodeCollection.RegisterSelectorNode(node);
            }

            if (selector.ChildSelector != null)
            {
                this.AddNodeRecursive(propertySettings, selector.ChildSelector, node.Nodes);
            }
            else
            {
                node.PropertySettingGroups.Add(propertySettings);
            }

            return(node);
        }
Ejemplo n.º 2
0
 private static void ApplyGroupSettingsOnElement(PropertySettingGroup group, RadElement element)
 {
     foreach (IPropertySetting setting in group.PropertySettings.EnumeratePropertySettingsForElement(element))
     {
         setting.ApplyValue(element);
     }
 }
Ejemplo n.º 3
0
        /// <summary>
        /// Adds tree nodes from the PropertySettingGroups in the stylesheet. Root nodes are grouped by groups' Selector Key.
        /// Child nodes correspond to child selectors.
        /// </summary>
        /// <param name="styleSheet"></param>
        public void CreateNodesFromStyle(StyleSheet styleSheet)
        {
            for (int i = 0; i < styleSheet.PropertySettingGroups.Count; i++)
            {
                PropertySettingGroup group = styleSheet.PropertySettingGroups[i];
                group.SetIsFromStyleSheet();
                for (int k = 0; k < group.Selectors.Count; k++)
                {
                    IElementSelector selector = group.Selectors[k];

                    this.RootNode.Nodes.AddElementSelector(group, selector);
                }
            }
        }
Ejemplo n.º 4
0
        private void ApplyPropertySettingsOnAttachedElement(RadElement element, bool onPropertyChanged)
        {
            if (this.propertySettingGroups == null)
            {
                return;
            }

            List <PropertySettingGroup> groupsWithConditions    = new List <PropertySettingGroup>();
            List <PropertySettingGroup> groupsWithoutConditions = new List <PropertySettingGroup>();

            for (int i = 0; i < this.propertySettingGroups.Count; i++)
            {
                PropertySettingGroup group = this.propertySettingGroups[i];
                if (!group.Selectors[0].HasApplyCondition)
                {
                    groupsWithoutConditions.Add(group);
                }
                else if (group.Selectors[0].CanSelect(element))
                {
                    groupsWithConditions.Add(group);
                }
            }

            //check whether we need to apply the groups without condition
            if (!onPropertyChanged || groupsWithConditions.Count == 0)
            {
                foreach (PropertySettingGroup group in groupsWithoutConditions)
                {
                    ApplyGroupSettingsOnElement(group, element);
                }
            }

            //groups with condition are always applicable
            foreach (PropertySettingGroup group in groupsWithConditions)
            {
                ApplyGroupSettingsOnElement(group, element);
            }
        }
        public StylesheetTreeNode AddElementSelector(PropertySettingGroup propertySettings, IElementSelector selector)
        {
            StylesheetTreeNode node = this.AddNodeRecursive(propertySettings, selector, this);

            return(node);
        }
Ejemplo n.º 6
0
        private void LoadControlDefaultTheme()
        {
            Theme      theme      = new Theme("ControlDefault");
            StyleGroup styleGroup = new StyleGroup();

            styleGroup.Registrations.Add(new StyleRegistration());
            styleGroup.Registrations[0].RegistrationType = "ElementTypeControlType";
            styleGroup.Registrations[0].ElementType      = "Telerik.WinControls.RootRadElement";
            styleGroup.Registrations[0].ControlType      = "Telerik.WinControls.UI.RadCarousel";
            theme.StyleGroups.Add(styleGroup);
            styleGroup.PropertySettingGroups.Add(new PropertySettingGroup()
            {
                Selector         = new ElementSelector(ElementSelectorTypes.ClassSelector, "PreviousButton"),
                PropertySettings =
                {
                    new PropertySetting("BackColor",    (object)Color.Transparent),
                    new PropertySetting("DisplayStyle", (object)DisplayStyle.Image),
                    new PropertySetting("Image",        (object)Telerik\u002EWinControls\u002EUI\u002EResources.previousButton)
                }
            });
            styleGroup.PropertySettingGroups.Add(new PropertySettingGroup()
            {
                Selector         = new ElementSelector(ElementSelectorTypes.ClassSelector, "NextButton"),
                PropertySettings =
                {
                    new PropertySetting("BackColor",    (object)Color.Transparent),
                    new PropertySetting("DisplayStyle", (object)DisplayStyle.Image),
                    new PropertySetting("Image",        (object)Telerik\u002EWinControls\u002EUI\u002EResources.nextButton)
                }
            });
            PropertySettingGroup propertySettingGroup1 = new PropertySettingGroup()
            {
                Selector = new ElementSelector(ElementSelectorTypes.ClassSelector, "NextButton")
            };

            propertySettingGroup1.Selector.ChildSelector = new ElementSelector(ElementSelectorTypes.ClassSelector, "ButtonFill");
            propertySettingGroup1.PropertySettings.Add(new PropertySetting("Visibility", (object)ElementVisibility.Hidden));
            styleGroup.PropertySettingGroups.Add(propertySettingGroup1);
            PropertySettingGroup propertySettingGroup2 = new PropertySettingGroup()
            {
                Selector = new ElementSelector(ElementSelectorTypes.ClassSelector, "NextButton")
            };

            propertySettingGroup2.Selector.ChildSelector = new ElementSelector(ElementSelectorTypes.ClassSelector, "ButtonBorder");
            propertySettingGroup2.PropertySettings.Add(new PropertySetting("Visibility", (object)ElementVisibility.Collapsed));
            styleGroup.PropertySettingGroups.Add(propertySettingGroup2);
            PropertySettingGroup propertySettingGroup3 = new PropertySettingGroup()
            {
                Selector = new ElementSelector(ElementSelectorTypes.ClassSelector, "PreviousButton")
            };

            propertySettingGroup3.Selector.ChildSelector = new ElementSelector(ElementSelectorTypes.ClassSelector, "ButtonFill");
            propertySettingGroup3.PropertySettings.Add(new PropertySetting("Visibility", (object)ElementVisibility.Hidden));
            styleGroup.PropertySettingGroups.Add(propertySettingGroup3);
            PropertySettingGroup propertySettingGroup4 = new PropertySettingGroup()
            {
                Selector = new ElementSelector(ElementSelectorTypes.ClassSelector, "PreviousButton")
            };

            propertySettingGroup4.Selector.ChildSelector = new ElementSelector(ElementSelectorTypes.ClassSelector, "ButtonBorder");
            propertySettingGroup4.PropertySettings.Add(new PropertySetting("Visibility", (object)ElementVisibility.Collapsed));
            styleGroup.PropertySettingGroups.Add(propertySettingGroup4);
            PropertySettingGroup propertySettingGroup5 = new PropertySettingGroup()
            {
                Selector = new ElementSelector(ElementSelectorTypes.VisualStateSelector, "CarouselGenericItem")
            };

            propertySettingGroup5.Selector.ChildSelector = new ElementSelector(ElementSelectorTypes.TypeSelector, "Telerik.WinControls.Primitives.TextPrimitive");
            propertySettingGroup5.PropertySettings.Add(new PropertySetting("ForeColor", (object)Color.Transparent));
            styleGroup.PropertySettingGroups.Add(propertySettingGroup5);
            PropertySettingGroup propertySettingGroup6 = new PropertySettingGroup()
            {
                Selector = new ElementSelector(ElementSelectorTypes.VisualStateSelector, "CarouselGenericItem")
            };

            propertySettingGroup6.Selector.ChildSelector = new ElementSelector(ElementSelectorTypes.TypeSelector, "Telerik.WinControls.Primitives.BorderPrimitive");
            propertySettingGroup6.PropertySettings.Add(new PropertySetting("ForeColor", (object)Color.Transparent));
            propertySettingGroup6.PropertySettings.Add(new PropertySetting("GradientStyle", (object)GradientStyles.Solid));
            propertySettingGroup6.PropertySettings.Add(new PropertySetting("BoxSyle", (object)BorderBoxStyle.SingleBorder));
            styleGroup.PropertySettingGroups.Add(propertySettingGroup6);
            PropertySettingGroup propertySettingGroup7 = new PropertySettingGroup()
            {
                Selector = new ElementSelector(ElementSelectorTypes.VisualStateSelector, "CarouselGenericItem")
            };

            propertySettingGroup7.Selector.ChildSelector = new ElementSelector(ElementSelectorTypes.TypeSelector, "Telerik.WinControls.Primitives.FillPrimitive");
            propertySettingGroup7.PropertySettings.Add(new PropertySetting("BackColor", (object)Color.Transparent));
            propertySettingGroup7.PropertySettings.Add(new PropertySetting("ForeColor2", (object)Color.Transparent));
            propertySettingGroup7.PropertySettings.Add(new PropertySetting("GradientStyle", (object)GradientStyles.Radial));
            propertySettingGroup7.PropertySettings.Add(new PropertySetting("ZIndex", (object)10));
            propertySettingGroup7.PropertySettings.Add(new PropertySetting("Visibility", (object)ElementVisibility.Collapsed));
            styleGroup.PropertySettingGroups.Add(propertySettingGroup7);
            PropertySettingGroup propertySettingGroup8 = new PropertySettingGroup()
            {
                Selector = new ElementSelector(ElementSelectorTypes.VisualStateSelector, "CarouselGenericItem.MouseOver")
            };

            propertySettingGroup8.Selector.ChildSelector = new ElementSelector(ElementSelectorTypes.TypeSelector, "Telerik.WinControls.Primitives.FillPrimitive");
            propertySettingGroup8.PropertySettings.Add(new PropertySetting("Visibility", (object)ElementVisibility.Visible));
            propertySettingGroup8.PropertySettings.Add(new PropertySetting()
            {
                Name     = "BackColor",
                EndValue = (object)Color.Transparent
            });
            propertySettingGroup8.PropertySettings.Add(new PropertySetting()
            {
                Name     = "BackColor2",
                EndValue = (object)Color.FromArgb(120, (int)byte.MaxValue, (int)byte.MaxValue, (int)byte.MaxValue)
            });
            propertySettingGroup8.PropertySettings.Add(new PropertySetting("GradientStyle", (object)GradientStyles.Radial));
            propertySettingGroup8.PropertySettings.Add(new PropertySetting("GradientAngle", (object)90f));
            propertySettingGroup8.PropertySettings.Add(new PropertySetting("GradientPercentage", (object)0.5f));
            propertySettingGroup8.PropertySettings.Add(new PropertySetting("GradientPercentage2", (object)0.666f));
            propertySettingGroup8.PropertySettings.Add(new PropertySetting("NumberOfColors", (object)2));
            styleGroup.PropertySettingGroups.Add(propertySettingGroup8);
            ThemeRepository.Add(theme);
        }