#ifndef _FS_TABORDERMGR_C_H_
#define _FS_TABORDERMGR_C_H_

#ifdef __cplusplus
extern "C" {
#endif



typedef enum _FSOrderType {
e_FSNone = 0x0000,
e_FSRow = 0x0001,
e_FSColumn = 0x0002,
e_FSStructure = 0x0003,
}FSOrderType;


FSErrorCode FSDK_TabOrderMgr_Create(const FS_PDFPAGE_HANDLE page, FS_TABORDERMGR_HANDLE* tabordermgr_return_value);
FSErrorCode FSDK_TabOrderMgr_IsEmpty(FS_TABORDERMGR_HANDLE tabordermgr_handle, FS_BOOL* return_value);
FSErrorCode FSDK_TabOrderMgr_Release(FS_TABORDERMGR_HANDLE tabordermgr_handle);
FSErrorCode FSDK_TabOrderMgr_Reload(FS_TABORDERMGR_HANDLE tabordermgr_handle);
FSErrorCode FSDK_TabOrderMgr_GetOrderType(FS_TABORDERMGR_HANDLE tabordermgr_handle, FSOrderType* return_value);
FSErrorCode FSDK_TabOrderMgr_SetOrderType(FS_TABORDERMGR_HANDLE tabordermgr_handle, FSOrderType order_type);
FSErrorCode FSDK_TabOrderMgr_GetFirstAnnot(FS_TABORDERMGR_HANDLE tabordermgr_handle, FS_ANNOT_HANDLE* return_value);
FSErrorCode FSDK_TabOrderMgr_GetLastAnnot(FS_TABORDERMGR_HANDLE tabordermgr_handle, FS_ANNOT_HANDLE* return_value);
FSErrorCode FSDK_TabOrderMgr_GetNextAnnot(FS_TABORDERMGR_HANDLE tabordermgr_handle, const FS_ANNOT_HANDLE annot, FS_ANNOT_HANDLE* return_value);
FSErrorCode FSDK_TabOrderMgr_GetPrevAnnot(FS_TABORDERMGR_HANDLE tabordermgr_handle, const FS_ANNOT_HANDLE annot, FS_ANNOT_HANDLE* return_value);
FSErrorCode FSDK_TabOrderMgr_AdjustStructureOrder(FS_TABORDERMGR_HANDLE tabordermgr_handle, const FS_ANNOT_HANDLE* annot_array, FS_UINT32 array_length_annot_array, FS_BOOL* return_value);
#ifdef __cplusplus
}
#endif
#endif
