#ifndef _FS_WATERMARK_C_H_
#define _FS_WATERMARK_C_H_

#ifdef __cplusplus
extern "C" {
#endif


typedef struct _FSWatermarkTextProperties FSWatermarkTextProperties;

typedef struct _FSWatermarkSettings FSWatermarkSettings;


typedef enum _FSWatermarkFlags {
e_FSWatermarkFlagsFlagASPageContents = 0x0000,
e_FSWatermarkFlagsFlagASAnnot = 0x0001,
e_FSWatermarkFlagsFlagOnTop = 0x0002,
e_FSWatermarkFlagsFlagNoPrint = 0x0004,
e_FSWatermarkFlagsFlagInvisible = 0x0008,
e_FSWatermarkFlagsFlagShareImageStream = 0x0010,
e_FSWatermarkFlagsFlagShareTextStream = 0x0020,
e_FSWatermarkFlagsFlagSharePageStream = 0x0040,
}FSWatermarkFlags;



typedef enum _FSFontStyle {
e_FSFontStyleFontStyleNormal = 0,
e_FSFontStyleUnderline = 1,
}FSFontStyle;


FSErrorCode FSDK_Watermark_Create(const FS_PDFDOC_HANDLE document, const wchar_t* text, const FSWatermarkTextProperties properties,
                     const FSWatermarkSettings settings, FS_WATERMARK_HANDLE* watermark_return_value);
FSErrorCode FSDK_Watermark_Create0(const FS_PDFDOC_HANDLE document, const FS_BITMAP_HANDLE bitmap, const FSWatermarkSettings settings, FS_WATERMARK_HANDLE* watermark_return_value);
FSErrorCode FSDK_Watermark_Create1(const FS_PDFDOC_HANDLE document, const FS_IMAGE_HANDLE image, int frame_index,
                     const  FSWatermarkSettings settings, FS_WATERMARK_HANDLE* watermark_return_value);
FSErrorCode FSDK_Watermark_Create2(const FS_PDFDOC_HANDLE document, const FS_PDFPAGE_HANDLE page, const FSWatermarkSettings settings, FS_WATERMARK_HANDLE* watermark_return_value);
FSErrorCode FSDK_Watermark_Release(FS_WATERMARK_HANDLE watermark_handle);
FSErrorCode FSDK_Watermark_IsEmpty(FS_WATERMARK_HANDLE watermark_handle, FS_BOOL* return_value);
FSErrorCode FSDK_Watermark_GetWidth(FS_WATERMARK_HANDLE watermark_handle, float* return_value);
FSErrorCode FSDK_Watermark_GetHeight(FS_WATERMARK_HANDLE watermark_handle, float* return_value);
FSErrorCode FSDK_Watermark_InsertToPage(FS_WATERMARK_HANDLE watermark_handle, FS_PDFPAGE_HANDLE page, FS_BOOL* return_value);
typedef struct _FSWatermarkSettings {
  FSPosition position;
  float offset_x;
  float offset_y;
  FS_UINT32 flags;
  float scale_x;
  float scale_y;
  float rotation;
  int opacity;
}FSWatermarkSettings;

typedef struct _FSWatermarkTextProperties {
  FS_FONT_HANDLE font;
  float font_size;
  FS_RGB color;
  FSFontStyle font_style;
  float line_space;
  FSAlignment alignment;
}FSWatermarkTextProperties;

#ifdef __cplusplus
}
#endif
#endif
