Changeset 15869 for lang/actionscript

Show
Ignore:
Timestamp:
07/16/08 01:01:10 (4 months ago)
Author:
gyuque
Message:

supported :first-child

Location:
lang/actionscript/ascss/src
Files:
7 modified

Legend:

Unmodified
Added
Removed
  • lang/actionscript/ascss/src/KyotoDemo.as

    r15862 r15869  
    127127                        tx.height = 300; 
    128128                        tx.textColor = 0xffffff; 
     129                        tx.visible = false; 
    129130                        onXMLChanged(null); 
    130131                } 
  • lang/actionscript/ascss/src/css/CSSStyleSelector.as

    r15818 r15869  
    537537                        } 
    538538 
     539                        var result:Boolean, n:IASCSSElement; 
    539540                        if (sel.m_match == CSSSelector.PseudoClass) { 
    540541                                switch (sel.pseudoType()) { 
     
    556557                                                break; 
    557558                                        } 
     559 
     560                                        case CSSSelector.PseudoFirstChild: 
     561                                        { 
     562                                                // first-child matches the first child that is an element 
     563                                                if (e.parentNode && e.parentNode.isElementNode) 
     564                                                { 
     565                                                        result = false; 
     566                                                        n = e.previousSibling; 
     567                                                        while (n && !n.isElementNode) 
     568                                                                n = n.previousSibling; 
     569                                                        if (!n) 
     570                                                                result = true; 
     571/* 
     572                                                        if (!m_collectRulesOnly) 
     573                                                        { 
     574                                                                RenderStyle* childStyle = (m_element == e) ? m_style : e->renderStyle(); 
     575                                                                RenderStyle* parentStyle = (m_element == e) ? m_parentStyle : e->parentNode()->renderStyle(); 
     576                                                                if (parentStyle) 
     577                                                                        parentStyle->setChildrenAffectedByFirstChildRules(); 
     578                                                                if (result && childStyle) 
     579                                                                        childStyle->setFirstChildState(); 
     580                                                        } 
     581*/ 
     582                                                        return result; 
     583                                                } 
     584                                                break; 
     585                                        } 
    558586                                } 
    559587                                return false; 
  • lang/actionscript/ascss/src/cssdom/IASCSSElement.as

    r11978 r15869  
    1111                function get firstChild():IASCSSElement; 
    1212                function get parentNode():IASCSSElement; 
     13                function get previousSibling():IASCSSElement; 
    1314                function getAttributeQ(qn:QualifiedName):String 
    1415                function get document():IASCSSDocument 
    1516                function get hovered():Boolean; 
    1617                function get renderStyle():RenderStyle; 
     18                function get isElementNode():Boolean; 
    1719        } 
    1820} 
  • lang/actionscript/ascss/src/cssdom/XMLElementWrapper.as

    r15862 r15869  
    1212                private var mElement:XML; 
    1313                private var mParent:XMLElementWrapper; 
     14                private var mPreviousSibling:XMLElementWrapper; 
    1415                private var mChildren:Array; 
    1516                private var mClassNames:ClassNames; 
     
    7374*/ 
    7475                        var len:uint = x.children().length(); 
     76                        var prev:XMLElementWrapper = null; 
    7577                        for (var i:uint = 0;i < len;i++) 
    7678                        { 
     
    8183                                var ch_w:XMLElementWrapper = createFor(ch, d); 
    8284                                ch_w.parent = wrapper; 
     85                                ch_w.setPreviousSibling(prev); 
    8386 
    8487                                if (!wrapper.mChildren) 
     
    8689 
    8790                                wrapper.mChildren.push(ch_w); 
     91                                prev = ch_w; 
    8892                        } 
    8993 
     
    129133                } 
    130134 
     135                public function get previousSibling():IASCSSElement 
     136                { 
     137                        return mPreviousSibling; 
     138                } 
     139 
     140                public function setPreviousSibling(s:XMLElementWrapper):void 
     141                { 
     142                        mPreviousSibling = s; 
     143                } 
     144 
    131145                public function get firstChild():IASCSSElement 
    132146                { 
     
    150164                { 
    151165                        return mDoc; 
     166                } 
     167 
     168                public function get isElementNode():Boolean 
     169                { 
     170                        return true; 
    152171                } 
    153172/* 
  • lang/actionscript/ascss/src/kyotodemo/EdgeLayer.as

    r15862 r15869  
    1515                function EdgeLayer() 
    1616                { 
     17                        mouseEnabled = false; 
     18                        mouseChildren = false; 
     19 
    1720                        mOrderAnimation = new OrderAnimationThread(this); 
    1821                        mOrderAnimation.start(); 
  • lang/actionscript/ascss/src/kyotodemo/XMLDocument.as

    r15818 r15869  
    4444                } 
    4545 
    46                 private function checkLineno(x:XML, nest:int = 0, parent:ElementData = null):void 
     46                private function checkLineno(x:XML, nest:int = 0, parent:ElementData = null):ElementData 
    4747                { 
    4848                        var md:ElementData = null; 
     
    6767 
    6868                        var list:XMLList = x.children(); 
     69 
     70                        var chdata:ElementData; 
     71                        var prevsib_chdata:ElementData = null; 
     72 
    6973                        for each(var ch:XML in list) 
    7074                        { 
    71                                 checkLineno(ch, nest + 1, md); 
     75                                chdata = checkLineno(ch, nest + 1, md); 
     76 
     77                                if (chdata) 
     78                                { 
     79                                        chdata.wrapper.setPreviousSibling(prevsib_chdata ? prevsib_chdata.wrapper : null); 
     80                                        prevsib_chdata = chdata; 
     81                                } 
    7282                        } 
    7383 
    7484                        if (md) 
    7585                                md.end_lineno = mLineNo; 
     86 
     87                        return md; 
    7688                } 
    7789