Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(261)

Side by Side Diff: Source/core/layout/LayoutListMarker.cpp

Issue 1152763006: Remove outdated list style types (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Fix sorting Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « Source/core/css/CSSValueKeywords.in ('k') | Source/core/paint/ListMarkerPainter.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 388 matching lines...) Expand 10 before | Expand all | Expand 10 after
399 return String(characters, length); 399 return String(characters, length);
400 } 400 }
401 401
402 static EListStyleType effectiveListMarkerType(EListStyleType type, int value) 402 static EListStyleType effectiveListMarkerType(EListStyleType type, int value)
403 { 403 {
404 // Note, the following switch statement has been explicitly grouped 404 // Note, the following switch statement has been explicitly grouped
405 // by list-style-type ordinal range. 405 // by list-style-type ordinal range.
406 switch (type) { 406 switch (type) {
407 case ArabicIndic: 407 case ArabicIndic:
408 case Bengali: 408 case Bengali:
409 case BinaryListStyle:
410 case Cambodian: 409 case Cambodian:
411 case Circle: 410 case Circle:
412 case DecimalLeadingZero: 411 case DecimalLeadingZero:
413 case DecimalListStyle: 412 case DecimalListStyle:
414 case Devanagari: 413 case Devanagari:
415 case Disc: 414 case Disc:
416 case Gujarati: 415 case Gujarati:
417 case Gurmukhi: 416 case Gurmukhi:
418 case Kannada: 417 case Kannada:
419 case Khmer: 418 case Khmer:
420 case Lao: 419 case Lao:
421 case LowerHexadecimal:
422 case Malayalam: 420 case Malayalam:
423 case Mongolian: 421 case Mongolian:
424 case Myanmar: 422 case Myanmar:
425 case NoneListStyle: 423 case NoneListStyle:
426 case Octal:
427 case Oriya: 424 case Oriya:
428 case Persian: 425 case Persian:
429 case Square: 426 case Square:
430 case Telugu: 427 case Telugu:
431 case Thai: 428 case Thai:
432 case Tibetan: 429 case Tibetan:
433 case UpperHexadecimal:
434 case Urdu: 430 case Urdu:
435 return type; // Can represent all ordinals. 431 return type; // Can represent all ordinals.
436 case Armenian: 432 case Armenian:
437 return (value < 1 || value > 99999999) ? DecimalListStyle : type; 433 return (value < 1 || value > 99999999) ? DecimalListStyle : type;
438 case CJKIdeographic: 434 case CJKIdeographic:
439 return (value < 0) ? DecimalListStyle : type; 435 return (value < 0) ? DecimalListStyle : type;
440 case Georgian: 436 case Georgian:
441 return (value < 1 || value > 19999) ? DecimalListStyle : type; 437 return (value < 1 || value > 19999) ? DecimalListStyle : type;
442 case Hebrew: 438 case Hebrew:
443 return (value < 0 || value > 999999) ? DecimalListStyle : type; 439 return (value < 0 || value > 999999) ? DecimalListStyle : type;
444 case LowerRoman: 440 case LowerRoman:
445 case UpperRoman: 441 case UpperRoman:
446 return (value < 1 || value > 3999) ? DecimalListStyle : type; 442 return (value < 1 || value > 3999) ? DecimalListStyle : type;
447 case Afar:
448 case Amharic:
449 case AmharicAbegede:
450 case Asterisks:
451 case CjkEarthlyBranch: 443 case CjkEarthlyBranch:
452 case CjkHeavenlyStem: 444 case CjkHeavenlyStem:
453 case Ethiopic: 445 case EthiopicHalehameAm:
454 case EthiopicAbegede: 446 case EthiopicHalehame:
455 case EthiopicAbegedeAmEt:
456 case EthiopicAbegedeGez:
457 case EthiopicAbegedeTiEr:
458 case EthiopicAbegedeTiEt:
459 case EthiopicHalehameAaEr:
460 case EthiopicHalehameAaEt:
461 case EthiopicHalehameAmEt:
462 case EthiopicHalehameGez:
463 case EthiopicHalehameOmEt:
464 case EthiopicHalehameSidEt:
465 case EthiopicHalehameSoEt:
466 case EthiopicHalehameTiEr: 447 case EthiopicHalehameTiEr:
467 case EthiopicHalehameTiEt: 448 case EthiopicHalehameTiEt:
468 case EthiopicHalehameTig:
469 case Footnotes:
470 case Hangul: 449 case Hangul:
471 case HangulConsonant: 450 case HangulConsonant:
472 case Hiragana: 451 case Hiragana:
473 case HiraganaIroha: 452 case HiraganaIroha:
474 case Katakana: 453 case Katakana:
475 case KatakanaIroha: 454 case KatakanaIroha:
476 case LowerAlpha: 455 case LowerAlpha:
477 case LowerArmenian: 456 case LowerArmenian:
478 case LowerGreek: 457 case LowerGreek:
479 case LowerLatin: 458 case LowerLatin:
480 case LowerNorwegian:
481 case Oromo:
482 case Sidama:
483 case Somali:
484 case Tigre:
485 case TigrinyaEr:
486 case TigrinyaErAbegede:
487 case TigrinyaEt:
488 case TigrinyaEtAbegede:
489 case UpperAlpha: 459 case UpperAlpha:
490 case UpperArmenian: 460 case UpperArmenian:
491 case UpperGreek:
492 case UpperLatin: 461 case UpperLatin:
493 case UpperNorwegian:
494 return (value < 1) ? DecimalListStyle : type; 462 return (value < 1) ? DecimalListStyle : type;
495 } 463 }
496 464
497 ASSERT_NOT_REACHED(); 465 ASSERT_NOT_REACHED();
498 return type; 466 return type;
499 } 467 }
500 468
501 UChar LayoutListMarker::listMarkerSuffix(EListStyleType type, int value) 469 UChar LayoutListMarker::listMarkerSuffix(EListStyleType type, int value)
502 { 470 {
503 // If the list-style-type cannot represent |value| because it's outside its 471 // If the list-style-type cannot represent |value| because it's outside its
504 // ordinal range then we fall back to some list style that can represent |va lue|. 472 // ordinal range then we fall back to some list style that can represent |va lue|.
505 EListStyleType effectiveType = effectiveListMarkerType(type, value); 473 EListStyleType effectiveType = effectiveListMarkerType(type, value);
506 474
507 // Note, the following switch statement has been explicitly 475 // Note, the following switch statement has been explicitly
508 // grouped by list-style-type suffix. 476 // grouped by list-style-type suffix.
509 switch (effectiveType) { 477 switch (effectiveType) {
510 case Asterisks:
511 case Circle: 478 case Circle:
512 case Disc: 479 case Disc:
513 case Footnotes:
514 case NoneListStyle: 480 case NoneListStyle:
515 case Square: 481 case Square:
516 return ' '; 482 return ' ';
517 case Afar: 483 case EthiopicHalehame:
518 case Amharic: 484 case EthiopicHalehameAm:
519 case AmharicAbegede:
520 case Ethiopic:
521 case EthiopicAbegede:
522 case EthiopicAbegedeAmEt:
523 case EthiopicAbegedeGez:
524 case EthiopicAbegedeTiEr:
525 case EthiopicAbegedeTiEt:
526 case EthiopicHalehameAaEr:
527 case EthiopicHalehameAaEt:
528 case EthiopicHalehameAmEt:
529 case EthiopicHalehameGez:
530 case EthiopicHalehameOmEt:
531 case EthiopicHalehameSidEt:
532 case EthiopicHalehameSoEt:
533 case EthiopicHalehameTiEr: 485 case EthiopicHalehameTiEr:
534 case EthiopicHalehameTiEt: 486 case EthiopicHalehameTiEt:
535 case EthiopicHalehameTig:
536 case Oromo:
537 case Sidama:
538 case Somali:
539 case Tigre:
540 case TigrinyaEr:
541 case TigrinyaErAbegede:
542 case TigrinyaEt:
543 case TigrinyaEtAbegede:
544 return ethiopicPrefaceColonCharacter; 487 return ethiopicPrefaceColonCharacter;
545 case Armenian: 488 case Armenian:
546 case ArabicIndic: 489 case ArabicIndic:
547 case Bengali: 490 case Bengali:
548 case BinaryListStyle:
549 case Cambodian: 491 case Cambodian:
550 case CJKIdeographic: 492 case CJKIdeographic:
551 case CjkEarthlyBranch: 493 case CjkEarthlyBranch:
552 case CjkHeavenlyStem: 494 case CjkHeavenlyStem:
553 case DecimalLeadingZero: 495 case DecimalLeadingZero:
554 case DecimalListStyle: 496 case DecimalListStyle:
555 case Devanagari: 497 case Devanagari:
556 case Georgian: 498 case Georgian:
557 case Gujarati: 499 case Gujarati:
558 case Gurmukhi: 500 case Gurmukhi:
559 case Hangul: 501 case Hangul:
560 case HangulConsonant: 502 case HangulConsonant:
561 case Hebrew: 503 case Hebrew:
562 case Hiragana: 504 case Hiragana:
563 case HiraganaIroha: 505 case HiraganaIroha:
564 case Kannada: 506 case Kannada:
565 case Katakana: 507 case Katakana:
566 case KatakanaIroha: 508 case KatakanaIroha:
567 case Khmer: 509 case Khmer:
568 case Lao: 510 case Lao:
569 case LowerAlpha: 511 case LowerAlpha:
570 case LowerArmenian: 512 case LowerArmenian:
571 case LowerGreek: 513 case LowerGreek:
572 case LowerHexadecimal:
573 case LowerLatin: 514 case LowerLatin:
574 case LowerNorwegian:
575 case LowerRoman: 515 case LowerRoman:
576 case Malayalam: 516 case Malayalam:
577 case Mongolian: 517 case Mongolian:
578 case Myanmar: 518 case Myanmar:
579 case Octal:
580 case Oriya: 519 case Oriya:
581 case Persian: 520 case Persian:
582 case Telugu: 521 case Telugu:
583 case Thai: 522 case Thai:
584 case Tibetan: 523 case Tibetan:
585 case UpperAlpha: 524 case UpperAlpha:
586 case UpperArmenian: 525 case UpperArmenian:
587 case UpperGreek:
588 case UpperHexadecimal:
589 case UpperLatin: 526 case UpperLatin:
590 case UpperNorwegian:
591 case UpperRoman: 527 case UpperRoman:
592 case Urdu: 528 case Urdu:
593 return '.'; 529 return '.';
594 } 530 }
595 531
596 ASSERT_NOT_REACHED(); 532 ASSERT_NOT_REACHED();
597 return '.'; 533 return '.';
598 } 534 }
599 535
600 String listMarkerText(EListStyleType type, int value) 536 String listMarkerText(EListStyleType type, int value)
601 { 537 {
602 // If the list-style-type, say hebrew, cannot represent |value| because it's outside 538 // If the list-style-type, say hebrew, cannot represent |value| because it's outside
603 // its ordinal range then we fallback to some list style that can represent |value|. 539 // its ordinal range then we fallback to some list style that can represent |value|.
604 switch (effectiveListMarkerType(type, value)) { 540 switch (effectiveListMarkerType(type, value)) {
605 case NoneListStyle: 541 case NoneListStyle:
606 return ""; 542 return "";
607 543
608 case Asterisks: {
609 static const LChar asterisksSymbols[1] = {
610 0x2A
611 };
612 return toSymbolic(value, asterisksSymbols);
613 }
614 // We use the same characters for text security. 544 // We use the same characters for text security.
615 // See LayoutText::setInternalString. 545 // See LayoutText::setInternalString.
616 case Circle: 546 case Circle:
617 return String(&whiteBulletCharacter, 1); 547 return String(&whiteBulletCharacter, 1);
618 case Disc: 548 case Disc:
619 return String(&bulletCharacter, 1); 549 return String(&bulletCharacter, 1);
620 case Footnotes: {
621 static const UChar footnotesSymbols[4] = {
622 0x002A, 0x2051, 0x2020, 0x2021
623 };
624 return toSymbolic(value, footnotesSymbols);
625 }
626 case Square: 550 case Square:
627 // The CSS 2.1 test suite uses U+25EE BLACK MEDIUM SMALL SQUARE 551 // The CSS 2.1 test suite uses U+25EE BLACK MEDIUM SMALL SQUARE
628 // instead, but I think this looks better. 552 // instead, but I think this looks better.
629 return String(&blackSquareCharacter, 1); 553 return String(&blackSquareCharacter, 1);
630 554
631 case DecimalListStyle: 555 case DecimalListStyle:
632 return String::number(value); 556 return String::number(value);
633 case DecimalLeadingZero: 557 case DecimalLeadingZero:
634 if (value < -9 || value > 9) 558 if (value < -9 || value > 9)
635 return String::number(value); 559 return String::number(value);
636 if (value < 0) 560 if (value < 0)
637 return "-0" + String::number(-value); // -01 to -09 561 return "-0" + String::number(-value); // -01 to -09
638 return "0" + String::number(value); // 00 to 09 562 return "0" + String::number(value); // 00 to 09
639 563
640 case ArabicIndic: { 564 case ArabicIndic: {
641 static const UChar arabicIndicNumerals[10] = { 565 static const UChar arabicIndicNumerals[10] = {
642 0x0660, 0x0661, 0x0662, 0x0663, 0x0664, 0x0665, 0x0666, 0x0667, 0x06 68, 0x0669 566 0x0660, 0x0661, 0x0662, 0x0663, 0x0664, 0x0665, 0x0666, 0x0667, 0x06 68, 0x0669
643 }; 567 };
644 return toNumeric(value, arabicIndicNumerals); 568 return toNumeric(value, arabicIndicNumerals);
645 } 569 }
646 case BinaryListStyle: {
647 static const LChar binaryNumerals[2] = {
648 '0', '1'
649 };
650 return toNumeric(value, binaryNumerals);
651 }
652 case Bengali: { 570 case Bengali: {
653 static const UChar bengaliNumerals[10] = { 571 static const UChar bengaliNumerals[10] = {
654 0x09E6, 0x09E7, 0x09E8, 0x09E9, 0x09EA, 0x09EB, 0x09EC, 0x09ED, 0x09 EE, 0x09EF 572 0x09E6, 0x09E7, 0x09E8, 0x09E9, 0x09EA, 0x09EB, 0x09EC, 0x09ED, 0x09 EE, 0x09EF
655 }; 573 };
656 return toNumeric(value, bengaliNumerals); 574 return toNumeric(value, bengaliNumerals);
657 } 575 }
658 case Cambodian: 576 case Cambodian:
659 case Khmer: { 577 case Khmer: {
660 static const UChar khmerNumerals[10] = { 578 static const UChar khmerNumerals[10] = {
661 0x17E0, 0x17E1, 0x17E2, 0x17E3, 0x17E4, 0x17E5, 0x17E6, 0x17E7, 0x17 E8, 0x17E9 579 0x17E0, 0x17E1, 0x17E2, 0x17E3, 0x17E4, 0x17E5, 0x17E6, 0x17E7, 0x17 E8, 0x17E9
(...skipping 17 matching lines...) Expand all
679 0x0A66, 0x0A67, 0x0A68, 0x0A69, 0x0A6A, 0x0A6B, 0x0A6C, 0x0A6D, 0x0A 6E, 0x0A6F 597 0x0A66, 0x0A67, 0x0A68, 0x0A69, 0x0A6A, 0x0A6B, 0x0A6C, 0x0A6D, 0x0A 6E, 0x0A6F
680 }; 598 };
681 return toNumeric(value, gurmukhiNumerals); 599 return toNumeric(value, gurmukhiNumerals);
682 } 600 }
683 case Kannada: { 601 case Kannada: {
684 static const UChar kannadaNumerals[10] = { 602 static const UChar kannadaNumerals[10] = {
685 0x0CE6, 0x0CE7, 0x0CE8, 0x0CE9, 0x0CEA, 0x0CEB, 0x0CEC, 0x0CED, 0x0C EE, 0x0CEF 603 0x0CE6, 0x0CE7, 0x0CE8, 0x0CE9, 0x0CEA, 0x0CEB, 0x0CEC, 0x0CED, 0x0C EE, 0x0CEF
686 }; 604 };
687 return toNumeric(value, kannadaNumerals); 605 return toNumeric(value, kannadaNumerals);
688 } 606 }
689 case LowerHexadecimal: {
690 static const LChar lowerHexadecimalNumerals[16] = {
691 '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd' , 'e', 'f'
692 };
693 return toNumeric(value, lowerHexadecimalNumerals);
694 }
695 case Lao: { 607 case Lao: {
696 static const UChar laoNumerals[10] = { 608 static const UChar laoNumerals[10] = {
697 0x0ED0, 0x0ED1, 0x0ED2, 0x0ED3, 0x0ED4, 0x0ED5, 0x0ED6, 0x0ED7, 0x0E D8, 0x0ED9 609 0x0ED0, 0x0ED1, 0x0ED2, 0x0ED3, 0x0ED4, 0x0ED5, 0x0ED6, 0x0ED7, 0x0E D8, 0x0ED9
698 }; 610 };
699 return toNumeric(value, laoNumerals); 611 return toNumeric(value, laoNumerals);
700 } 612 }
701 case Malayalam: { 613 case Malayalam: {
702 static const UChar malayalamNumerals[10] = { 614 static const UChar malayalamNumerals[10] = {
703 0x0D66, 0x0D67, 0x0D68, 0x0D69, 0x0D6A, 0x0D6B, 0x0D6C, 0x0D6D, 0x0D 6E, 0x0D6F 615 0x0D66, 0x0D67, 0x0D68, 0x0D69, 0x0D6A, 0x0D6B, 0x0D6C, 0x0D6D, 0x0D 6E, 0x0D6F
704 }; 616 };
705 return toNumeric(value, malayalamNumerals); 617 return toNumeric(value, malayalamNumerals);
706 } 618 }
707 case Mongolian: { 619 case Mongolian: {
708 static const UChar mongolianNumerals[10] = { 620 static const UChar mongolianNumerals[10] = {
709 0x1810, 0x1811, 0x1812, 0x1813, 0x1814, 0x1815, 0x1816, 0x1817, 0x18 18, 0x1819 621 0x1810, 0x1811, 0x1812, 0x1813, 0x1814, 0x1815, 0x1816, 0x1817, 0x18 18, 0x1819
710 }; 622 };
711 return toNumeric(value, mongolianNumerals); 623 return toNumeric(value, mongolianNumerals);
712 } 624 }
713 case Myanmar: { 625 case Myanmar: {
714 static const UChar myanmarNumerals[10] = { 626 static const UChar myanmarNumerals[10] = {
715 0x1040, 0x1041, 0x1042, 0x1043, 0x1044, 0x1045, 0x1046, 0x1047, 0x10 48, 0x1049 627 0x1040, 0x1041, 0x1042, 0x1043, 0x1044, 0x1045, 0x1046, 0x1047, 0x10 48, 0x1049
716 }; 628 };
717 return toNumeric(value, myanmarNumerals); 629 return toNumeric(value, myanmarNumerals);
718 } 630 }
719 case Octal: {
720 static const LChar octalNumerals[8] = {
721 '0', '1', '2', '3', '4', '5', '6', '7'
722 };
723 return toNumeric(value, octalNumerals);
724 }
725 case Oriya: { 631 case Oriya: {
726 static const UChar oriyaNumerals[10] = { 632 static const UChar oriyaNumerals[10] = {
727 0x0B66, 0x0B67, 0x0B68, 0x0B69, 0x0B6A, 0x0B6B, 0x0B6C, 0x0B6D, 0x0B 6E, 0x0B6F 633 0x0B66, 0x0B67, 0x0B68, 0x0B69, 0x0B6A, 0x0B6B, 0x0B6C, 0x0B6D, 0x0B 6E, 0x0B6F
728 }; 634 };
729 return toNumeric(value, oriyaNumerals); 635 return toNumeric(value, oriyaNumerals);
730 } 636 }
731 case Persian: 637 case Persian:
732 case Urdu: { 638 case Urdu: {
733 static const UChar urduNumerals[10] = { 639 static const UChar urduNumerals[10] = {
734 0x06F0, 0x06F1, 0x06F2, 0x06F3, 0x06F4, 0x06F5, 0x06F6, 0x06F7, 0x06 F8, 0x06F9 640 0x06F0, 0x06F1, 0x06F2, 0x06F3, 0x06F4, 0x06F5, 0x06F6, 0x06F7, 0x06 F8, 0x06F9
(...skipping 11 matching lines...) Expand all
746 0x0F20, 0x0F21, 0x0F22, 0x0F23, 0x0F24, 0x0F25, 0x0F26, 0x0F27, 0x0F 28, 0x0F29 652 0x0F20, 0x0F21, 0x0F22, 0x0F23, 0x0F24, 0x0F25, 0x0F26, 0x0F27, 0x0F 28, 0x0F29
747 }; 653 };
748 return toNumeric(value, tibetanNumerals); 654 return toNumeric(value, tibetanNumerals);
749 } 655 }
750 case Thai: { 656 case Thai: {
751 static const UChar thaiNumerals[10] = { 657 static const UChar thaiNumerals[10] = {
752 0x0E50, 0x0E51, 0x0E52, 0x0E53, 0x0E54, 0x0E55, 0x0E56, 0x0E57, 0x0E 58, 0x0E59 658 0x0E50, 0x0E51, 0x0E52, 0x0E53, 0x0E54, 0x0E55, 0x0E56, 0x0E57, 0x0E 58, 0x0E59
753 }; 659 };
754 return toNumeric(value, thaiNumerals); 660 return toNumeric(value, thaiNumerals);
755 } 661 }
756 case UpperHexadecimal: {
757 static const LChar upperHexadecimalNumerals[16] = {
758 '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D' , 'E', 'F'
759 };
760 return toNumeric(value, upperHexadecimalNumerals);
761 }
762 662
763 case LowerAlpha: 663 case LowerAlpha:
764 case LowerLatin: { 664 case LowerLatin: {
765 static const LChar lowerLatinAlphabet[26] = { 665 static const LChar lowerLatinAlphabet[26] = {
766 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 666 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
767 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' 667 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'
768 }; 668 };
769 return toAlphabetic(value, lowerLatinAlphabet); 669 return toAlphabetic(value, lowerLatinAlphabet);
770 } 670 }
771 case UpperAlpha: 671 case UpperAlpha:
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
831 0x30A4, 0x30ED, 0x30CF, 0x30CB, 0x30DB, 0x30D8, 0x30C8, 0x30C1, 731 0x30A4, 0x30ED, 0x30CF, 0x30CB, 0x30DB, 0x30D8, 0x30C8, 0x30C1,
832 0x30EA, 0x30CC, 0x30EB, 0x30F2, 0x30EF, 0x30AB, 0x30E8, 0x30BF, 732 0x30EA, 0x30CC, 0x30EB, 0x30F2, 0x30EF, 0x30AB, 0x30E8, 0x30BF,
833 0x30EC, 0x30BD, 0x30C4, 0x30CD, 0x30CA, 0x30E9, 0x30E0, 0x30A6, 733 0x30EC, 0x30BD, 0x30C4, 0x30CD, 0x30CA, 0x30E9, 0x30E0, 0x30A6,
834 0x30F0, 0x30CE, 0x30AA, 0x30AF, 0x30E4, 0x30DE, 0x30B1, 0x30D5, 734 0x30F0, 0x30CE, 0x30AA, 0x30AF, 0x30E4, 0x30DE, 0x30B1, 0x30D5,
835 0x30B3, 0x30A8, 0x30C6, 0x30A2, 0x30B5, 0x30AD, 0x30E6, 0x30E1, 735 0x30B3, 0x30A8, 0x30C6, 0x30A2, 0x30B5, 0x30AD, 0x30E6, 0x30E1,
836 0x30DF, 0x30B7, 0x30F1, 0x30D2, 0x30E2, 0x30BB, 0x30B9 736 0x30DF, 0x30B7, 0x30F1, 0x30D2, 0x30E2, 0x30BB, 0x30B9
837 }; 737 };
838 return toAlphabetic(value, katakanaIrohaAlphabet); 738 return toAlphabetic(value, katakanaIrohaAlphabet);
839 } 739 }
840 740
841 case Afar:
842 case EthiopicHalehameAaEt:
843 case EthiopicHalehameAaEr: {
844 static const UChar ethiopicHalehameAaErAlphabet[18] = {
845 0x1200, 0x1208, 0x1210, 0x1218, 0x1228, 0x1230, 0x1260, 0x1270, 0x12 90,
846 0x12A0, 0x12A8, 0x12C8, 0x12D0, 0x12E8, 0x12F0, 0x1308, 0x1338, 0x13 48
847 };
848 return toAlphabetic(value, ethiopicHalehameAaErAlphabet);
849 }
850 case Amharic:
851 case EthiopicHalehameAmEt: {
852 static const UChar ethiopicHalehameAmEtAlphabet[33] = {
853 0x1200, 0x1208, 0x1210, 0x1218, 0x1220, 0x1228, 0x1230, 0x1238, 0x12 40,
854 0x1260, 0x1270, 0x1278, 0x1280, 0x1290, 0x1298, 0x12A0, 0x12A8, 0x12 B8,
855 0x12C8, 0x12D0, 0x12D8, 0x12E0, 0x12E8, 0x12F0, 0x1300, 0x1308, 0x13 20,
856 0x1328, 0x1330, 0x1338, 0x1340, 0x1348, 0x1350
857 };
858 return toAlphabetic(value, ethiopicHalehameAmEtAlphabet);
859 }
860 case AmharicAbegede:
861 case EthiopicAbegedeAmEt: {
862 static const UChar ethiopicAbegedeAmEtAlphabet[33] = {
863 0x12A0, 0x1260, 0x1308, 0x12F0, 0x1300, 0x1200, 0x12C8, 0x12D8, 0x12 E0,
864 0x1210, 0x1320, 0x1328, 0x12E8, 0x12A8, 0x12B8, 0x1208, 0x1218, 0x12 90,
865 0x1298, 0x1220, 0x12D0, 0x1348, 0x1338, 0x1240, 0x1228, 0x1230, 0x12 38,
866 0x1270, 0x1278, 0x1280, 0x1340, 0x1330, 0x1350
867 };
868 return toAlphabetic(value, ethiopicAbegedeAmEtAlphabet);
869 }
870 case CjkEarthlyBranch: { 741 case CjkEarthlyBranch: {
871 static const UChar cjkEarthlyBranchAlphabet[12] = { 742 static const UChar cjkEarthlyBranchAlphabet[12] = {
872 0x5B50, 0x4E11, 0x5BC5, 0x536F, 0x8FB0, 0x5DF3, 0x5348, 0x672A, 0x75 33, 743 0x5B50, 0x4E11, 0x5BC5, 0x536F, 0x8FB0, 0x5DF3, 0x5348, 0x672A, 0x75 33,
873 0x9149, 0x620C, 0x4EA5 744 0x9149, 0x620C, 0x4EA5
874 }; 745 };
875 return toAlphabetic(value, cjkEarthlyBranchAlphabet); 746 return toAlphabetic(value, cjkEarthlyBranchAlphabet);
876 } 747 }
877 case CjkHeavenlyStem: { 748 case CjkHeavenlyStem: {
878 static const UChar cjkHeavenlyStemAlphabet[10] = { 749 static const UChar cjkHeavenlyStemAlphabet[10] = {
879 0x7532, 0x4E59, 0x4E19, 0x4E01, 0x620A, 0x5DF1, 0x5E9A, 0x8F9B, 0x58 EC, 750 0x7532, 0x4E59, 0x4E19, 0x4E01, 0x620A, 0x5DF1, 0x5E9A, 0x8F9B, 0x58 EC,
880 0x7678 751 0x7678
881 }; 752 };
882 return toAlphabetic(value, cjkHeavenlyStemAlphabet); 753 return toAlphabetic(value, cjkHeavenlyStemAlphabet);
883 } 754 }
884 case Ethiopic:
885 case EthiopicHalehameGez: {
886 static const UChar ethiopicHalehameGezAlphabet[26] = {
887 0x1200, 0x1208, 0x1210, 0x1218, 0x1220, 0x1228, 0x1230, 0x1240, 0x12 60,
888 0x1270, 0x1280, 0x1290, 0x12A0, 0x12A8, 0x12C8, 0x12D0, 0x12D8, 0x12 E8,
889 0x12F0, 0x1308, 0x1320, 0x1330, 0x1338, 0x1340, 0x1348, 0x1350
890 };
891 return toAlphabetic(value, ethiopicHalehameGezAlphabet);
892 }
893 case EthiopicAbegede:
894 case EthiopicAbegedeGez: {
895 static const UChar ethiopicAbegedeGezAlphabet[26] = {
896 0x12A0, 0x1260, 0x1308, 0x12F0, 0x1200, 0x12C8, 0x12D8, 0x1210, 0x13 20,
897 0x12E8, 0x12A8, 0x1208, 0x1218, 0x1290, 0x1220, 0x12D0, 0x1348, 0x13 38,
898 0x1240, 0x1228, 0x1230, 0x1270, 0x1280, 0x1340, 0x1330, 0x1350
899 };
900 return toAlphabetic(value, ethiopicAbegedeGezAlphabet);
901 }
902 case HangulConsonant: { 755 case HangulConsonant: {
903 static const UChar hangulConsonantAlphabet[14] = { 756 static const UChar hangulConsonantAlphabet[14] = {
904 0x3131, 0x3134, 0x3137, 0x3139, 0x3141, 0x3142, 0x3145, 0x3147, 0x31 48, 757 0x3131, 0x3134, 0x3137, 0x3139, 0x3141, 0x3142, 0x3145, 0x3147, 0x31 48,
905 0x314A, 0x314B, 0x314C, 0x314D, 0x314E 758 0x314A, 0x314B, 0x314C, 0x314D, 0x314E
906 }; 759 };
907 return toAlphabetic(value, hangulConsonantAlphabet); 760 return toAlphabetic(value, hangulConsonantAlphabet);
908 } 761 }
909 case Hangul: { 762 case Hangul: {
910 static const UChar hangulAlphabet[14] = { 763 static const UChar hangulAlphabet[14] = {
911 0xAC00, 0xB098, 0xB2E4, 0xB77C, 0xB9C8, 0xBC14, 0xC0AC, 0xC544, 0xC7 90, 764 0xAC00, 0xB098, 0xB2E4, 0xB77C, 0xB9C8, 0xBC14, 0xC0AC, 0xC544, 0xC7 90,
912 0xCC28, 0xCE74, 0xD0C0, 0xD30C, 0xD558 765 0xCC28, 0xCE74, 0xD0C0, 0xD30C, 0xD558
913 }; 766 };
914 return toAlphabetic(value, hangulAlphabet); 767 return toAlphabetic(value, hangulAlphabet);
915 } 768 }
916 case Oromo: 769 case EthiopicHalehame: {
917 case EthiopicHalehameOmEt: { 770 static const UChar ethiopicHalehameGezAlphabet[26] = {
918 static const UChar ethiopicHalehameOmEtAlphabet[25] = { 771 0x1200, 0x1208, 0x1210, 0x1218, 0x1220, 0x1228, 0x1230, 0x1240, 0x12 60,
919 0x1200, 0x1208, 0x1218, 0x1228, 0x1230, 0x1238, 0x1240, 0x1260, 0x12 70, 772 0x1270, 0x1280, 0x1290, 0x12A0, 0x12A8, 0x12C8, 0x12D0, 0x12D8, 0x12 E8,
920 0x1278, 0x1290, 0x1298, 0x12A0, 0x12A8, 0x12C8, 0x12E8, 0x12F0, 0x12 F8, 773 0x12F0, 0x1308, 0x1320, 0x1330, 0x1338, 0x1340, 0x1348, 0x1350
921 0x1300, 0x1308, 0x1320, 0x1328, 0x1338, 0x1330, 0x1348
922 }; 774 };
923 return toAlphabetic(value, ethiopicHalehameOmEtAlphabet); 775 return toAlphabetic(value, ethiopicHalehameGezAlphabet);
924 } 776 }
925 case Sidama: 777 case EthiopicHalehameAm: {
926 case EthiopicHalehameSidEt: { 778 static const UChar ethiopicHalehameAmAlphabet[33] = {
927 static const UChar ethiopicHalehameSidEtAlphabet[26] = { 779 0x1200, 0x1208, 0x1210, 0x1218, 0x1220, 0x1228, 0x1230, 0x1238, 0x12 40,
928 0x1200, 0x1208, 0x1210, 0x1218, 0x1228, 0x1230, 0x1238, 0x1240, 0x12 60, 780 0x1260, 0x1270, 0x1278, 0x1280, 0x1290, 0x1298, 0x12A0, 0x12A8, 0x12 B8,
929 0x1270, 0x1278, 0x1290, 0x1298, 0x12A0, 0x12A8, 0x12C8, 0x12E8, 0x12 F0, 781 0x12C8, 0x12D0, 0x12D8, 0x12E0, 0x12E8, 0x12F0, 0x1300, 0x1308, 0x13 20,
930 0x12F8, 0x1300, 0x1308, 0x1320, 0x1328, 0x1338, 0x1330, 0x1348 782 0x1328, 0x1330, 0x1338, 0x1340, 0x1348, 0x1350
931 }; 783 };
932 return toAlphabetic(value, ethiopicHalehameSidEtAlphabet); 784 return toAlphabetic(value, ethiopicHalehameAmAlphabet);
933 } 785 }
934 case Somali:
935 case EthiopicHalehameSoEt: {
936 static const UChar ethiopicHalehameSoEtAlphabet[22] = {
937 0x1200, 0x1208, 0x1210, 0x1218, 0x1228, 0x1230, 0x1238, 0x1240, 0x12 60,
938 0x1270, 0x1290, 0x12A0, 0x12A8, 0x12B8, 0x12C8, 0x12D0, 0x12E8, 0x12 F0,
939 0x1300, 0x1308, 0x1338, 0x1348
940 };
941 return toAlphabetic(value, ethiopicHalehameSoEtAlphabet);
942 }
943 case Tigre:
944 case EthiopicHalehameTig: {
945 static const UChar ethiopicHalehameTigAlphabet[27] = {
946 0x1200, 0x1208, 0x1210, 0x1218, 0x1228, 0x1230, 0x1238, 0x1240, 0x12 60,
947 0x1270, 0x1278, 0x1290, 0x12A0, 0x12A8, 0x12C8, 0x12D0, 0x12D8, 0x12 E8,
948 0x12F0, 0x1300, 0x1308, 0x1320, 0x1328, 0x1338, 0x1330, 0x1348, 0x13 50
949 };
950 return toAlphabetic(value, ethiopicHalehameTigAlphabet);
951 }
952 case TigrinyaEr:
953 case EthiopicHalehameTiEr: { 786 case EthiopicHalehameTiEr: {
954 static const UChar ethiopicHalehameTiErAlphabet[31] = { 787 static const UChar ethiopicHalehameTiErAlphabet[31] = {
955 0x1200, 0x1208, 0x1210, 0x1218, 0x1228, 0x1230, 0x1238, 0x1240, 0x12 50, 788 0x1200, 0x1208, 0x1210, 0x1218, 0x1228, 0x1230, 0x1238, 0x1240, 0x12 50,
956 0x1260, 0x1270, 0x1278, 0x1290, 0x1298, 0x12A0, 0x12A8, 0x12B8, 0x12 C8, 789 0x1260, 0x1270, 0x1278, 0x1290, 0x1298, 0x12A0, 0x12A8, 0x12B8, 0x12 C8,
957 0x12D0, 0x12D8, 0x12E0, 0x12E8, 0x12F0, 0x1300, 0x1308, 0x1320, 0x13 28, 790 0x12D0, 0x12D8, 0x12E0, 0x12E8, 0x12F0, 0x1300, 0x1308, 0x1320, 0x13 28,
958 0x1330, 0x1338, 0x1348, 0x1350 791 0x1330, 0x1338, 0x1348, 0x1350
959 }; 792 };
960 return toAlphabetic(value, ethiopicHalehameTiErAlphabet); 793 return toAlphabetic(value, ethiopicHalehameTiErAlphabet);
961 } 794 }
962 case TigrinyaErAbegede:
963 case EthiopicAbegedeTiEr: {
964 static const UChar ethiopicAbegedeTiErAlphabet[31] = {
965 0x12A0, 0x1260, 0x1308, 0x12F0, 0x1300, 0x1200, 0x12C8, 0x12D8, 0x12 E0,
966 0x1210, 0x1320, 0x1328, 0x12E8, 0x12A8, 0x12B8, 0x1208, 0x1218, 0x12 90,
967 0x1298, 0x12D0, 0x1348, 0x1338, 0x1240, 0x1250, 0x1228, 0x1230, 0x12 38,
968 0x1270, 0x1278, 0x1330, 0x1350
969 };
970 return toAlphabetic(value, ethiopicAbegedeTiErAlphabet);
971 }
972 case TigrinyaEt:
973 case EthiopicHalehameTiEt: { 795 case EthiopicHalehameTiEt: {
974 static const UChar ethiopicHalehameTiEtAlphabet[34] = { 796 static const UChar ethiopicHalehameTiEtAlphabet[34] = {
975 0x1200, 0x1208, 0x1210, 0x1218, 0x1220, 0x1228, 0x1230, 0x1238, 0x12 40, 797 0x1200, 0x1208, 0x1210, 0x1218, 0x1220, 0x1228, 0x1230, 0x1238, 0x12 40,
976 0x1250, 0x1260, 0x1270, 0x1278, 0x1280, 0x1290, 0x1298, 0x12A0, 0x12 A8, 798 0x1250, 0x1260, 0x1270, 0x1278, 0x1280, 0x1290, 0x1298, 0x12A0, 0x12 A8,
977 0x12B8, 0x12C8, 0x12D0, 0x12D8, 0x12E0, 0x12E8, 0x12F0, 0x1300, 0x13 08, 799 0x12B8, 0x12C8, 0x12D0, 0x12D8, 0x12E0, 0x12E8, 0x12F0, 0x1300, 0x13 08,
978 0x1320, 0x1328, 0x1330, 0x1338, 0x1340, 0x1348, 0x1350 800 0x1320, 0x1328, 0x1330, 0x1338, 0x1340, 0x1348, 0x1350
979 }; 801 };
980 return toAlphabetic(value, ethiopicHalehameTiEtAlphabet); 802 return toAlphabetic(value, ethiopicHalehameTiEtAlphabet);
981 } 803 }
982 case TigrinyaEtAbegede:
983 case EthiopicAbegedeTiEt: {
984 static const UChar ethiopicAbegedeTiEtAlphabet[34] = {
985 0x12A0, 0x1260, 0x1308, 0x12F0, 0x1300, 0x1200, 0x12C8, 0x12D8, 0x12 E0,
986 0x1210, 0x1320, 0x1328, 0x12E8, 0x12A8, 0x12B8, 0x1208, 0x1218, 0x12 90,
987 0x1298, 0x1220, 0x12D0, 0x1348, 0x1338, 0x1240, 0x1250, 0x1228, 0x12 30,
988 0x1238, 0x1270, 0x1278, 0x1280, 0x1340, 0x1330, 0x1350
989 };
990 return toAlphabetic(value, ethiopicAbegedeTiEtAlphabet);
991 }
992 case UpperGreek: {
993 static const UChar upperGreekAlphabet[24] = {
994 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, 0x03 99,
995 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F, 0x03A0, 0x03A1, 0x03 A3,
996 0x03A4, 0x03A5, 0x03A6, 0x03A7, 0x03A8, 0x03A9
997 };
998 return toAlphabetic(value, upperGreekAlphabet);
999 }
1000 case LowerNorwegian: {
1001 static const LChar lowerNorwegianAlphabet[29] = {
1002 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69,
1003 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72,
1004 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0xE6,
1005 0xF8, 0xE5
1006 };
1007 return toAlphabetic(value, lowerNorwegianAlphabet);
1008 }
1009 case UpperNorwegian: {
1010 static const LChar upperNorwegianAlphabet[29] = {
1011 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49,
1012 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52,
1013 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0xC6,
1014 0xD8, 0xC5
1015 };
1016 return toAlphabetic(value, upperNorwegianAlphabet);
1017 }
1018 case CJKIdeographic: { 804 case CJKIdeographic: {
1019 static const UChar traditionalChineseInformalTable[16] = { 805 static const UChar traditionalChineseInformalTable[16] = {
1020 0x842C, 0x5104, 0x5146, 806 0x842C, 0x5104, 0x5146,
1021 0x5341, 0x767E, 0x5343, 807 0x5341, 0x767E, 0x5343,
1022 0x96F6, 0x4E00, 0x4E8C, 0x4E09, 0x56DB, 808 0x96F6, 0x4E00, 0x4E8C, 0x4E09, 0x56DB,
1023 0x4E94, 0x516D, 0x4E03, 0x516B, 0x4E5D 809 0x4E94, 0x516D, 0x4E03, 0x516B, 0x4E5D
1024 }; 810 };
1025 return toCJKIdeographic(value, traditionalChineseInformalTable); 811 return toCJKIdeographic(value, traditionalChineseInformalTable);
1026 } 812 }
1027 813
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after
1192 978
1193 EListStyleType type = style()->listStyleType(); 979 EListStyleType type = style()->listStyleType();
1194 switch (type) { 980 switch (type) {
1195 case NoneListStyle: 981 case NoneListStyle:
1196 break; 982 break;
1197 case Circle: 983 case Circle:
1198 case Disc: 984 case Disc:
1199 case Square: 985 case Square:
1200 m_text = listMarkerText(type, 0); // value is ignored for these types 986 m_text = listMarkerText(type, 0); // value is ignored for these types
1201 break; 987 break;
1202 case Asterisks:
1203 case Footnotes:
1204 case Afar:
1205 case Amharic:
1206 case AmharicAbegede:
1207 case ArabicIndic: 988 case ArabicIndic:
1208 case Armenian: 989 case Armenian:
1209 case BinaryListStyle:
1210 case Bengali: 990 case Bengali:
1211 case Cambodian: 991 case Cambodian:
1212 case CJKIdeographic: 992 case CJKIdeographic:
1213 case CjkEarthlyBranch: 993 case CjkEarthlyBranch:
1214 case CjkHeavenlyStem: 994 case CjkHeavenlyStem:
1215 case DecimalLeadingZero: 995 case DecimalLeadingZero:
1216 case DecimalListStyle: 996 case DecimalListStyle:
1217 case Devanagari: 997 case Devanagari:
1218 case Ethiopic: 998 case EthiopicHalehame:
1219 case EthiopicAbegede: 999 case EthiopicHalehameAm:
1220 case EthiopicAbegedeAmEt:
1221 case EthiopicAbegedeGez:
1222 case EthiopicAbegedeTiEr:
1223 case EthiopicAbegedeTiEt:
1224 case EthiopicHalehameAaEr:
1225 case EthiopicHalehameAaEt:
1226 case EthiopicHalehameAmEt:
1227 case EthiopicHalehameGez:
1228 case EthiopicHalehameOmEt:
1229 case EthiopicHalehameSidEt:
1230 case EthiopicHalehameSoEt:
1231 case EthiopicHalehameTiEr: 1000 case EthiopicHalehameTiEr:
1232 case EthiopicHalehameTiEt: 1001 case EthiopicHalehameTiEt:
1233 case EthiopicHalehameTig:
1234 case Georgian: 1002 case Georgian:
1235 case Gujarati: 1003 case Gujarati:
1236 case Gurmukhi: 1004 case Gurmukhi:
1237 case Hangul: 1005 case Hangul:
1238 case HangulConsonant: 1006 case HangulConsonant:
1239 case Hebrew: 1007 case Hebrew:
1240 case Hiragana: 1008 case Hiragana:
1241 case HiraganaIroha: 1009 case HiraganaIroha:
1242 case Kannada: 1010 case Kannada:
1243 case Katakana: 1011 case Katakana:
1244 case KatakanaIroha: 1012 case KatakanaIroha:
1245 case Khmer: 1013 case Khmer:
1246 case Lao: 1014 case Lao:
1247 case LowerAlpha: 1015 case LowerAlpha:
1248 case LowerArmenian: 1016 case LowerArmenian:
1249 case LowerGreek: 1017 case LowerGreek:
1250 case LowerHexadecimal:
1251 case LowerLatin: 1018 case LowerLatin:
1252 case LowerNorwegian:
1253 case LowerRoman: 1019 case LowerRoman:
1254 case Malayalam: 1020 case Malayalam:
1255 case Mongolian: 1021 case Mongolian:
1256 case Myanmar: 1022 case Myanmar:
1257 case Octal:
1258 case Oriya: 1023 case Oriya:
1259 case Oromo:
1260 case Persian: 1024 case Persian:
1261 case Sidama:
1262 case Somali:
1263 case Telugu: 1025 case Telugu:
1264 case Thai: 1026 case Thai:
1265 case Tibetan: 1027 case Tibetan:
1266 case Tigre:
1267 case TigrinyaEr:
1268 case TigrinyaErAbegede:
1269 case TigrinyaEt:
1270 case TigrinyaEtAbegede:
1271 case UpperAlpha: 1028 case UpperAlpha:
1272 case UpperArmenian: 1029 case UpperArmenian:
1273 case UpperGreek:
1274 case UpperHexadecimal:
1275 case UpperLatin: 1030 case UpperLatin:
1276 case UpperNorwegian:
1277 case UpperRoman: 1031 case UpperRoman:
1278 case Urdu: 1032 case Urdu:
1279 m_text = listMarkerText(type, m_listItem->value()); 1033 m_text = listMarkerText(type, m_listItem->value());
1280 break; 1034 break;
1281 } 1035 }
1282 } 1036 }
1283 1037
1284 void LayoutListMarker::computePreferredLogicalWidths() 1038 void LayoutListMarker::computePreferredLogicalWidths()
1285 { 1039 {
1286 ASSERT(preferredLogicalWidthsDirty()); 1040 ASSERT(preferredLogicalWidthsDirty());
1287 updateContent(); 1041 updateContent();
1288 1042
1289 if (isImage()) { 1043 if (isImage()) {
1290 LayoutSize imageSize = m_image->imageSize(this, style()->effectiveZoom() ); 1044 LayoutSize imageSize = m_image->imageSize(this, style()->effectiveZoom() );
1291 m_minPreferredLogicalWidth = m_maxPreferredLogicalWidth = style()->isHor izontalWritingMode() ? imageSize.width() : imageSize.height(); 1045 m_minPreferredLogicalWidth = m_maxPreferredLogicalWidth = style()->isHor izontalWritingMode() ? imageSize.width() : imageSize.height();
1292 clearPreferredLogicalWidthsDirty(); 1046 clearPreferredLogicalWidthsDirty();
1293 updateMargins(); 1047 updateMargins();
1294 return; 1048 return;
1295 } 1049 }
1296 1050
1297 const Font& font = style()->font(); 1051 const Font& font = style()->font();
1298 1052
1299 LayoutUnit logicalWidth = 0; 1053 LayoutUnit logicalWidth = 0;
1300 EListStyleType type = style()->listStyleType(); 1054 EListStyleType type = style()->listStyleType();
1301 switch (type) { 1055 switch (type) {
1302 case NoneListStyle: 1056 case NoneListStyle:
1303 break; 1057 break;
1304 case Asterisks:
1305 case Footnotes:
1306 logicalWidth = font.width(m_text); // no suffix for these types
1307 break;
1308 case Circle: 1058 case Circle:
1309 case Disc: 1059 case Disc:
1310 case Square: 1060 case Square:
1311 logicalWidth = (font.fontMetrics().ascent() * 2 / 3 + 1) / 2 + 2; 1061 logicalWidth = (font.fontMetrics().ascent() * 2 / 3 + 1) / 2 + 2;
1312 break; 1062 break;
1313 case Afar:
1314 case Amharic:
1315 case AmharicAbegede:
1316 case ArabicIndic: 1063 case ArabicIndic:
1317 case Armenian: 1064 case Armenian:
1318 case BinaryListStyle:
1319 case Bengali: 1065 case Bengali:
1320 case Cambodian: 1066 case Cambodian:
1321 case CJKIdeographic: 1067 case CJKIdeographic:
1322 case CjkEarthlyBranch: 1068 case CjkEarthlyBranch:
1323 case CjkHeavenlyStem: 1069 case CjkHeavenlyStem:
1324 case DecimalLeadingZero: 1070 case DecimalLeadingZero:
1325 case DecimalListStyle: 1071 case DecimalListStyle:
1326 case Devanagari: 1072 case Devanagari:
1327 case Ethiopic: 1073 case EthiopicHalehame:
1328 case EthiopicAbegede: 1074 case EthiopicHalehameAm:
1329 case EthiopicAbegedeAmEt:
1330 case EthiopicAbegedeGez:
1331 case EthiopicAbegedeTiEr:
1332 case EthiopicAbegedeTiEt:
1333 case EthiopicHalehameAaEr:
1334 case EthiopicHalehameAaEt:
1335 case EthiopicHalehameAmEt:
1336 case EthiopicHalehameGez:
1337 case EthiopicHalehameOmEt:
1338 case EthiopicHalehameSidEt:
1339 case EthiopicHalehameSoEt:
1340 case EthiopicHalehameTiEr: 1075 case EthiopicHalehameTiEr:
1341 case EthiopicHalehameTiEt: 1076 case EthiopicHalehameTiEt:
1342 case EthiopicHalehameTig:
1343 case Georgian: 1077 case Georgian:
1344 case Gujarati: 1078 case Gujarati:
1345 case Gurmukhi: 1079 case Gurmukhi:
1346 case Hangul: 1080 case Hangul:
1347 case HangulConsonant: 1081 case HangulConsonant:
1348 case Hebrew: 1082 case Hebrew:
1349 case Hiragana: 1083 case Hiragana:
1350 case HiraganaIroha: 1084 case HiraganaIroha:
1351 case Kannada: 1085 case Kannada:
1352 case Katakana: 1086 case Katakana:
1353 case KatakanaIroha: 1087 case KatakanaIroha:
1354 case Khmer: 1088 case Khmer:
1355 case Lao: 1089 case Lao:
1356 case LowerAlpha: 1090 case LowerAlpha:
1357 case LowerArmenian: 1091 case LowerArmenian:
1358 case LowerGreek: 1092 case LowerGreek:
1359 case LowerHexadecimal:
1360 case LowerLatin: 1093 case LowerLatin:
1361 case LowerNorwegian:
1362 case LowerRoman: 1094 case LowerRoman:
1363 case Malayalam: 1095 case Malayalam:
1364 case Mongolian: 1096 case Mongolian:
1365 case Myanmar: 1097 case Myanmar:
1366 case Octal:
1367 case Oriya: 1098 case Oriya:
1368 case Oromo:
1369 case Persian: 1099 case Persian:
1370 case Sidama:
1371 case Somali:
1372 case Telugu: 1100 case Telugu:
1373 case Thai: 1101 case Thai:
1374 case Tibetan: 1102 case Tibetan:
1375 case Tigre:
1376 case TigrinyaEr:
1377 case TigrinyaErAbegede:
1378 case TigrinyaEt:
1379 case TigrinyaEtAbegede:
1380 case UpperAlpha: 1103 case UpperAlpha:
1381 case UpperArmenian: 1104 case UpperArmenian:
1382 case UpperGreek:
1383 case UpperHexadecimal:
1384 case UpperLatin: 1105 case UpperLatin:
1385 case UpperNorwegian:
1386 case UpperRoman: 1106 case UpperRoman:
1387 case Urdu: 1107 case Urdu:
1388 if (m_text.isEmpty()) { 1108 if (m_text.isEmpty()) {
1389 logicalWidth = 0; 1109 logicalWidth = 0;
1390 } else { 1110 } else {
1391 LayoutUnit itemWidth = font.width(m_text); 1111 LayoutUnit itemWidth = font.width(m_text);
1392 UChar suffixSpace[2] = { listMarkerSuffix(type, m_listItem->value()) , ' ' }; 1112 UChar suffixSpace[2] = { listMarkerSuffix(type, m_listItem->value()) , ' ' };
1393 LayoutUnit suffixSpaceWidth = font.width(constructTextRun(this, font , suffixSpace, 2, styleRef(), style()->direction())); 1113 LayoutUnit suffixSpaceWidth = font.width(constructTextRun(this, font , suffixSpace, 2, styleRef(), style()->direction()));
1394 logicalWidth = itemWidth + suffixSpaceWidth; 1114 logicalWidth = itemWidth + suffixSpaceWidth;
1395 } 1115 }
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
1492 } 1212 }
1493 1213
1494 IntRect LayoutListMarker::getRelativeMarkerRect() 1214 IntRect LayoutListMarker::getRelativeMarkerRect()
1495 { 1215 {
1496 if (isImage()) 1216 if (isImage())
1497 return IntRect(0, 0, m_image->imageSize(this, style()->effectiveZoom()). width(), m_image->imageSize(this, style()->effectiveZoom()).height()); 1217 return IntRect(0, 0, m_image->imageSize(this, style()->effectiveZoom()). width(), m_image->imageSize(this, style()->effectiveZoom()).height());
1498 1218
1499 IntRect relativeRect; 1219 IntRect relativeRect;
1500 EListStyleType type = style()->listStyleType(); 1220 EListStyleType type = style()->listStyleType();
1501 switch (type) { 1221 switch (type) {
1502 case Asterisks:
1503 case Footnotes: {
1504 const Font& font = style()->font();
1505 relativeRect = IntRect(0, 0, font.width(m_text), font.fontMetrics().heig ht());
1506 break;
1507 }
1508 case Disc: 1222 case Disc:
1509 case Circle: 1223 case Circle:
1510 case Square: { 1224 case Square: {
1511 // FIXME: Are these particular rounding rules necessary? 1225 // FIXME: Are these particular rounding rules necessary?
1512 const FontMetrics& fontMetrics = style()->fontMetrics(); 1226 const FontMetrics& fontMetrics = style()->fontMetrics();
1513 int ascent = fontMetrics.ascent(); 1227 int ascent = fontMetrics.ascent();
1514 int bulletWidth = (ascent * 2 / 3 + 1) / 2; 1228 int bulletWidth = (ascent * 2 / 3 + 1) / 2;
1515 relativeRect = IntRect(1, 3 * (ascent - ascent * 2 / 3) / 2, bulletWidth , bulletWidth); 1229 relativeRect = IntRect(1, 3 * (ascent - ascent * 2 / 3) / 2, bulletWidth , bulletWidth);
1516 break; 1230 break;
1517 } 1231 }
1518 case NoneListStyle: 1232 case NoneListStyle:
1519 return IntRect(); 1233 return IntRect();
1520 case Afar:
1521 case Amharic:
1522 case AmharicAbegede:
1523 case ArabicIndic: 1234 case ArabicIndic:
1524 case Armenian: 1235 case Armenian:
1525 case BinaryListStyle:
1526 case Bengali: 1236 case Bengali:
1527 case Cambodian: 1237 case Cambodian:
1528 case CJKIdeographic: 1238 case CJKIdeographic:
1529 case CjkEarthlyBranch: 1239 case CjkEarthlyBranch:
1530 case CjkHeavenlyStem: 1240 case CjkHeavenlyStem:
1531 case DecimalLeadingZero: 1241 case DecimalLeadingZero:
1532 case DecimalListStyle: 1242 case DecimalListStyle:
1533 case Devanagari: 1243 case Devanagari:
1534 case Ethiopic: 1244 case EthiopicHalehame:
1535 case EthiopicAbegede: 1245 case EthiopicHalehameAm:
1536 case EthiopicAbegedeAmEt:
1537 case EthiopicAbegedeGez:
1538 case EthiopicAbegedeTiEr:
1539 case EthiopicAbegedeTiEt:
1540 case EthiopicHalehameAaEr:
1541 case EthiopicHalehameAaEt:
1542 case EthiopicHalehameAmEt:
1543 case EthiopicHalehameGez:
1544 case EthiopicHalehameOmEt:
1545 case EthiopicHalehameSidEt:
1546 case EthiopicHalehameSoEt:
1547 case EthiopicHalehameTiEr: 1246 case EthiopicHalehameTiEr:
1548 case EthiopicHalehameTiEt: 1247 case EthiopicHalehameTiEt:
1549 case EthiopicHalehameTig:
1550 case Georgian: 1248 case Georgian:
1551 case Gujarati: 1249 case Gujarati:
1552 case Gurmukhi: 1250 case Gurmukhi:
1553 case Hangul: 1251 case Hangul:
1554 case HangulConsonant: 1252 case HangulConsonant:
1555 case Hebrew: 1253 case Hebrew:
1556 case Hiragana: 1254 case Hiragana:
1557 case HiraganaIroha: 1255 case HiraganaIroha:
1558 case Kannada: 1256 case Kannada:
1559 case Katakana: 1257 case Katakana:
1560 case KatakanaIroha: 1258 case KatakanaIroha:
1561 case Khmer: 1259 case Khmer:
1562 case Lao: 1260 case Lao:
1563 case LowerAlpha: 1261 case LowerAlpha:
1564 case LowerArmenian: 1262 case LowerArmenian:
1565 case LowerGreek: 1263 case LowerGreek:
1566 case LowerHexadecimal:
1567 case LowerLatin: 1264 case LowerLatin:
1568 case LowerNorwegian:
1569 case LowerRoman: 1265 case LowerRoman:
1570 case Malayalam: 1266 case Malayalam:
1571 case Mongolian: 1267 case Mongolian:
1572 case Myanmar: 1268 case Myanmar:
1573 case Octal:
1574 case Oriya: 1269 case Oriya:
1575 case Oromo:
1576 case Persian: 1270 case Persian:
1577 case Sidama:
1578 case Somali:
1579 case Telugu: 1271 case Telugu:
1580 case Thai: 1272 case Thai:
1581 case Tibetan: 1273 case Tibetan:
1582 case Tigre:
1583 case TigrinyaEr:
1584 case TigrinyaErAbegede:
1585 case TigrinyaEt:
1586 case TigrinyaEtAbegede:
1587 case UpperAlpha: 1274 case UpperAlpha:
1588 case UpperArmenian: 1275 case UpperArmenian:
1589 case UpperGreek:
1590 case UpperHexadecimal:
1591 case UpperLatin: 1276 case UpperLatin:
1592 case UpperNorwegian:
1593 case UpperRoman: 1277 case UpperRoman:
1594 case Urdu: 1278 case Urdu:
1595 if (m_text.isEmpty()) 1279 if (m_text.isEmpty())
1596 return IntRect(); 1280 return IntRect();
1597 const Font& font = style()->font(); 1281 const Font& font = style()->font();
1598 int itemWidth = font.width(m_text); 1282 int itemWidth = font.width(m_text);
1599 UChar suffixSpace[2] = { listMarkerSuffix(type, m_listItem->value()), ' ' }; 1283 UChar suffixSpace[2] = { listMarkerSuffix(type, m_listItem->value()), ' ' };
1600 int suffixSpaceWidth = font.width(constructTextRun(this, font, suffixSpa ce, 2, styleRef(), style()->direction())); 1284 int suffixSpaceWidth = font.width(constructTextRun(this, font, suffixSpa ce, 2, styleRef(), style()->direction()));
1601 relativeRect = IntRect(0, 0, itemWidth + suffixSpaceWidth, font.fontMetr ics().height()); 1285 relativeRect = IntRect(0, 0, itemWidth + suffixSpaceWidth, font.fontMetr ics().height());
1602 } 1286 }
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
1643 if (style()) { 1327 if (style()) {
1644 // Reuse the current margins. Otherwise resetting the margins to initial values 1328 // Reuse the current margins. Otherwise resetting the margins to initial values
1645 // would trigger unnecessary layout. 1329 // would trigger unnecessary layout.
1646 newStyle->setMarginStart(style()->marginStart()); 1330 newStyle->setMarginStart(style()->marginStart());
1647 newStyle->setMarginEnd(style()->marginRight()); 1331 newStyle->setMarginEnd(style()->marginRight());
1648 } 1332 }
1649 setStyle(newStyle.release()); 1333 setStyle(newStyle.release());
1650 } 1334 }
1651 1335
1652 } // namespace blink 1336 } // namespace blink
OLDNEW
« no previous file with comments | « Source/core/css/CSSValueKeywords.in ('k') | Source/core/paint/ListMarkerPainter.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698