#ifndef _FS_ANNOTATIONSUMMARY_C_H_
#define _FS_ANNOTATIONSUMMARY_C_H_

#ifdef __cplusplus
extern "C" {
#endif

#include "fs_annot_c.h"
#include "fx_basic_c.h"


typedef enum _FSSummaryLayout {
e_FSSummaryLayoutSeparatePagesWithLine = 0,
e_FSSummaryLayoutSinglePageWithLine = 1,
e_FSSummaryLayoutAnnotationOnly = 2,
e_FSSummaryLayoutSeparatePagesWithSequenceNumber = 3,
e_FSSummaryLayoutSinglePageWithSequenceNumber = 4,
}FSSummaryLayout;



typedef enum _FSSortType {
e_FSTypeSortByAuthor = 0,
e_FSTypeSortByDate = 1,
e_FSTypeSortByPage = 2,
e_FSTypeSortByAnnotationType = 3,
}FSSortType;



typedef enum _FSFontSizeType {
e_FSFontSizeSmall = 0,
e_FSFontSizeMedium = 1,
e_FSFontSizeLarge = 2,
}FSFontSizeType;



typedef enum _FSAnnotationSummaryStringID {
e_FSAnnotationSummaryStringIDAuthor = 0,
e_FSAnnotationSummaryStringIDDate = 1,
e_FSAnnotationSummaryStringIDPage = 2,
e_FSAnnotationSummaryStringIDType = 3,
e_FSAnnotationSummaryStringIDDocumentTitle = 4,
e_FSAnnotationSummaryStringIDPageTitle = 5,
e_FSAnnotationSummaryStringIDNoAnnotations = 6,
e_FSAnnotationSummaryStringIDNumber = 7,
e_FSAnnotationSummaryStringIDSubject = 8,
}FSAnnotationSummaryStringID;


typedef struct _FSAnnotationSummaryCallback {
  void* user_data;
  void (*Release)(void* user_data);
  FSLocaleID (*GetCurrentLocaleID)(void* user_data);
  FS_WSTR (*GetLocalFontName)(void* user_data);
  FS_WSTR (*LoadString)(void* user_data, FSAnnotationSummaryStringID id);
}FSAnnotationSummaryCallback;

FSErrorCode FSDK_AnnotationSummarySettings_Create(FS_ANNOTATIONSUMMARYSETTINGS_HANDLE* annotationsummarysettings_return_value);
FSErrorCode FSDK_AnnotationSummarySettings_Release(FS_ANNOTATIONSUMMARYSETTINGS_HANDLE annotationsummarysettings_handle);
FSErrorCode FSDK_AnnotationSummarySettings_IsEmpty(FS_ANNOTATIONSUMMARYSETTINGS_HANDLE annotationsummarysettings_handle, FS_BOOL* return_value);
FSErrorCode FSDK_AnnotationSummarySettings_SetSummaryLayout(FS_ANNOTATIONSUMMARYSETTINGS_HANDLE annotationsummarysettings_handle, FSSummaryLayout type);
FSErrorCode FSDK_AnnotationSummarySettings_SetSortType(FS_ANNOTATIONSUMMARYSETTINGS_HANDLE annotationsummarysettings_handle, FSSortType type);
FSErrorCode FSDK_AnnotationSummarySettings_SetFontSize(FS_ANNOTATIONSUMMARYSETTINGS_HANDLE annotationsummarysettings_handle, FSFontSizeType type);
FSErrorCode FSDK_AnnotationSummarySettings_SetAnnotType(FS_ANNOTATIONSUMMARYSETTINGS_HANDLE annotationsummarysettings_handle,  FSAnnotType type, FS_BOOL use_all);
FSErrorCode FSDK_AnnotationSummarySettings_SetFileTitle(FS_ANNOTATIONSUMMARYSETTINGS_HANDLE annotationsummarysettings_handle, const wchar_t* title);
FSErrorCode FSDK_AnnotationSummarySettings_SetPageRect(FS_ANNOTATIONSUMMARYSETTINGS_HANDLE annotationsummarysettings_handle, const FSRectF rect);
FSErrorCode FSDK_AnnotationSummarySettings_SetPageMargin(FS_ANNOTATIONSUMMARYSETTINGS_HANDLE annotationsummarysettings_handle, const FSRectF margin);
FSErrorCode FSDK_AnnotationSummarySettings_SetStartPage(FS_ANNOTATIONSUMMARYSETTINGS_HANDLE annotationsummarysettings_handle, int page_index);
FSErrorCode FSDK_AnnotationSummarySettings_SetEndPage(FS_ANNOTATIONSUMMARYSETTINGS_HANDLE annotationsummarysettings_handle, int page_index);
FSErrorCode FSDK_AnnotationSummarySettings_EnableOutputNoAnnotationPage(FS_ANNOTATIONSUMMARYSETTINGS_HANDLE annotationsummarysettings_handle, FS_BOOL enable);
FSErrorCode FSDK_AnnotationSummarySettings_SetConnectorLineColor(FS_ANNOTATIONSUMMARYSETTINGS_HANDLE annotationsummarysettings_handle, FS_RGB color);
FSErrorCode FSDK_AnnotationSummarySettings_SetConnectorLineOpacity(FS_ANNOTATIONSUMMARYSETTINGS_HANDLE annotationsummarysettings_handle, float opacity);
FSErrorCode FSDK_AnnotationSummarySettings_SetAnnotThumbnail(FS_ANNOTATIONSUMMARYSETTINGS_HANDLE annotationsummarysettings_handle,  FSAnnotType type, const FS_BITMAP_HANDLE thumbnail);
FSErrorCode FSDK_AnnotationSummary_Create(const FS_PDFDOC_HANDLE document, FS_ANNOTATIONSUMMARY_HANDLE* annotationsummary_return_value);
FSErrorCode FSDK_AnnotationSummary_Release(FS_ANNOTATIONSUMMARY_HANDLE annotationsummary_handle);
FSErrorCode FSDK_AnnotationSummary_IsEmpty(FS_ANNOTATIONSUMMARY_HANDLE annotationsummary_handle, FS_BOOL* return_value);
FSErrorCode FSDK_AnnotationSummary_SetCallback(FS_ANNOTATIONSUMMARY_HANDLE annotationsummary_handle, FSAnnotationSummaryCallback* callback);
FSErrorCode FSDK_AnnotationSummary_StartSummarize(FS_ANNOTATIONSUMMARY_HANDLE annotationsummary_handle, const wchar_t* dest_file_path, const FS_ANNOTATIONSUMMARYSETTINGS_HANDLE settings, FSPauseCallback* pause, FS_PROGRESSIVE_HANDLE* return_value);
FSErrorCode FSDK_AnnotationSummary_StartSummarize0(FS_ANNOTATIONSUMMARY_HANDLE annotationsummary_handle,  FSWriterCallback* dest_file, const FS_ANNOTATIONSUMMARYSETTINGS_HANDLE settings, FSPauseCallback* pause, FS_PROGRESSIVE_HANDLE* return_value);
#ifdef __cplusplus
}
#endif
#endif
