| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
| 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
| 4 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserv
ed. | 4 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserv
ed. |
| 5 * Copyright (C) 2006 Andrew Wellington (proton@wiretapped.net) | 5 * Copyright (C) 2006 Andrew Wellington (proton@wiretapped.net) |
| 6 * Copyright (C) 2010 Daniel Bates (dbates@intudata.com) | 6 * Copyright (C) 2010 Daniel Bates (dbates@intudata.com) |
| 7 * | 7 * |
| 8 * This library is free software; you can redistribute it and/or | 8 * This library is free software; you can redistribute it and/or |
| 9 * modify it under the terms of the GNU Library General Public | 9 * modify it under the terms of the GNU Library General Public |
| 10 * License as published by the Free Software Foundation; either | 10 * License as published by the Free Software Foundation; either |
| (...skipping 299 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 310 static const UChar georgianOnes[9] = { | 310 static const UChar georgianOnes[9] = { |
| 311 0x10D0, 0x10D1, 0x10D2, 0x10D3, 0x10D4, 0x10D5, 0x10D6, 0x10F1, 0x10
D7 | 311 0x10D0, 0x10D1, 0x10D2, 0x10D3, 0x10D4, 0x10D5, 0x10D6, 0x10F1, 0x10
D7 |
| 312 }; | 312 }; |
| 313 letters[length++] = georgianOnes[ones - 1]; | 313 letters[length++] = georgianOnes[ones - 1]; |
| 314 } | 314 } |
| 315 | 315 |
| 316 ASSERT(length <= lettersSize); | 316 ASSERT(length <= lettersSize); |
| 317 return String(letters, length); | 317 return String(letters, length); |
| 318 } | 318 } |
| 319 | 319 |
| 320 enum CJKLang { |
| 321 Chinese = 1, |
| 322 Korean, |
| 323 Japanese |
| 324 }; |
| 325 |
| 326 enum CJKStyle { |
| 327 Formal, |
| 328 Informal |
| 329 }; |
| 330 |
| 320 // The table uses the order from the CSS3 specification: | 331 // The table uses the order from the CSS3 specification: |
| 321 // first 3 group markers, then 3 digit markers, then ten digits, then negative s
ymbols. | 332 // first 3 group markers, then 3 digit markers, then ten digits, then negative s
ymbols. |
| 322 static String toCJKIdeographic(int number, const UChar table[23]) | 333 static String toCJKIdeographic(int number, const UChar table[26], CJKStyle cjkSt
yle) |
| 323 { | 334 { |
| 324 enum AbstractCJKChar { | 335 enum AbstractCJKChar { |
| 325 NoChar = 0, | 336 NoChar = 0, |
| 326 Lang = 0, | 337 Lang = 0, |
| 327 SecondGroupMarker, ThirdGroupMarker, FourthGroupMarker, | 338 // FourthGroupMarker for simplified chinese has two codepoints, to simpl
ify |
| 328 SecondDigitMarker, ThirdDigitMarker, FourthDigitMarker, | 339 // the main algorithm below use two codepoints for all group markers. |
| 340 SecondGroupMarker = 1, ThirdGroupMarker = 3, FourthGroupMarker = 5, |
| 341 SecondDigitMarker = 7, ThirdDigitMarker, FourthDigitMarker, |
| 329 Digit0, Digit1, Digit2, Digit3, Digit4, | 342 Digit0, Digit1, Digit2, Digit3, Digit4, |
| 330 Digit5, Digit6, Digit7, Digit8, Digit9, | 343 Digit5, Digit6, Digit7, Digit8, Digit9, |
| 331 Neg1, Neg2, Neg3, Neg4, Neg5 | 344 Neg1, Neg2, Neg3, Neg4, Neg5 |
| 332 }; | 345 }; |
| 333 | 346 |
| 334 enum CJKLang { | |
| 335 Chinese = 1, | |
| 336 Korean, | |
| 337 Japanese | |
| 338 }; | |
| 339 | |
| 340 if (number == 0) | 347 if (number == 0) |
| 341 return String(&table[Digit0], 1); | 348 return String(&table[Digit0], 1); |
| 342 | 349 |
| 343 const bool negative = number < 0; | 350 const bool negative = number < 0; |
| 344 if (negative) | 351 if (negative) |
| 345 number = -number; | 352 number = -number; |
| 346 | 353 |
| 347 const int groupLength = 8; // 4 digits, 3 digit markers, and a group marker | 354 const int groupLength = 9; // 4 digits, 3 digit markers, group marker of siz
e 2. |
| 348 const int bufferLength = 4 * groupLength; | 355 const int bufferLength = 4 * groupLength; |
| 349 AbstractCJKChar buffer[bufferLength] = { NoChar }; | 356 AbstractCJKChar buffer[bufferLength] = { NoChar }; |
| 350 | 357 |
| 351 for (int i = 0; i < 4; ++i) { | 358 for (int i = 0; i < 4; ++i) { |
| 352 int groupValue = number % 10000; | 359 int groupValue = number % 10000; |
| 353 number /= 10000; | 360 number /= 10000; |
| 354 | 361 |
| 355 // Process least-significant group first, but put it in the buffer last. | 362 // Process least-significant group first, but put it in the buffer last. |
| 356 AbstractCJKChar* group = &buffer[(3 - i) * groupLength]; | 363 AbstractCJKChar* group = &buffer[(3 - i) * groupLength]; |
| 357 | 364 |
| 358 if (groupValue && i) | 365 if (groupValue && i) { |
| 366 group[8] = static_cast<AbstractCJKChar>(SecondGroupMarker + i); |
| 359 group[7] = static_cast<AbstractCJKChar>(SecondGroupMarker - 1 + i); | 367 group[7] = static_cast<AbstractCJKChar>(SecondGroupMarker - 1 + i); |
| 368 } |
| 360 | 369 |
| 361 // Put in the four digits and digit markers for any non-zero digits. | 370 // Put in the four digits and digit markers for any non-zero digits. |
| 362 int digitValue = (groupValue % 10); | 371 int digitValue = (groupValue % 10); |
| 363 bool trailingZero = table[Lang] == Chinese && !digitValue; | 372 bool trailingZero = table[Lang] == Chinese && !digitValue; |
| 364 if (digitValue) | 373 if (digitValue) |
| 365 group[6] = static_cast<AbstractCJKChar>(Digit0 + (groupValue % 10)); | 374 group[6] = static_cast<AbstractCJKChar>(Digit0 + (groupValue % 10)); |
| 366 if (number != 0 || groupValue > 9) { | 375 if (number != 0 || groupValue > 9) { |
| 367 digitValue = ((groupValue / 10) % 10); | 376 digitValue = ((groupValue / 10) % 10); |
| 368 if (digitValue || !trailingZero) | 377 if (digitValue || !trailingZero) |
| 369 group[4] = static_cast<AbstractCJKChar>(Digit0 + digitValue); | 378 group[4] = static_cast<AbstractCJKChar>(Digit0 + digitValue); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 382 if (number != 0 || groupValue > 999) { | 391 if (number != 0 || groupValue > 999) { |
| 383 digitValue = groupValue / 1000; | 392 digitValue = groupValue / 1000; |
| 384 if (digitValue || !trailingZero) | 393 if (digitValue || !trailingZero) |
| 385 group[0] = static_cast<AbstractCJKChar>(Digit0 + digitValue); | 394 group[0] = static_cast<AbstractCJKChar>(Digit0 + digitValue); |
| 386 if (digitValue) | 395 if (digitValue) |
| 387 group[1] = FourthDigitMarker; | 396 group[1] = FourthDigitMarker; |
| 388 } | 397 } |
| 389 | 398 |
| 390 if (trailingZero && i > 0) { | 399 if (trailingZero && i > 0) { |
| 391 group[6] = group[7]; | 400 group[6] = group[7]; |
| 392 group[7] = Digit0; | 401 group[7] = group[8]; |
| 402 group[8] = Digit0; |
| 393 } | 403 } |
| 394 | 404 |
| 395 // Remove the tens digit, but leave the marker, for any group that has | 405 // Remove the tens digit, but leave the marker, for any group that has |
| 396 // a value of less than 20. | 406 // a value of less than 20. |
| 397 if (table[Lang] == Chinese && groupValue < 20) { | 407 if (table[Lang] == Chinese && cjkStyle == Informal && groupValue < 20) { |
| 398 ASSERT(group[4] == NoChar || group[4] == Digit0 || group[4] == Digit
1); | 408 ASSERT(group[4] == NoChar || group[4] == Digit0 || group[4] == Digit
1); |
| 399 group[4] = NoChar; | 409 group[4] = NoChar; |
| 400 } | 410 } |
| 401 | 411 |
| 402 if (number == 0) | 412 if (number == 0) |
| 403 break; | 413 break; |
| 404 } | 414 } |
| 405 | 415 |
| 406 // Convert into characters, omitting consecutive runs of Digit0 and | 416 // Convert into characters, omitting consecutive runs of Digit0 and |
| 407 // any trailing Digit0. | 417 // any trailing Digit0. |
| 408 int length = 0; | 418 int length = 0; |
| 409 const int maxLengthForNegativeSymbols = 5; | 419 const int maxLengthForNegativeSymbols = 5; |
| 410 UChar characters[bufferLength + maxLengthForNegativeSymbols]; | 420 UChar characters[bufferLength + maxLengthForNegativeSymbols]; |
| 411 AbstractCJKChar last = NoChar; | 421 AbstractCJKChar last = NoChar; |
| 412 if (negative) { | 422 if (negative) { |
| 413 while (UChar a = table[Neg1 + length]) | 423 while (UChar a = table[Neg1 + length]) |
| 414 characters[length++] = a; | 424 characters[length++] = a; |
| 415 } | 425 } |
| 416 for (int i = 0; i < bufferLength; ++i) { | 426 for (int i = 0; i < bufferLength; ++i) { |
| 417 AbstractCJKChar a = buffer[i]; | 427 AbstractCJKChar a = buffer[i]; |
| 418 if (a != NoChar) { | 428 if (a != NoChar) { |
| 419 if (a != Digit0 || (table[Lang] == Chinese && last != Digit0)) { | 429 if (a != Digit0 || (table[Lang] == Chinese && last != Digit0)) { |
| 420 characters[length++] = table[a]; | 430 UChar newChar = table[a]; |
| 421 if (table[Lang] == Korean && a >= SecondGroupMarker && a <= Four
thGroupMarker) | 431 if (newChar != NoChar) { |
| 422 characters[length++] = ' '; | 432 characters[length++] = table[a]; |
| 433 if (table[Lang] == Korean && (a == SecondGroupMarker || a ==
ThirdGroupMarker || a == FourthGroupMarker)) |
| 434 characters[length++] = ' '; |
| 435 } |
| 423 } | 436 } |
| 424 last = a; | 437 last = a; |
| 425 } | 438 } |
| 426 } | 439 } |
| 427 if ((table[Lang] == Chinese && last == Digit0) || characters[length - 1] ==
' ') | 440 if ((table[Lang] == Chinese && last == Digit0) || characters[length - 1] ==
' ') |
| 428 --length; | 441 --length; |
| 429 | 442 |
| 430 return String(characters, length); | 443 return String(characters, length); |
| 431 } | 444 } |
| 432 | 445 |
| (...skipping 21 matching lines...) Expand all Loading... |
| 454 case NoneListStyle: | 467 case NoneListStyle: |
| 455 case Oriya: | 468 case Oriya: |
| 456 case Persian: | 469 case Persian: |
| 457 case Square: | 470 case Square: |
| 458 case Telugu: | 471 case Telugu: |
| 459 case Thai: | 472 case Thai: |
| 460 case Tibetan: | 473 case Tibetan: |
| 461 case Urdu: | 474 case Urdu: |
| 462 case KoreanHangulFormal: | 475 case KoreanHangulFormal: |
| 463 case CJKIdeographic: | 476 case CJKIdeographic: |
| 477 case SimpChineseFormal: |
| 478 case SimpChineseInformal: |
| 479 case TradChineseFormal: |
| 480 case TradChineseInformal: |
| 464 return type; // Can represent all ordinals. | 481 return type; // Can represent all ordinals. |
| 465 case Armenian: | 482 case Armenian: |
| 466 case LowerArmenian: | 483 case LowerArmenian: |
| 467 case UpperArmenian: | 484 case UpperArmenian: |
| 468 return (value < 1 || value > 99999999) ? DecimalListStyle : type; | 485 return (value < 1 || value > 99999999) ? DecimalListStyle : type; |
| 469 case Georgian: | 486 case Georgian: |
| 470 return (value < 1 || value > 19999) ? DecimalListStyle : type; | 487 return (value < 1 || value > 19999) ? DecimalListStyle : type; |
| 471 case Hebrew: | 488 case Hebrew: |
| 472 return (value < 0 || value > 999999) ? DecimalListStyle : type; | 489 return (value < 0 || value > 999999) ? DecimalListStyle : type; |
| 473 case LowerRoman: | 490 case LowerRoman: |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 551 case Persian: | 568 case Persian: |
| 552 case Telugu: | 569 case Telugu: |
| 553 case Thai: | 570 case Thai: |
| 554 case Tibetan: | 571 case Tibetan: |
| 555 case UpperAlpha: | 572 case UpperAlpha: |
| 556 case UpperArmenian: | 573 case UpperArmenian: |
| 557 case UpperLatin: | 574 case UpperLatin: |
| 558 case UpperRoman: | 575 case UpperRoman: |
| 559 case Urdu: | 576 case Urdu: |
| 560 return '.'; | 577 return '.'; |
| 578 case SimpChineseFormal: |
| 579 case SimpChineseInformal: |
| 580 case TradChineseFormal: |
| 581 case TradChineseInformal: |
| 561 case KoreanHangulFormal: | 582 case KoreanHangulFormal: |
| 562 return ','; | 583 return 0x3001; |
| 563 } | 584 } |
| 564 | 585 |
| 565 ASSERT_NOT_REACHED(); | 586 ASSERT_NOT_REACHED(); |
| 566 return '.'; | 587 return '.'; |
| 567 } | 588 } |
| 568 | 589 |
| 569 String listMarkerText(EListStyleType type, int value) | 590 String listMarkerText(EListStyleType type, int value) |
| 570 { | 591 { |
| 571 // If the list-style-type, say hebrew, cannot represent |value| because it's
outside | 592 // If the list-style-type, say hebrew, cannot represent |value| because it's
outside |
| 572 // its ordinal range then we fallback to some list style that can represent
|value|. | 593 // its ordinal range then we fallback to some list style that can represent
|value|. |
| (...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 828 case EthiopicHalehameTiEt: { | 849 case EthiopicHalehameTiEt: { |
| 829 static const UChar ethiopicHalehameTiEtAlphabet[34] = { | 850 static const UChar ethiopicHalehameTiEtAlphabet[34] = { |
| 830 0x1200, 0x1208, 0x1210, 0x1218, 0x1220, 0x1228, 0x1230, 0x1238, 0x12
40, | 851 0x1200, 0x1208, 0x1210, 0x1218, 0x1220, 0x1228, 0x1230, 0x1238, 0x12
40, |
| 831 0x1250, 0x1260, 0x1270, 0x1278, 0x1280, 0x1290, 0x1298, 0x12A0, 0x12
A8, | 852 0x1250, 0x1260, 0x1270, 0x1278, 0x1280, 0x1290, 0x1298, 0x12A0, 0x12
A8, |
| 832 0x12B8, 0x12C8, 0x12D0, 0x12D8, 0x12E0, 0x12E8, 0x12F0, 0x1300, 0x13
08, | 853 0x12B8, 0x12C8, 0x12D0, 0x12D8, 0x12E0, 0x12E8, 0x12F0, 0x1300, 0x13
08, |
| 833 0x1320, 0x1328, 0x1330, 0x1338, 0x1340, 0x1348, 0x1350 | 854 0x1320, 0x1328, 0x1330, 0x1338, 0x1340, 0x1348, 0x1350 |
| 834 }; | 855 }; |
| 835 return toAlphabetic(value, ethiopicHalehameTiEtAlphabet); | 856 return toAlphabetic(value, ethiopicHalehameTiEtAlphabet); |
| 836 } | 857 } |
| 837 case KoreanHangulFormal: { | 858 case KoreanHangulFormal: { |
| 838 static const UChar koreanHangulFormalTable[23] = { | 859 static const UChar koreanHangulFormalTable[26] = { |
| 839 0x2, | 860 Korean, |
| 840 0xB9CC, 0xC5B5, 0xC870, | 861 0xB9CC, 0x0000, 0xC5B5, 0x0000, 0xC870, 0x0000, |
| 841 0xC2ED, 0xBC31, 0xCC9C, | 862 0xC2ED, 0xBC31, 0xCC9C, |
| 842 0xC601, 0xC77C, 0xC774, 0xC0BC, 0xC0AC, | 863 0xC601, 0xC77C, 0xC774, 0xC0BC, 0xC0AC, |
| 843 0xC624, 0xC721, 0xCE60, 0xD314, 0xAD6C, | 864 0xC624, 0xC721, 0xCE60, 0xD314, 0xAD6C, |
| 844 0xB9C8, 0xC774, 0xB108, 0xC2A4, 0x0020, 0x0000 | 865 0xB9C8, 0xC774, 0xB108, 0xC2A4, 0x0020, 0x0000 |
| 845 }; | 866 }; |
| 846 return toCJKIdeographic(value, koreanHangulFormalTable); | 867 return toCJKIdeographic(value, koreanHangulFormalTable, Formal); |
| 847 } | 868 } |
| 848 case CJKIdeographic: { | 869 case CJKIdeographic: |
| 849 static const UChar traditionalChineseInformalTable[19] = { | 870 case TradChineseInformal: { |
| 850 0x1, | 871 static const UChar traditionalChineseInformalTable[22] = { |
| 851 0x842C, 0x5104, 0x5146, | 872 Chinese, |
| 873 0x842C, 0x0000, 0x5104, 0x0000, 0x5146, 0x0000, |
| 852 0x5341, 0x767E, 0x5343, | 874 0x5341, 0x767E, 0x5343, |
| 853 0x96F6, 0x4E00, 0x4E8C, 0x4E09, 0x56DB, | 875 0x96F6, 0x4E00, 0x4E8C, 0x4E09, 0x56DB, |
| 854 0x4E94, 0x516D, 0x4E03, 0x516B, 0x4E5D, | 876 0x4E94, 0x516D, 0x4E03, 0x516B, 0x4E5D, |
| 855 0x8CA0, 0x0000 | 877 0x8CA0, 0x0000 |
| 856 }; | 878 }; |
| 857 return toCJKIdeographic(value, traditionalChineseInformalTable); | 879 return toCJKIdeographic(value, traditionalChineseInformalTable, Informal
); |
| 880 } |
| 881 case SimpChineseInformal: { |
| 882 static const UChar simpleChineseInformalTable[22] = { |
| 883 Chinese, |
| 884 0x4E07, 0x0000, 0x4EBF, 0x0000, 0x4E07, 0x4EBF, |
| 885 0x5341, 0x767E, 0x5343, |
| 886 0x96F6, 0x4E00, 0x4E8C, 0x4E09, 0x56DB, |
| 887 0x4E94, 0x516D, 0x4E03, 0x516B, 0x4E5D, |
| 888 0x8D1F, 0x0000 |
| 889 }; |
| 890 return toCJKIdeographic(value, simpleChineseInformalTable, Informal); |
| 891 } |
| 892 case TradChineseFormal: { |
| 893 static const UChar traditionalChineseFormalTable[22] = { |
| 894 Chinese, |
| 895 0x842C, 0x0000, 0x5104, 0x0000, 0x5146, 0x0000, |
| 896 0x62FE, 0x4F70, 0x4EDF, |
| 897 0x96F6, 0x58F9, 0x8CB3, 0x53C3, 0x8086, |
| 898 0x4F0D, 0x9678, 0x67D2, 0x634C, 0x7396, |
| 899 0x8CA0, 0x0000 |
| 900 }; |
| 901 return toCJKIdeographic(value, traditionalChineseFormalTable, Formal); |
| 902 } |
| 903 case SimpChineseFormal: { |
| 904 static const UChar simpleChineseFormalTable[22] = { |
| 905 Chinese, |
| 906 0x4E07, 0x0000, 0x4EBF, 0x0000, 0x4E07, 0x4EBF, |
| 907 0x62FE, 0x4F70, 0x4EDF, |
| 908 0x96F6, 0x58F9, 0x8D30, 0x53C1, 0x8086, |
| 909 0x4F0D, 0x9646, 0x67D2, 0x634C, 0x7396, |
| 910 0x8D1F, 0x0000 |
| 911 }; |
| 912 return toCJKIdeographic(value, simpleChineseFormalTable, Formal); |
| 858 } | 913 } |
| 859 | 914 |
| 860 case LowerRoman: | 915 case LowerRoman: |
| 861 return toRoman(value, false); | 916 return toRoman(value, false); |
| 862 case UpperRoman: | 917 case UpperRoman: |
| 863 return toRoman(value, true); | 918 return toRoman(value, true); |
| 864 | 919 |
| 865 case Armenian: | 920 case Armenian: |
| 866 case UpperArmenian: | 921 case UpperArmenian: |
| 867 // CSS3 says "armenian" means "lower-armenian". | 922 // CSS3 says "armenian" means "lower-armenian". |
| (...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1062 case LowerAlpha: | 1117 case LowerAlpha: |
| 1063 case LowerArmenian: | 1118 case LowerArmenian: |
| 1064 case LowerGreek: | 1119 case LowerGreek: |
| 1065 case LowerLatin: | 1120 case LowerLatin: |
| 1066 case LowerRoman: | 1121 case LowerRoman: |
| 1067 case Malayalam: | 1122 case Malayalam: |
| 1068 case Mongolian: | 1123 case Mongolian: |
| 1069 case Myanmar: | 1124 case Myanmar: |
| 1070 case Oriya: | 1125 case Oriya: |
| 1071 case Persian: | 1126 case Persian: |
| 1127 case SimpChineseFormal: |
| 1128 case SimpChineseInformal: |
| 1072 case Telugu: | 1129 case Telugu: |
| 1073 case Thai: | 1130 case Thai: |
| 1074 case Tibetan: | 1131 case Tibetan: |
| 1132 case TradChineseFormal: |
| 1133 case TradChineseInformal: |
| 1075 case UpperAlpha: | 1134 case UpperAlpha: |
| 1076 case UpperArmenian: | 1135 case UpperArmenian: |
| 1077 case UpperLatin: | 1136 case UpperLatin: |
| 1078 case UpperRoman: | 1137 case UpperRoman: |
| 1079 case Urdu: | 1138 case Urdu: |
| 1080 m_text = listMarkerText(type, m_listItem->value()); | 1139 m_text = listMarkerText(type, m_listItem->value()); |
| 1081 break; | 1140 break; |
| 1082 } | 1141 } |
| 1083 } | 1142 } |
| 1084 | 1143 |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1138 case LowerAlpha: | 1197 case LowerAlpha: |
| 1139 case LowerArmenian: | 1198 case LowerArmenian: |
| 1140 case LowerGreek: | 1199 case LowerGreek: |
| 1141 case LowerLatin: | 1200 case LowerLatin: |
| 1142 case LowerRoman: | 1201 case LowerRoman: |
| 1143 case Malayalam: | 1202 case Malayalam: |
| 1144 case Mongolian: | 1203 case Mongolian: |
| 1145 case Myanmar: | 1204 case Myanmar: |
| 1146 case Oriya: | 1205 case Oriya: |
| 1147 case Persian: | 1206 case Persian: |
| 1207 case SimpChineseFormal: |
| 1208 case SimpChineseInformal: |
| 1148 case Telugu: | 1209 case Telugu: |
| 1149 case Thai: | 1210 case Thai: |
| 1150 case Tibetan: | 1211 case Tibetan: |
| 1212 case TradChineseFormal: |
| 1213 case TradChineseInformal: |
| 1151 case UpperAlpha: | 1214 case UpperAlpha: |
| 1152 case UpperArmenian: | 1215 case UpperArmenian: |
| 1153 case UpperLatin: | 1216 case UpperLatin: |
| 1154 case UpperRoman: | 1217 case UpperRoman: |
| 1155 case Urdu: | 1218 case Urdu: |
| 1156 if (m_text.isEmpty()) { | 1219 if (m_text.isEmpty()) { |
| 1157 logicalWidth = 0; | 1220 logicalWidth = 0; |
| 1158 } else { | 1221 } else { |
| 1159 LayoutUnit itemWidth = font.width(m_text); | 1222 LayoutUnit itemWidth = font.width(m_text); |
| 1160 UChar suffixSpace[2] = { listMarkerSuffix(type, m_listItem->value())
, ' ' }; | 1223 UChar suffixSpace[2] = { listMarkerSuffix(type, m_listItem->value())
, ' ' }; |
| (...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1310 case LowerAlpha: | 1373 case LowerAlpha: |
| 1311 case LowerArmenian: | 1374 case LowerArmenian: |
| 1312 case LowerGreek: | 1375 case LowerGreek: |
| 1313 case LowerLatin: | 1376 case LowerLatin: |
| 1314 case LowerRoman: | 1377 case LowerRoman: |
| 1315 case Malayalam: | 1378 case Malayalam: |
| 1316 case Mongolian: | 1379 case Mongolian: |
| 1317 case Myanmar: | 1380 case Myanmar: |
| 1318 case Oriya: | 1381 case Oriya: |
| 1319 case Persian: | 1382 case Persian: |
| 1383 case SimpChineseFormal: |
| 1384 case SimpChineseInformal: |
| 1320 case Telugu: | 1385 case Telugu: |
| 1321 case Thai: | 1386 case Thai: |
| 1322 case Tibetan: | 1387 case Tibetan: |
| 1388 case TradChineseFormal: |
| 1389 case TradChineseInformal: |
| 1323 case UpperAlpha: | 1390 case UpperAlpha: |
| 1324 case UpperArmenian: | 1391 case UpperArmenian: |
| 1325 case UpperLatin: | 1392 case UpperLatin: |
| 1326 case UpperRoman: | 1393 case UpperRoman: |
| 1327 case Urdu: | 1394 case Urdu: |
| 1328 if (m_text.isEmpty()) | 1395 if (m_text.isEmpty()) |
| 1329 return IntRect(); | 1396 return IntRect(); |
| 1330 const Font& font = style()->font(); | 1397 const Font& font = style()->font(); |
| 1331 int itemWidth = font.width(m_text); | 1398 int itemWidth = font.width(m_text); |
| 1332 UChar suffixSpace[2] = { listMarkerSuffix(type, m_listItem->value()), '
' }; | 1399 UChar suffixSpace[2] = { listMarkerSuffix(type, m_listItem->value()), '
' }; |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1376 if (style()) { | 1443 if (style()) { |
| 1377 // Reuse the current margins. Otherwise resetting the margins to initial
values | 1444 // Reuse the current margins. Otherwise resetting the margins to initial
values |
| 1378 // would trigger unnecessary layout. | 1445 // would trigger unnecessary layout. |
| 1379 newStyle->setMarginStart(style()->marginStart()); | 1446 newStyle->setMarginStart(style()->marginStart()); |
| 1380 newStyle->setMarginEnd(style()->marginRight()); | 1447 newStyle->setMarginEnd(style()->marginRight()); |
| 1381 } | 1448 } |
| 1382 setStyle(newStyle.release()); | 1449 setStyle(newStyle.release()); |
| 1383 } | 1450 } |
| 1384 | 1451 |
| 1385 } // namespace blink | 1452 } // namespace blink |
| OLD | NEW |