Foxit PDF SDK
fs_formfiller.h
浏览该文件的文档.
1 
15 #ifndef FS_FORMFILLER_H_
16 #define FS_FORMFILLER_H_
17 
18 #include "common/fs_common.h"
19 #include "common/fs_render.h"
20 //#include "pdf/fs_pdfpage.h"
21 //#include "pdf/fs_pdfpage.h"
22 
28 namespace foxit {
32 namespace pdf {
33  class PDFPage;
37 namespace interform {
38 // forward declaration
39 class Form;
40 class Control;
41 
47  public:
55  virtual void OnTimer(int timer) = 0;
56 
57  protected:
58  ~TimerCallback() {}
59 };
60 
66  public:
72  typedef enum _PopupMenuItem {
85  } PopupMenuItem;
86 
92  virtual void Release() = 0;
93 
99  virtual int GetVersion() {return 1;}
100 
111  virtual void Refresh(const PDFPage& page, const RectF& rect, bool has_reparse_page) = 0;
112 
127  virtual bool SetTimerCallback(int elapse, TimerCallback* timer, int* out_timer_id) = 0;
128 
137  virtual bool KillTimer(int timer_id) = 0;
138 
151  virtual void FocusGotOnControl(const Control& control, const char* value) = 0;
152 
165  virtual void FocusLostFromControl(const Control& control, const char* value) = 0;
166 
174  virtual void* CreatePopupMenu() = 0;
175 
189  virtual bool AppendPopupMenuItem(const void* h_popup_menu, PopupMenuItem popup_menu_item, const wchar_t* default_string) = 0;
190 
204  virtual bool EnablePopupMenuItem(const void* h_popup_menu, PopupMenuItem popup_menu_item, bool is_enabled) = 0;
205 
216  virtual bool ShowPopupMenu(const void* h_popup_menu, const PointF& point) = 0;
217 
227  virtual void DestroyPopupMenu(const void* h_popup_menu) = 0;
228 
238  virtual void SetClipboardText(const wchar_t* text) = 0;
239 
247  virtual WString GetClipboardText() = 0;
248 
259  virtual void ReportInvalidValue(const wchar_t* form_field_name, const wchar_t* invalid_value) = 0;
260  protected:
262 };
263 
272 class Filler FS_FINAL : public Base {
273  public:
279  typedef enum _VirtualKeyCode {
283  e_VkeyBack = 0x08,
285  e_VkeyTab = 0x09,
287  e_VkeyReturn = 0x0D,
289  e_VkeyShift = 0x10,
293  e_VkeyMenu = 0x12,
295  e_VkeyPause = 0x13,
297  e_VkeyEscape = 0x1B,
299  e_VkeySpace = 0x20,
301  e_VkeyPrior = 0x21,
303  e_VkeyNext = 0x22,
305  e_VkeyEnd = 0x23,
307  e_VkeyHome = 0x24,
309  e_VkeyLeft = 0x25,
311  e_VkeyUp = 0x26,
313  e_VkeyRight = 0x27,
315  e_VkeyDown = 0x28,
317  e_VkeyPrint = 0x2A,
321  e_VkeyInsert = 0x2D,
323  e_VkeyDelete = 0x2E,
325  e_VkeyHelp = 0x2F,
327  e_Vkey0 = 0x30,
329  e_Vkey1 = 0x31,
331  e_Vkey2 = 0x32,
333  e_Vkey3 = 0x33,
335  e_Vkey4 = 0x34,
337  e_Vkey5 = 0x35,
339  e_Vkey6 = 0x36,
341  e_Vkey7 = 0x37,
343  e_Vkey8 = 0x38,
345  e_Vkey9 = 0x39,
347  e_VkeyA = 0x41,
349  e_VkeyB = 0x42,
351  e_VkeyC = 0x43,
353  e_VkeyD = 0x44,
355  e_VkeyE = 0x45,
357  e_VkeyF = 0x46,
359  e_VkeyG = 0x47,
361  e_VkeyH = 0x48,
363  e_VkeyI = 0x49,
365  e_VkeyJ = 0x4A,
367  e_VkeyK = 0x4B,
369  e_VkeyL = 0x4C,
371  e_VkeyM = 0x4D,
373  e_VkeyN = 0x4E,
375  e_VkeyO = 0x4F,
377  e_VkeyP = 0x50,
379  e_VkeyQ = 0x51,
381  e_VkeyR = 0x52,
383  e_VkeyS = 0x53,
385  e_VkeyT = 0x54,
387  e_VkeyU = 0x55,
389  e_VkeyV = 0x56,
391  e_VkeyW = 0x57,
393  e_VkeyX = 0x58,
395  e_VkeyY = 0x59,
397  e_VkeyZ = 0x5A,
421  e_VkeyAdd = 0x6B,
429  e_VkeyDivide = 0x6F,
431  e_VkeyF1 = 0x70,
433  e_VkeyF2 = 0x71,
435  e_VkeyF3 = 0x72,
437  e_VkeyF4 = 0x73,
439  e_VkeyF5 = 0x74,
441  e_VkeyF6 = 0x75,
443  e_VkeyF7 = 0x76,
445  e_VkeyF8 = 0x77,
447  e_VkeyF9 = 0x78,
449  e_VkeyF10 = 0x79,
451  e_VkeyF11 = 0x7A,
453  e_VkeyF12 = 0x7B
454  } VirtualKeyCode;
455 
461  typedef enum _EventFlags {
482  } EventFlags;
483 
484 
493  explicit Filler(const Form& form, FillerAssistCallback* assist);
494 
496  ~Filler();
497 
503  Filler(const Filler& other);
511  Filler& operator = (const Filler& other);
512 
520  bool operator == (const Filler& other) const;
528  bool operator != (const Filler& other) const;
529 
537  bool IsEmpty() const;
538 
554  void Render(const PDFPage& page, const Matrix& matrix,const common::Renderer& renderer);
555 
566  bool OnLButtonDown(const PDFPage& page, const PointF& point, uint32 flags);
567 
578  bool OnLButtonUp(const PDFPage& page, const PointF& point, uint32 flags);
579 
590  bool OnLButtonDoubleClick(const PDFPage& page, const PointF& point, uint32 flags);
591 
602  bool OnMouseMove(const PDFPage& page, const PointF& point, uint32 flags);
603 
615  bool OnMouseEnter(const PDFPage& page, const PointF& point, uint32 flags);
616 
628  bool OnMouseHover(const PDFPage& page, const PointF& point, uint32 flags);
629 
641  bool OnMouseLeave(const PDFPage& page, const PointF& point, uint32 flags);
642 
656  bool OnMouseWheel(const PDFPage& page, const PointF& point, int32 delta, uint32 flags);
657 
669  bool OnRButtonDown(const PDFPage& page, const PointF& point, uint32 flags);
670 
682  bool OnRButtonUp(const PDFPage& page, const PointF& point, uint32 flags);
683 
695  bool OnRButtonDoubleClick(const PDFPage& page, const PointF& point, uint32 flags);
696 
708  bool OnWheelButtonDown(const PDFPage& page, const PointF& point, uint32 flags);
709 
721  bool OnWheelButtonUp(const PDFPage& page, const PointF& point, uint32 flags);
722 
734  bool OnWheelButtonDoubleClick(const PDFPage& page, const PointF& point, uint32 flags);
735 
747  bool OnKeyDown(uint32 key_code, uint32 flags);
748 
760  bool OnKeyUp(uint32 key_code, uint32 flags);
761 
771  bool OnChar(uint32 char_code, uint32 flags);
772 
781  bool SetFocus(const Control& control);
782 
788  bool KillFocus();
789 
801  void HighlightFormFields(bool is_highlight);
802 
819  void HighlightFormFields(bool is_highlight, bool is_sign_highlight);
820 
830  void SetHighlightColor(ARGB color);
831 
842  void ShowOverflowIndicator(bool is_show_overflow_indicator);
843 
849  bool OnCut();
850 
856  bool OnCopy();
857 
863  bool OnPaste();
864 
870  bool OnSelectAll();
871 
877  bool OnDelete();
878 
888 
889  // 强烈建议用户不要使用此方法;否则可能出现未知情况。
890  explicit Filler(FS_HANDLE handle = NULL);
891 };
892 } // namespace interform
893 } // namespace pdf
894 } // namespace foxit
895 #endif // FS_FORMFILLER_H_
896 
bool OnLButtonDown(const PDFPage &page, const PointF &point, uint32 flags)
当鼠标左键按下时调用此函数。
bool OnRButtonDoubleClick(const PDFPage &page, const PointF &point, uint32 flags)
(保留,尚未支持)当鼠标右键双击时调用此函数。
X键。
Definition: fs_formfiller.h:393
Filler & operator=(const Filler &other)
赋值操作符。
bool OnRButtonUp(const PDFPage &page, const PointF &point, uint32 flags)
当鼠标右键抬起时调用此函数。
Z键。
Definition: fs_formfiller.h:397
virtual void DestroyPopupMenu(const void *h_popup_menu)=0
当需要销毁弹出菜单时触发的回调函数。
F10键。
Definition: fs_formfiller.h:449
void ShowOverflowIndicator(bool is_show_overflow_indicator)
决定当文本字段中的文本溢出时是否显示溢出指示器。
无弹出菜单项。
Definition: fs_formfiller.h:74
bool OnPaste()
当弹出菜单项"粘贴"按下时调用此函数。
bool OnMouseMove(const PDFPage &page, const PointF &point, uint32 flags)
当鼠标移动时调用此函数。
F12键。
Definition: fs_formfiller.h:453
Q键。
Definition: fs_formfiller.h:379
事件标志:鼠标右键按下。
Definition: fs_formfiller.h:479
F键。
Definition: fs_formfiller.h:357
弹出菜单项:"剪切"。
Definition: fs_formfiller.h:76
Print键。
Definition: fs_formfiller.h:317
virtual void * CreatePopupMenu()=0
当需要创建弹出菜单时触发的回调函数。
bool OnCut()
当弹出菜单项"剪切"按下时调用此函数。
PopupMenuItem
弹出菜单项的枚举。
Definition: fs_formfiller.h:72
virtual bool EnablePopupMenuItem(const void *h_popup_menu, PopupMenuItem popup_menu_item, bool is_enabled)=0
当需要启用弹出菜单中指定弹出菜单项时触发的回调函数。
virtual void SetClipboardText(const wchar_t *text)=0
当需要设置剪贴板文本时触发的回调函数。
数字键盘中的3键。
Definition: fs_formfiller.h:405
事件标志:元键。
Definition: fs_formfiller.h:469
Definition: fs_formfiller.h:272
Page Down键。
Definition: fs_formfiller.h:303
左箭头键。
Definition: fs_formfiller.h:309
bool IsEmpty() const
检查当前对象是否为空。
bool OnWheelButtonDoubleClick(const PDFPage &page, const PointF &point, uint32 flags)
(保留,尚未支持)当鼠标滚轮按钮双击时调用此函数。
Definition: fx_coordinates.h:30
6键。
Definition: fs_formfiller.h:339
F6键。
Definition: fs_formfiller.h:441
I键。
Definition: fs_formfiller.h:363
事件标志:"Alt"键。
Definition: fs_formfiller.h:467
void SetHighlightColor(ARGB color)
设置用于高亮显示表单字段的高亮颜色。
A键。
Definition: fs_formfiller.h:347
EventFlags
键事件标志的枚举。
Definition: fs_formfiller.h:461
ESC键。
Definition: fs_formfiller.h:297
5键。
Definition: fs_formfiller.h:337
退格键。
Definition: fs_formfiller.h:283
宽字符串类
Definition: fx_string.h:1457
2键。
Definition: fs_formfiller.h:331
virtual bool KillTimer(int timer_id)=0
用于通过计时器标识符销毁计时器事件的回调函数。
3键。
Definition: fs_formfiller.h:333
V键。
Definition: fs_formfiller.h:389
Help键。
Definition: fs_formfiller.h:325
F3键。
Definition: fs_formfiller.h:435
bool OnDelete()
当弹出菜单项"删除"按下时调用此函数。
W键。
Definition: fs_formfiller.h:391
Definition: fs_formfiller.h:65
Definition: fs_pdfform.h:675
数字键盘中的7键。
Definition: fs_formfiller.h:413
数字键盘中的4键。
Definition: fs_formfiller.h:407
F8键。
Definition: fs_formfiller.h:445
Delete键。
Definition: fs_formfiller.h:323
Definition: fs_pdfform.h:1217
bool operator !=(const Filler &other) const
不等操作符。
C键。
Definition: fs_formfiller.h:351
Print Screen键。
Definition: fs_formfiller.h:319
8键。
Definition: fs_formfiller.h:343
数字键盘中的1键。
Definition: fs_formfiller.h:401
E键。
Definition: fs_formfiller.h:355
virtual void ReportInvalidValue(const wchar_t *form_field_name, const wchar_t *invalid_value)=0
当用户输入无效值时触发的回调函数。
Filler(const Form &form, FillerAssistCallback *assist)
构造函数。
virtual void Refresh(const PDFPage &page, const RectF &rect, bool has_reparse_page)=0
用于刷新指定页面上指定区域的回调函数。
bool SetFocus(const Control &control)
将焦点设置到表单控件上。
F7键。
Definition: fs_formfiller.h:443
VirtualKeyCode
虚拟键码的枚举。
Definition: fs_formfiller.h:279
U键。
Definition: fs_formfiller.h:387
virtual void OnTimer(int timer)=0
用作每个时间间隔上的计时器的回调函数。
Definition: fs_render.h:201
弹出菜单项:"粘贴"。
Definition: fs_formfiller.h:80
数字键盘中的减号键。
Definition: fs_formfiller.h:425
数字键盘中的斜杠键。
Definition: fs_formfiller.h:429
uint32 ARGB
ARGB 颜色类型,32 位,((b) | ((g) << 8) | ((r) << 16)) | ((a) << 24)
Definition: fs_basictypes.h:209
Insert键。
Definition: fs_formfiller.h:321
bool OnLButtonUp(const PDFPage &page, const PointF &point, uint32 flags)
当鼠标左键抬起时调用此函数。
B键。
Definition: fs_formfiller.h:349
bool OnLButtonDoubleClick(const PDFPage &page, const PointF &point, uint32 flags)
当鼠标左键双击时调用此函数。
数字键盘中的9键。
Definition: fs_formfiller.h:417
弹出菜单项:"删除"。
Definition: fs_formfiller.h:82
事件标志:键盘。
Definition: fs_formfiller.h:471
菜单键。
Definition: fs_formfiller.h:293
bool OnMouseLeave(const PDFPage &page, const PointF &point, uint32 flags)
(保留,尚未支持)当鼠标离开某处时调用此函数。
bool OnMouseEnter(const PDFPage &page, const PointF &point, uint32 flags)
(保留,尚未支持)当鼠标进入某处时调用此函数。
bool OnKeyDown(uint32 key_code, uint32 flags)
当键盘上的键按下时调用此函数。
bool OnKeyUp(uint32 key_code, uint32 flags)
当键盘上的键抬起时调用此函数。
virtual bool ShowPopupMenu(const void *h_popup_menu, const PointF &point)=0
当需要显示弹出菜单时触发的回调函数。
1键。
Definition: fs_formfiller.h:329
P键。
Definition: fs_formfiller.h:377
bool OnChar(uint32 char_code, uint32 flags)
当字符代码即将输入到表单字段时调用此函数。
F5键。
Definition: fs_formfiller.h:439
Shift键。
Definition: fs_formfiller.h:289
4键。
Definition: fs_formfiller.h:335
virtual bool AppendPopupMenuItem(const void *h_popup_menu, PopupMenuItem popup_menu_item, const wchar_t *default_string)=0
当需要向弹出菜单追加弹出菜单项时触发的回调函数。
弹出菜单项:"全选"。
Definition: fs_formfiller.h:84
F9键。
Definition: fs_formfiller.h:447
bool OnCopy()
当弹出菜单项"复制"按下时调用此函数。
数字键盘中的2键。
Definition: fs_formfiller.h:403
K键。
Definition: fs_formfiller.h:367
virtual void Release()=0
用于释放当前回调对象本身的回调函数。
弹出菜单项:"复制"。
Definition: fs_formfiller.h:78
Y键。
Definition: fs_formfiller.h:395
7键。
Definition: fs_formfiller.h:341
Ctrl键。
Definition: fs_formfiller.h:291
F1键。
Definition: fs_formfiller.h:431
0键。
Definition: fs_formfiller.h:327
F2键。
Definition: fs_formfiller.h:433
T键。
Definition: fs_formfiller.h:385
bool operator==(const Filler &other) const
相等操作符。
FX_UINT32 uint32
无符号 32 位整数。
Definition: fs_basictypes.h:195
bool OnRButtonDown(const PDFPage &page, const PointF &point, uint32 flags)
当鼠标右键按下时调用此函数。
数字键盘中的5键。
Definition: fs_formfiller.h:409
Definition: fs_pdfpage.h:417
Page Up键。
Definition: fs_formfiller.h:301
void * FS_HANDLE
句柄类型。
Definition: fs_basictypes.h:213
通用定义和类的头文件。
事件标志:鼠标左键按下。
Definition: fs_formfiller.h:475
Home键。
Definition: fs_formfiller.h:307
事件标志:命令键。
Definition: fs_formfiller.h:481
数字键盘中的6键。
Definition: fs_formfiller.h:411
数字键盘中的8键。
Definition: fs_formfiller.h:415
Tab键。
Definition: fs_formfiller.h:285
void Render(const PDFPage &page, const Matrix &matrix, const common::Renderer &renderer)
在页面上绘制当前获得焦点的表单控件。
FX_INT32 int32
有符号 32 位整数。
Definition: fs_basictypes.h:193
Definition: fs_basictypes.h:471
bool OnWheelButtonUp(const PDFPage &page, const PointF &point, uint32 flags)
(保留,尚未支持)当鼠标滚轮按钮抬起时调用此函数。
数字键盘中的加号键。
Definition: fs_formfiller.h:421
H键。
Definition: fs_formfiller.h:361
bool OnSelectAll()
当弹出菜单项"全选"按下时调用此函数。
R键。
Definition: fs_formfiller.h:381
void HighlightFormFields(bool is_highlight)
决定是否高亮显示表单字段(包括签名字段)。
N键。
Definition: fs_formfiller.h:373
L键。
Definition: fs_formfiller.h:369
Definition: fs_formfiller.h:46
Foxit命名空间。
Definition: fs_pdf3d.h:26
数字键盘中的小数点键。
Definition: fs_formfiller.h:427
F4键。
Definition: fs_formfiller.h:437
F11键。
Definition: fs_formfiller.h:451
下箭头键。
Definition: fs_formfiller.h:315
Pause Break键。
Definition: fs_formfiller.h:295
M键。
Definition: fs_formfiller.h:371
virtual void FocusGotOnControl(const Control &control, const char *value)=0
当焦点设置到表单控件时触发的回调函数。
右箭头键。
Definition: fs_formfiller.h:313
virtual WString GetClipboardText()=0
当需要获取剪贴板上的文本时触发的回调函数。
回车键。
Definition: fs_formfiller.h:287
事件标志:"Shift"键。
Definition: fs_formfiller.h:463
G键。
Definition: fs_formfiller.h:359
#define NULL
空指针值。
Definition: fx_system.h:792
virtual void FocusLostFromControl(const Control &control, const char *value)=0
当焦点从表单控件丢失时触发的回调函数。
Definition: fx_coordinates.h:1076
bool OnWheelButtonDown(const PDFPage &page, const PointF &point, uint32 flags)
(保留,尚未支持)当鼠标滚轮按钮按下时调用此函数。
数字键盘中的0键。
Definition: fs_formfiller.h:399
事件标志:自动重复。
Definition: fs_formfiller.h:473
virtual bool SetTimerCallback(int elapse, TimerCallback *timer, int *out_timer_id)=0
用于设置系统计时器的回调函数。
空格键。
Definition: fs_formfiller.h:299
未知键。
Definition: fs_formfiller.h:281
PointF GetEditingTextCaretPosition(Matrix matrix)
当文本字段或组合框处于编辑状态时获取文本光标位置。
Header file for rendering related definitions and classes.
virtual int GetVersion()
获取派生实现的版本,用于兼容性原因。
Definition: fs_formfiller.h:99
J键。
Definition: fs_formfiller.h:365
事件标志:"Ctrl"键。
Definition: fs_formfiller.h:465
数字键盘中的乘号键。
Definition: fs_formfiller.h:419
上箭头键。
Definition: fs_formfiller.h:311
S键。
Definition: fs_formfiller.h:383
End键。
Definition: fs_formfiller.h:305
事件标志:鼠标中键按下。
Definition: fs_formfiller.h:477
O键。
Definition: fs_formfiller.h:375
bool KillFocus()
从表单中移除焦点。
数字键盘中的回车键。
Definition: fs_formfiller.h:423
D键。
Definition: fs_formfiller.h:353
bool OnMouseWheel(const PDFPage &page, const PointF &point, int32 delta, uint32 flags)
(保留,尚未支持)当鼠标滚轮移动时调用此函数。
9键。
Definition: fs_formfiller.h:345
Definition: fx_coordinates.h:771
bool OnMouseHover(const PDFPage &page, const PointF &point, uint32 flags)
(保留,尚未支持)当鼠标悬停在某处时调用此函数。