예제 #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="key"></param>
        /// <returns></returns>
        public Style GetQuickStyle(StandardStyles key)
        {
            string name = key.ToName();

            var style = Root.Elements(Namespace + "QuickStyleDef")
                        .Where(e => e.Attribute("name").Value == name)
                        .Select(p => new Style(new QuickStyleDef(p)))
                        .FirstOrDefault();

            if (style == null)
            {
                var quick = key.GetDefaults();

                var sibling = Root.Elements(Namespace + "QuickStyleDef").LastOrDefault();
                if (sibling == null)
                {
                    quick.Index = 0;
                    Root.AddFirst(quick.ToElement(Namespace));
                }
                else
                {
                    quick.Index = int.Parse(sibling.Attribute("index").Value) + 1;
                    sibling.AddAfterSelf(quick.ToElement(Namespace));
                }

                style = new Style(quick);
            }

            return(style);
        }
예제 #2
0
        private int MakeQuickStyle(Page page, StandardStyles standard)
        {
            var quick = standard.GetDefaults();

            var styles = page.GetQuickStyles();
            var style  = styles.FirstOrDefault(s => s.Name == quick.Name);

            if (style != null)
            {
                return(style.Index);
            }

            quick.Index = styles.Max(s => s.Index) + 1;

            page.AddQuickStyleDef(quick.ToElement(ns));

            return(quick.Index);
        }