OLD | NEW |
1 #ifndef __DEFINED__SkPdfStandardStructureDictionary | 1 #ifndef __DEFINED__SkPdfStandardStructureDictionary |
2 #define __DEFINED__SkPdfStandardStructureDictionary | 2 #define __DEFINED__SkPdfStandardStructureDictionary |
3 | 3 |
4 #include "SkPdfEnums_autogen.h" | 4 #include "SkPdfEnums_autogen.h" |
5 #include "SkPdfArray_autogen.h" | 5 #include "SkPdfArray_autogen.h" |
6 #include "SkPdfDictionary_autogen.h" | 6 #include "SkPdfDictionary_autogen.h" |
7 | 7 |
| 8 // Standard layout attributes common to all standard structure types |
8 class SkPdfStandardStructureDictionary : public SkPdfDictionary { | 9 class SkPdfStandardStructureDictionary : public SkPdfDictionary { |
9 public: | 10 public: |
10 virtual SkPdfObjectType getType() const { return kStandardStructureDictionary_
SkPdfObjectType;} | 11 virtual SkPdfObjectType getType() const { return kStandardStructureDictionary_
SkPdfObjectType;} |
11 virtual SkPdfObjectType getTypeEnd() const { return (SkPdfObjectType)(kStandar
dStructureDictionary_SkPdfObjectType + 1);} | 12 virtual SkPdfObjectType getTypeEnd() const { return (SkPdfObjectType)(kStandar
dStructureDictionary_SkPdfObjectType + 1);} |
12 public: | 13 public: |
13 virtual SkPdfStandardStructureDictionary* asStandardStructureDictionary() {ret
urn this;} | 14 virtual SkPdfStandardStructureDictionary* asStandardStructureDictionary() {ret
urn this;} |
14 virtual const SkPdfStandardStructureDictionary* asStandardStructureDictionary(
) const {return this;} | 15 virtual const SkPdfStandardStructureDictionary* asStandardStructureDictionary(
) const {return this;} |
15 | 16 |
16 private: | 17 private: |
17 virtual SkPdfALinkAnnotationDictionary* asALinkAnnotationDictionary() {return
NULL;} | 18 virtual SkPdfALinkAnnotationDictionary* asALinkAnnotationDictionary() {return
NULL;} |
(...skipping 496 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
514 | 515 |
515 public: | 516 public: |
516 private: | 517 private: |
517 public: | 518 public: |
518 SkPdfStandardStructureDictionary(const PdfMemDocument* podofoDoc = NULL, const
PdfObject* podofoObj = NULL) : SkPdfDictionary(podofoDoc, podofoObj) {} | 519 SkPdfStandardStructureDictionary(const PdfMemDocument* podofoDoc = NULL, const
PdfObject* podofoObj = NULL) : SkPdfDictionary(podofoDoc, podofoObj) {} |
519 | 520 |
520 virtual bool valid() const {return true;} | 521 virtual bool valid() const {return true;} |
521 | 522 |
522 SkPdfStandardStructureDictionary& operator=(const SkPdfStandardStructureDictio
nary& from) {this->fPodofoDoc = from.fPodofoDoc; this->fPodofoObj = from.fPodofo
Obj; return *this;} | 523 SkPdfStandardStructureDictionary& operator=(const SkPdfStandardStructureDictio
nary& from) {this->fPodofoDoc = from.fPodofoDoc; this->fPodofoObj = from.fPodofo
Obj; return *this;} |
523 | 524 |
| 525 /** (Optional) The positioning of the element with respect to the enclosing refe
r- |
| 526 * ence area and other content: |
| 527 * Block Stacked in the block-progression direction within an enclos
- |
| 528 * ing reference area or parent BLSE. |
| 529 * Inline Packed in the inline-progression direction within an enclos
- |
| 530 * ing BLSE. |
| 531 * Before Placed so that the before edge of the element's allocation
rec- |
| 532 * tangle (see "Content and Allocation Rectangles" on page |
| 533 * 648) coincides with that of the nearest enclosing reference |
| 534 * area. The element may float, if necessary, to achieve the s
peci- |
| 535 * fied placement (see note below). The element is treated as
a |
| 536 * block occupying the full extent of the enclosing reference |
| 537 * area in the inline direction; other content is stacked so a
s to |
| 538 * begin at the after edge of the element's allocation rectang
le. |
| 539 * Start Placed so that the start edge of the element's allocation r
ec- |
| 540 * tangle (see "Content and Allocation Rectangles" on page |
| 541 * 648) coincides with that of the nearest enclosing reference |
| 542 * area. The element may float, if necessary, to achieve the s
peci- |
| 543 * fied placement (see note below). Other content that would |
| 544 * intrude into the element's allocation rectangle is laid out
as a |
| 545 * runaround. |
| 546 * End Placed so that the end edge of the element's allocation rec
- |
| 547 * tangle (see "Content and Allocation Rectangles" on page |
| 548 * 648) coincides with that of the nearest enclosing reference |
| 549 * area. The element may float, if necessary, to achieve the s
peci- |
| 550 * fied placement (see note below). Other content that would |
| 551 * intrude into the element's allocation rectangle is laid out
as a |
| 552 * runaround. |
| 553 * When applied to an ILSE, any value except Inline causes the element to be |
| 554 * treated as a BLSE instead. Default value: Inline. |
| 555 * Note: Elements with Placement values of Before, Start, or End are removed fr
om |
| 556 * the normal stacking or packing process and allowed to "float" to the specifi
ed |
| 557 * edge of the enclosing reference area or parent BLSE. Multiple such floating
ele- |
| 558 * ments may be positioned adjacent to one another against the specified edge o
f the |
| 559 * reference area, or placed serially against the edge, in the order encountere
d. |
| 560 * Complex cases such as floating elements that interfere with each other
or do not |
| 561 * fit on the same page may be handled differently by different layout app
lications; |
| 562 * Tagged PDF merely identifies the elements as floating and indicates the
ir desired |
| 563 * placement. |
| 564 **/ |
| 565 bool has_Placement() const { |
| 566 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Place
ment", "", NULL)); |
| 567 } |
| 568 |
524 std::string Placement() const { | 569 std::string Placement() const { |
525 std::string ret; | 570 std::string ret; |
526 if (NameFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Placement",
"", &ret)) return ret; | 571 if (NameFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Placement",
"", &ret)) return ret; |
527 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | 572 // TODO(edisonn): warn about missing required field, assert for known good p
dfs |
528 return ""; | 573 return ""; |
529 } | 574 } |
530 | 575 |
| 576 /** (Optional) The directions of layout progression for packing of ILSEs (inline |
| 577 * progression) and stacking of BLSEs (block progression): |
| 578 * LrTb Inline progression from left to right; block progression fr
om |
| 579 * top to bottom. This is the typical writing mode for Western |
| 580 * writing systems. |
| 581 * RlTb Inline progression from right to left; block progression fr
om |
| 582 * top to bottom. This is the typical writing mode for Arabic |
| 583 * and Hebrew writing systems. |
| 584 * TbRl Inline progression from top to bottom; block progression |
| 585 * from right to left. This is the typical writing mode for Ch
i- |
| 586 * nese and Japanese writing systems. |
| 587 * The specified layout directions apply to the given structure element and all
of |
| 588 * its descendants to any level of nesting. Default value: LrTb. |
| 589 * For elements that produce multiple columns, the writing mode defines the |
| 590 * direction of column progression within the reference area: the inline direc- |
| 591 * tion determines the stacking direction for columns and the default flow |
| 592 * order of text from column to column. For tables, the writing mode controls |
| 593 * the layout of rows and columns: table rows (structure type TR) are stacked |
| 594 * in the block direction, cells within a row (structure type TD) in the inline |
| 595 * direction. |
| 596 * Note: The inline-progression direction specified by the writing mode is subj
ect to |
| 597 * local override within the text being laid out, as described in Unicode Stand
ard |
| 598 * Annex #9, The Bidirectional Algorithm, available from the Unicode Consor- |
| 599 * tium (see the Bibliography). |
| 600 **/ |
| 601 bool has_WritingMode() const { |
| 602 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Writi
ngMode", "", NULL)); |
| 603 } |
| 604 |
531 std::string WritingMode() const { | 605 std::string WritingMode() const { |
532 std::string ret; | 606 std::string ret; |
533 if (NameFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "WritingMode
", "", &ret)) return ret; | 607 if (NameFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "WritingMode
", "", &ret)) return ret; |
534 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | 608 // TODO(edisonn): warn about missing required field, assert for known good p
dfs |
535 return ""; | 609 return ""; |
536 } | 610 } |
537 | 611 |
538 }; | 612 }; |
539 | 613 |
540 #endif // __DEFINED__SkPdfStandardStructureDictionary | 614 #endif // __DEFINED__SkPdfStandardStructureDictionary |
OLD | NEW |