Changeset 9656 for lang/actionscript/ascss/src
- Timestamp:
- 04/18/08 02:25:19 (5 years ago)
- Location:
- lang/actionscript/ascss/src/css
- Files:
-
- 3 modified
-
ASCSS.asy (modified) (4 diffs)
-
CSSPrimitiveValue.as (modified) (5 diffs)
-
ParseValue.as (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
lang/actionscript/ascss/src/css/ASCSS.asy
r9626 r9656 1433 1433 } 1434 1434 1435 1436 // units for parsed value 1437 public static const U_FUnknown:uint = 0x0000; 1438 public static const U_FInteger:uint = 0x0001; 1439 public static const U_FNumber:uint = 0x0002; // Real Numbers 1440 public static const U_FPercent:uint = 0x0004; 1441 public static const U_FLength:uint = 0x0008; 1442 public static const U_FAngle:uint = 0x0010; 1443 public static const U_FTime:uint = 0x0020; 1444 public static const U_FFrequency:uint = 0x0040; 1445 public static const U_FRelative:uint = 0x0100; 1446 public static const U_FNonNeg:uint = 0x0200; 1447 1435 1448 private function parseValue(propId:int, important:Boolean):Boolean 1436 1449 { … … 1449 1462 1450 1463 switch(propId) { 1464 case CSSPropertyID.CSSPropertyBottom: // <length> | <percentage> | auto | inherit 1465 case CSSPropertyID.CSSPropertyLeft: // <length> | <percentage> | auto | inherit 1466 case CSSPropertyID.CSSPropertyRight: // <length> | <percentage> | auto | inherit 1467 case CSSPropertyID.CSSPropertyTop: // <length> | <percentage> | auto | inherit 1468 case CSSPropertyID.CSSPropertyMarginTop: //// <margin-width> | inherit 1469 case CSSPropertyID.CSSPropertyMarginRight: // Which is defined as 1470 case CSSPropertyID.CSSPropertyMarginBottom: // <length> | <percentage> | auto | inherit 1471 case CSSPropertyID.CSSPropertyMarginLeft: //// 1472 case CSSPropertyID.CSSPropertyWebkitMarginStart: 1473 if (id == CSSValueKeywords.CSSValueAuto) 1474 valid_primitive = true; 1475 else 1476 valid_primitive = (id == 0 && validUnit(val, U_FLength|U_FPercent, mStrict)); 1477 break; 1478 1479 1451 1480 case CSSPropertyID.CSSPropertyBackgroundColor: // <color> | inherit 1452 1481 case CSSPropertyID.CSSPropertyBorderTopColor: // <color> | inherit … … 1482 1511 } 1483 1512 1484 if (valid_primitive) { 1485 if (id != 0) 1486 parsedValue = CSSPrimitiveValue.newId(id); 1513 if (valid_primitive) { 1514 if (id != 0) 1515 parsedValue = CSSPrimitiveValue.newId(id); 1516 else if (val.unit >= CSSPrimitiveValue.CSS_NUMBER && val.unit <= CSSPrimitiveValue.CSS_KHZ) 1517 parsedValue = CSSPrimitiveValue.newUnitNumber(val.fValue, val.unit); 1487 1518 /* 1488 1519 else if (value->unit == CSSPrimitiveValue::CSS_STRING) 1489 1520 parsedValue = new CSSPrimitiveValue(value->string, (CSSPrimitiveValue::UnitTypes) value->unit); 1490 else if (value->unit >= CSSPrimitiveValue::CSS_NUMBER && value->unit <= CSSPrimitiveValue::CSS_KHZ)1491 parsedValue = new CSSPrimitiveValue(value->fValue, (CSSPrimitiveValue::UnitTypes) value->unit);1492 1521 else if (value->unit >= Value::Q_EMS) 1493 1522 parsedValue = new CSSQuirkPrimitiveValue(value->fValue, CSSPrimitiveValue::CSS_EMS); … … 1504 1533 1505 1534 return false; 1535 } 1536 1537 private function validUnit(aValue:ParseValue, aUnitFlags:uint, aStrict:Boolean):Boolean 1538 { 1539 if ((aUnitFlags & U_FNonNeg) != 0 && aValue.fValue < 0) 1540 return false; 1541 1542 var b:Boolean = false; 1543 switch(aValue.unit) { 1544 case CSSPrimitiveValue.CSS_NUMBER: 1545 b = (aUnitFlags & U_FNumber) != 0; 1546 if (!b && ((aUnitFlags & (U_FLength | U_FAngle)) != 0 && (aValue.fValue == 0 || !aStrict))) { 1547 aValue.unit = ((aUnitFlags & U_FLength) !=0 ) ? CSSPrimitiveValue.CSS_PX : CSSPrimitiveValue.CSS_DEG; 1548 b = true; 1549 } 1550 if (!b && (aUnitFlags & U_FInteger) != 0 && aValue.isInt) 1551 b = true; 1552 break; 1553 case CSSPrimitiveValue.CSS_PERCENTAGE: 1554 b = (aUnitFlags & U_FPercent) != 0; 1555 break; 1556 case ParseValue.Q_EMS: 1557 case CSSPrimitiveValue.CSS_EMS: 1558 case CSSPrimitiveValue.CSS_EXS: 1559 case CSSPrimitiveValue.CSS_PX: 1560 case CSSPrimitiveValue.CSS_CM: 1561 case CSSPrimitiveValue.CSS_MM: 1562 case CSSPrimitiveValue.CSS_IN: 1563 case CSSPrimitiveValue.CSS_PT: 1564 case CSSPrimitiveValue.CSS_PC: 1565 b = (aUnitFlags & U_FLength) != 0; 1566 break; 1567 case CSSPrimitiveValue.CSS_MS: 1568 case CSSPrimitiveValue.CSS_S: 1569 b = (aUnitFlags & U_FTime) != 0; 1570 break; 1571 case CSSPrimitiveValue.CSS_DEG: 1572 case CSSPrimitiveValue.CSS_RAD: 1573 case CSSPrimitiveValue.CSS_GRAD: 1574 b = (aUnitFlags & U_FAngle) != 0; 1575 break; 1576 case CSSPrimitiveValue.CSS_HZ: 1577 case CSSPrimitiveValue.CSS_KHZ: 1578 case CSSPrimitiveValue.CSS_DIMENSION: 1579 default: 1580 break; 1581 } 1582 1583 return b; 1506 1584 } 1507 1585 -
lang/actionscript/ascss/src/css/CSSPrimitiveValue.as
r9618 r9656 11 11 public static const CSS_CM:int = 6; 12 12 public static const CSS_MM:int = 7; 13 public static const CSS_IN:int = 8; 14 public static const CSS_PT:int = 9; 15 public static const CSS_PC:int = 10; 16 public static const CSS_DEG:int = 11; 17 public static const CSS_RAD:int = 12; 18 public static const CSS_GRAD:int = 13; 19 public static const CSS_MS:int = 14; 20 public static const CSS_S:int = 15; 21 public static const CSS_HZ:int = 16; 22 public static const CSS_KHZ:int = 17; 23 public static const CSS_DIMENSION:int = 18; 24 public static const CSS_STRING:int = 19; 25 public static const CSS_URI:int = 20; 13 26 public static const CSS_IDENT:int = 21; 14 27 public static const CSS_RGBCOLOR:int = 25; … … 30 43 } 31 44 45 public static function newUnitNumber(n:Number, u:int):CSSPrimitiveValue 46 { 47 var val:CSSPrimitiveValue = new CSSPrimitiveValue(); 48 val.mType = u; 49 val.mNumValue = n; 50 51 return val; 52 } 53 32 54 public override function dump():String 33 55 { … … 38 60 else if (mType == CSS_IDENT) 39 61 ret += " IDENT " + mIdentValue; 62 else if (mType == CSS_NUMBER) 63 ret += " NUMBER " + mNumValue; 40 64 41 65 return ret; … … 45 69 private var mRGBColorValue:uint; 46 70 private var mIdentValue:int; 71 private var mNumValue:Number; 47 72 48 73 public function get primitiveType():int 49 74 { 50 75 return mType; 76 } 77 78 public function getNumberValue():Number 79 { 80 return mNumValue; 51 81 } 52 82 … … 70 100 switch(t) 71 101 { 102 case CSS_UNKNOWN: return "unknown"; 72 103 case CSS_RGBCOLOR: return "RGB"; 73 104 case CSS_IDENT: return "IDENT"; 74 default: return "unknown"; 105 case CSS_NUMBER: return "NUMBER"; 106 case CSS_PERCENTAGE: return "PERCENT"; 107 case CSS_EMS: return "em"; 108 case CSS_EXS: return "ex"; 109 case CSS_PX: return "px"; 110 default: return "error ("+t+")"; 75 111 } 76 112 } -
lang/actionscript/ascss/src/css/ParseValue.as
r9626 r9656 3 3 public class ParseValue 4 4 { 5 public static const Operator:uint = 0x100000; 6 public static const Function:uint = 0x100001; 7 public static const Q_EMS:uint = 0x100002; 8 5 9 function ParseValue(aId:int, aUnit:int) 6 10 {
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)