コード例 #1
0
ファイル: Stylelist.cs プロジェクト: francisrc/FileExplorer
        public void PrintItems()
        {
            for (Int32 i = 0; i < Count; i++)
            {
                CssStyleType       c     = this[i];
                CssHeaderStyleType style = new CssHeaderStyleType(c.styleTagName);
                style.PrintItems();

                for (Int32 j = 0; j < c.styles.Count; j++)
                {
                    string output = String.Format("[key: {0} = {1}]",
                                                  c.styles[j].key, c.styles[j].value);
                    Console.WriteLine(output);
                }
                Console.WriteLine("");
            }
        }
コード例 #2
0
ファイル: Stylelist.cs プロジェクト: francisrc/FileExplorer
        public CssHeaderStyleType(string header)
        {
            elements       = ElementType.Unknown;
            familyTag      = false;
            noOtherClassID = false;
            tagID          = "";
            tagClass       = "";

            string k = header;

            char lastChar = k[k.Length - 1];

            switch (lastChar)
            {
            case '+':
                familyTag = true;
                k         = k.Substring(0, k.Length - 1);
                break;

            case '>':
                noOtherClassID = true;
                k = k.Substring(0, k.Length - 1);
                break;
            }

            if (k.IndexOf('#') > -1)
            {
                tagID = Utils.ExtractAfter(ref k, '#');
            }
            if (k.IndexOf('.') > -1)
            {
                tagClass = Utils.ExtractAfter(ref k, '.');
            }
            if (k.IndexOf(':') > -1)
            {
                elements = CssHeaderStyleType.ElementsToCssElementType(
                    Utils.ExtractAfter(ref k, ':'));
            }
            tagName = k;
            if (tagName.Trim() == "")
            {
                tagName = UnspecifiedTagName;
            }
        }
コード例 #3
0
ファイル: Stylelist.cs プロジェクト: francisrc/FileExplorer
        public string Css()
        {
            string retVal = "";

            for (Int32 i = 0; i < Count; i++)
            {
                CssStyleType       c     = this[i];
                CssHeaderStyleType style = new CssHeaderStyleType(c.styleTagName);
                retVal += style.Css() + "{ ";

                for (Int32 j = 0; j < c.styles.Count; j++)
                {
                    retVal += c.styles[j].key + ":" + c.styles[j].value + ";";
                }

                retVal += " }" + Defines.lineBreak;
            }
            return(retVal);
        }
コード例 #4
0
ファイル: Utils.cs プロジェクト: sinelaw/HtmlTextBlock
 private static bool matchHeader(HtmlTag input, CssHeaderStyleType chs)
 {
     return (((chs.tagName == CssHeaderStyleType.UnspecifiedTagName) ||
               (input.Name == chs.tagName)) &&
               ((chs.tagClass == "") || (chs.tagClass == input["class"])) &&
               ((chs.tagID == "") || (chs.tagID == input["id"])));
 }
コード例 #5
0
ファイル: Utils.cs プロジェクト: sinelaw/HtmlTextBlock
 private static bool haveOtherClassID(HtmlTag input, CssHeaderStyleType chs)
 {
     bool retVal = false;
     if ((chs.tagClass != "") && (input["class"] != ""))
         retVal = (chs.tagClass == input["class"]);
     if ((chs.tagID != "") && (input["id"] != ""))
         retVal = (chs.tagID == input["id"]);
     return retVal;
 }
コード例 #6
0
ファイル: Utils.cs プロジェクト: sinelaw/HtmlTextBlock
        //        /// <summary>
        //        /// Loop and check if currenTag matched the list ParentTagNames
        //        /// </summary>
        //        internal static bool MatchParentTags(HtmlTag currentTag, ArrayList parentTagNames)
        //        {
        //            if (parentTagNames == null) return false;
        //            
        //            HtmlTag tempTag;
        //            for (Int32 i = parentTagNames.Count -1; i >= 0; i--)
        //                if (!(Utils.MatchParentTag(currentTag, (string)parentTagNames[i], out tempTag)))
        //                    return false;
        //            
        //            return true;
        //        }
        /// <summary>
        /// Check if currentTag matches the header
        /// </summary>
        internal static bool MatchCurrentTag(HtmlTag currentTag, string header)
        {
            CssHeaderStyleType chs = new CssHeaderStyleType(header);
            bool retVal = true;//((chs.tagClass == "") && (chs.tagID == ""));

            retVal = retVal && ((chs.tagClass == "") ||
                                ((currentTag.Contains("class")) &&
                                 (chs.tagClass == currentTag["class"])));
            retVal = retVal && ((chs.tagID == "") ||
                                ((currentTag.Contains("id")) &&
                                                     (chs.tagID == currentTag["id"])));

            return retVal;
        }
コード例 #7
0
ファイル: Stylelist.cs プロジェクト: sinelaw/HtmlTextBlock
        public void PrintItems()
        {
            for (Int32 i = 0; i < Count; i++)
            {
                CssStyleType c = this[i];
                CssHeaderStyleType style = new CssHeaderStyleType(c.styleTagName);
                style.PrintItems();

                for (Int32 j = 0; j < c.styles.Count; j++)
                {
                    string output = String.Format("[key: {0} = {1}]",
                                                  c.styles[j].key, c.styles[j].value);
                    Console.WriteLine(output);
                }
                Console.WriteLine("");
            }
        }
コード例 #8
0
ファイル: Stylelist.cs プロジェクト: sinelaw/HtmlTextBlock
        public string Css()
        {
            string retVal = "";
            for (Int32 i = 0; i < Count; i++)
            {
                CssStyleType c = this[i];
                CssHeaderStyleType style = new CssHeaderStyleType(c.styleTagName);
                retVal += style.Css() + "{ ";

                for (Int32 j = 0; j < c.styles.Count; j++)
                    retVal += c.styles[j].key + ":" + c.styles[j].value + ";";

                retVal += " }" + Defines.lineBreak;
            }
            return retVal;
        }