foxit::pdf::TabOrderMgr Class Reference
Inheritance diagram for foxit::pdf::TabOrderMgr:
foxit::Base

Public Types

enum  OrderType { e_None = 0x0000, e_Row = 0x0001, e_Column = 0x0002, e_Structure = 0x0003 }
 Enumeration for tab order type. More...
 

Public Member Functions

 TabOrderMgr (const PDFPage &page)
 Constructor, from a PDF page object. More...
 
 TabOrderMgr (const TabOrderMgr &other)
 Constructor, with another TabOrderMgr object. More...
 
 ~TabOrderMgr ()
 Destructor.
 
bool AdjustStructureOrder (const annots::AnnotArray &annot_array)
 Adjust the structure order with specified annotations, and tab order type will be set to TabOrderMgr::e_Structure at the same time. More...
 
annots::Annot GetFirstAnnot ()
 Get the first annotation in current tab order. More...
 
annots::Annot GetLastAnnot ()
 Get the last annotation in current tab order. More...
 
annots::Annot GetNextAnnot (const annots::Annot &annot)
 Get the next annotation of specified annotation in current tab order. More...
 
OrderType GetOrderType () const
 Get the tab order type. More...
 
annots::Annot GetPrevAnnot (const annots::Annot &annot)
 Get the previous annotation of specified annotation in current tab order. More...
 
bool IsEmpty () const
 Check whether current object is empty or not. More...
 
bool operator!= (const TabOrderMgr &other) const
 Not equal operator. More...
 
TabOrderMgroperator= (const TabOrderMgr &other)
 Assign operator. More...
 
bool operator== (const TabOrderMgr &other) const
 Equal operator. More...
 
void Reload ()
 Reload the tab order of annotations. More...
 
void SetOrderType (OrderType order_type)
 Set the tab order type. More...
 
- Public Member Functions inherited from foxit::Base
FS_HANDLE Handle () const
 Get the handle of current object. More...
 

Detailed Description

Tab order is the order to navigate through annotations on a PDF page by using Tab key in keyboard. This class offers functions to manager the order of moving the keyboard focus among annotations on a PDF page. Tab order manager will ignore following types of annotations:
note annotations which are as reply annotations, note annotations which are as state annotations, pop-up annotations, annotations whose flags contain annots::Annot::e_FlagHidden.
This class offers functions to get the order type and get annotations one by one in the order type. This class also offers functions to change the order type:

After calling function TabOrderMgr::SetOrderType or TabOrderMgr::AdjustStructureOrder, function TabOrderMgr::Reload should be called; otherwise the annotations' order may not be changed as expected.

See also
pdf::PDFPage
annots::Annot

Member Enumeration Documentation

◆ OrderType

Enumeration for tab order type.

Values of this enumeration should be used alone.

Enumerator
e_None 

None (index order): Annotations are visited in annotation's index across the page.

e_Row 

R (row order): Annotations are visited in rows running horizontally across the page.

e_Column 

C (column order): Annotations are visited in columns running vertically up and down the page.

e_Structure 

S (structure order): Annotations are visited in the order in which they appear in the structure tree.

Constructor & Destructor Documentation

◆ TabOrderMgr() [1/2]

foxit::pdf::TabOrderMgr::TabOrderMgr ( const PDFPage page)
explicit

Constructor, from a PDF page object.

Parameters
[in]pageA valid PDF page.

◆ TabOrderMgr() [2/2]

foxit::pdf::TabOrderMgr::TabOrderMgr ( const TabOrderMgr other)

Constructor, with another TabOrderMgr object.

Parameters
[in]otherAnother TabOrderMgr object.

Member Function Documentation

◆ AdjustStructureOrder()

bool foxit::pdf::TabOrderMgr::AdjustStructureOrder ( const annots::AnnotArray annot_array)

Adjust the structure order with specified annotations, and tab order type will be set to TabOrderMgr::e_Structure at the same time.

This function is used to adjust the annotation order for structure tab order. First, re-order annotations in the input array according to the order in this array, and then re-order the reset annotations (which are not included in the input array) by the reading direction of PDF document.
After this function succeeds, indexes of all annotations in the related PDF page will be changed.

Parameters
[in]annot_arrayAn array of annotations which will be re-ordered first for structure tab order. All the annotations in this array should belong to the same page as the one related to current tab order manager. These annotations should all be valid and should be different from each other.
Returns
true means success, while false means failure.

◆ GetFirstAnnot()

annots::Annot foxit::pdf::TabOrderMgr::GetFirstAnnot ( )

Get the first annotation in current tab order.

Returns
The first annotation. If the return value of function annots::Annot::IsEmpty for the returned annotation object is true, that means there is no annotation.

◆ GetLastAnnot()

annots::Annot foxit::pdf::TabOrderMgr::GetLastAnnot ( )

Get the last annotation in current tab order.

Returns
The last annotation. If the return value of function annots::Annot::IsEmpty for the returned annotation object is true, that means there is no annotation.

◆ GetNextAnnot()

annots::Annot foxit::pdf::TabOrderMgr::GetNextAnnot ( const annots::Annot annot)

Get the next annotation of specified annotation in current tab order.

Parameters
[in]annotThe valid specified annotation.
Returns
The next annotation. If the return value of function annots::Annot::IsEmpty for the returned annotation object is true, that means the specified annotation is the last annotation in current tab order.

◆ GetOrderType()

OrderType foxit::pdf::TabOrderMgr::GetOrderType ( ) const

Get the tab order type.

Returns
The tab order type. Please refer to values starting from TabOrderMgr::e_None and this would be one of these values.

◆ GetPrevAnnot()

annots::Annot foxit::pdf::TabOrderMgr::GetPrevAnnot ( const annots::Annot annot)

Get the previous annotation of specified annotation in current tab order.

Parameters
[in]annotThe valid specified annotation.
Returns
The previous annotation. If the return value of function annots::Annot::IsEmpty for the returned annotation object is true, that means the specified annotation is the first annotation in current tab order.

◆ IsEmpty()

bool foxit::pdf::TabOrderMgr::IsEmpty ( ) const

Check whether current object is empty or not.

When the current object is empty, that means current object is useless.

Returns
true means current object is empty, while false means not.

◆ operator!=()

bool foxit::pdf::TabOrderMgr::operator!= ( const TabOrderMgr other) const

Not equal operator.

Parameters
[in]otherAnother TabOrderMgr object. This function will check if current object is not equal to this one.
Returns
true means not equal, while false means equal.

◆ operator=()

TabOrderMgr& foxit::pdf::TabOrderMgr::operator= ( const TabOrderMgr other)

Assign operator.

Parameters
[in]otherAnother TabOrderMgr object, whose value would be assigned to current object.
Returns
Reference to current object itself.

◆ operator==()

bool foxit::pdf::TabOrderMgr::operator== ( const TabOrderMgr other) const

Equal operator.

Parameters
[in]otherAnother TabOrderMgr object. This function will check if current object is equal to this one.
Returns
true means equal, while false means not equal.

◆ Reload()

void foxit::pdf::TabOrderMgr::Reload ( )

Reload the tab order of annotations.

This function should be called when:

Returns
None.

◆ SetOrderType()

void foxit::pdf::TabOrderMgr::SetOrderType ( OrderType  order_type)

Set the tab order type.

Parameters
[in]order_typeThe new tab order type. It should be one of following values:
Returns
None.

Foxit Software Corporation Logo
@2018 Foxit Software Incorporated. All rights reserved.