Changeset 10854 for lang/actionscript
- Timestamp:
- 05/01/08 03:17:13 (5 years ago)
- Location:
- lang/actionscript/ascss/src
- Files:
-
- 1 added
- 6 modified
-
SelectTest.as (modified) (5 diffs)
-
SelectTest.swf (modified) (previous)
-
css/CSSRuleSet.as (modified) (1 diff)
-
css/CSSSelector.as (modified) (1 diff)
-
css/CSSStyleSelector.as (modified) (4 diffs)
-
cssdom/IASCSSElement.as (modified) (1 diff)
-
cssdom/XMLElementWrapper.as (added)
Legend:
- Unmodified
- Added
- Removed
-
lang/actionscript/ascss/src/SelectTest.as
r10847 r10854 4 4 import flash.text.*; 5 5 import css.*; 6 import cssdom.*; 6 7 public class SelectTest extends Sprite 7 8 { … … 9 10 private static var theInstance:SelectTest; 10 11 12 private var mDefaultFmt:TextFormat = new TextFormat(); 13 private var mOKFmt:TextFormat = new TextFormat(); 14 private var mNGFmt:TextFormat = new TextFormat(); 11 15 12 16 public static const TestCSS:String = 13 '. foot #creditem {\n'+17 '.index em {\n'+ 14 18 ' color: #940;\n'+ 15 19 '}'; 16 20 21 public static const TestDoc:XML = 22 <body class="index"> 23 <em>foobar</em> 24 </body> 25 ; 26 17 27 function SelectTest() 18 28 { 29 mDefaultFmt.color = 0xffffff; 30 mDefaultFmt.font = "Arial"; 31 mOKFmt.color = 0x55ff22; 32 mNGFmt.color = 0xff6622; 33 19 34 mTextOut = new TextField(); 20 mTextOut. textColor = 0xffffff;35 mTextOut.defaultTextFormat = mDefaultFmt; 21 36 addChild(mTextOut); 22 37 mTextOut.width = 480; … … 27 42 } 28 43 44 45 29 46 private function start():void 30 47 { 31 48 puts("--------------"); 32 49 puts(TestCSS); 50 puts("--------------"); 51 puts(TestDoc); 33 52 puts("--------------"); 34 53 var ascss:ASCSS = new ASCSS(TestCSS); … … 41 60 doc.appendStyleSheet(sheet); 42 61 puts("--------------"); 62 63 var wrp:XMLElementWrapper = XMLElementWrapper.createFor(TestDoc); 64 putsAssert("<body> has class", wrp.hasClass); 65 putsAssert("<body> DOES NOT have id", !wrp.hasId); 66 putsAssert("<body> has firstChild", wrp.firstChild != null); 67 putsAssert("Parent of <body>'s firstChild is <body>", wrp.firstChild.parentNode == wrp); 68 putsAssert("Local name of <body>'s firstChild is 'em'", wrp.firstChild.localName == 'em'); 69 puts("--------------"); 70 puts("initializing CSSStyleSelector for <em>"); 71 72 var computeTarget:IASCSSElement = wrp.firstChild; 43 73 var sel:CSSStyleSelector = doc.createStyleSelector(); 74 sel.initElementAndPseudoState(computeTarget); 75 sel.initForStyleResolve(computeTarget, null); 76 77 puts("--------------"); 78 var authorStyle:CSSRuleSet = sel.authorStyle; 79 putsAssert("sel.authorStyle != null; Our CSS is set correctly", authorStyle != null); 80 putsAssert("ruleset.getTagRules('em') != null; 'em' is set to the map", authorStyle.getTagRules('em') != null); 81 82 var indexes:Array = [-1, -1]; 83 sel.matchRules(authorStyle, indexes); 44 84 } 45 85 … … 75 115 } 76 116 117 public static function putsAssert(name:String, res:Boolean):void 118 { 119 theInstance.mTextOut.defaultTextFormat = res ? theInstance.mOKFmt : theInstance.mNGFmt; 120 puts(name+": "+(res ? "[ O K ]" : "[ N G ]")); 121 122 theInstance.mTextOut.defaultTextFormat = theInstance.mDefaultFmt; 123 } 124 77 125 public static function puts(s:*):void 78 126 { -
lang/actionscript/ascss/src/css/CSSRuleSet.as
r10847 r10854 70 70 if (!key) return; 71 71 var rules:CSSRuleDataList = CSSRuleDataList(map[key] || null); 72 SelectTest.puts(key+" "+rule+" "+sel.dump())73 72 74 73 if (!rules) { -
lang/actionscript/ascss/src/css/CSSSelector.as
r10771 r10854 214 214 return mPseudoType; 215 215 } 216 217 public function get relation():uint 218 { 219 return m_relation; 220 } 216 221 } 217 222 } -
lang/actionscript/ascss/src/css/CSSStyleSelector.as
r10847 r10854 38 38 } 39 39 40 public function get authorStyle():CSSRuleSet 41 { 42 return mAuthorStyle; 43 } 44 40 45 public function initForStyleResolve(e:IASCSSElement, defaultParent:RenderStyle):void 41 46 { … … 68 73 matchRulesForList(rules.getIDRules(mElement.idAttribute), aRuleIndexes); 69 74 75 // todo: class match here.... 76 77 matchRulesForList(rules.getTagRules(mElement.localName), aRuleIndexes); 70 78 } 71 79 … … 80 88 const localName:String = mElement.localName; 81 89 const selectorLocalName:String = d.selector.m_tag.localName; 90 82 91 if ((localName == selectorLocalName || selectorLocalName == '*') && checkSelector1(d.selector)) 83 92 { … … 110 119 if (!checkOneSelector(sel, e, isAncestor, isSubSelector)) 111 120 return SelectorFailsLocally; 112 121 122 // The rest of the selectors has to match 123 var relation:uint = sel.relation; 124 125 // Prepare next sel 126 sel = sel.m_tagHistory; 127 if (!sel) 128 return SelectorMatches; 129 130 if (relation != CSSSelector.SubSelector) 131 // Bail-out if this selector is irrelevant for the pseudoStyle 132 if (mPseudoStyle != RenderStyle.NOPSEUDO && mPseudoStyle != dynamicPseudo) 133 return SelectorFailsCompletely; 134 135 switch (relation) 136 { 137 case CSSSelector.Descendant: 138 SelectTest.puts("reached CSSStyleSheet.as:138"); 139 SelectTest.puts(" todo: implement descendant selector matching"); 140 break; 141 } 113 142 114 143 return SelectorFailsCompletely; -
lang/actionscript/ascss/src/cssdom/IASCSSElement.as
r10847 r10854 8 8 function get hasClass():Boolean; 9 9 function get idAttribute():String; 10 function get firstChild():IASCSSElement; 10 11 function get parentNode():IASCSSElement; 11 12 }
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)