Merge XFA to PDFium master at 4dc95e7 on 10/28/2014
[pdfium.git] / xfa / include / fwl / basewidget / fwl_checkbox.h
1 // Copyright 2014 PDFium Authors. All rights reserved.\r
2 // Use of this source code is governed by a BSD-style license that can be\r
3 // found in the LICENSE file.\r
4 \r
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com\r
6 \r
7 #ifndef _FWL_CHECKBOX_H\r
8 #define _FWL_CHECKBOX_H\r
9 class CFWL_WidgetImpProperties;\r
10 class IFWL_Widget;\r
11 class IFWL_CheckBoxDP;\r
12 class IFWL_CheckBox;\r
13 #define FWL_CLASS_CheckBox                                      L"FWL_CHECKBOX"\r
14 #define FWL_CLASS_RadioButton                           L"FWL_RADIOBUTTON"\r
15 #define FWL_CLASSHASH_CheckBox                          4107183823\r
16 #define FWL_CLASSHASH_RadioButton                       3811304691\r
17 #define FWL_STYLEEXT_CKB_Left                           (0L << 0)\r
18 #define FWL_STYLEEXT_CKB_Center                         (1L << 0)\r
19 #define FWL_STYLEEXT_CKB_Right                          (2L << 0)\r
20 #define FWL_STYLEEXT_CKB_Top                            (0L << 2)\r
21 #define FWL_STYLEEXT_CKB_VCenter                        (1L << 2)\r
22 #define FWL_STYLEEXT_CKB_Bottom                         (2L << 2)\r
23 #define FWL_STYLEEXT_CKB_LeftText                       (1L << 4)\r
24 #define FWL_STYLEEXT_CKB_MultiLine                      (1L << 5)\r
25 #define FWL_STYLEEXT_CKB_3State                         (1L << 6)\r
26 #define FWL_STYLEEXT_CKB_RadioButton            (1L << 7)\r
27 #define FWL_STYLEEXT_CKB_ShapeSolidSquare       (0L << 8)\r
28 #define FWL_STYLEEXT_CKB_ShapeSunkenSquare      (1L << 8)\r
29 #define FWL_STYLEEXT_CKB_ShapeSolidCircle       (2L << 8)\r
30 #define FWL_STYLEEXT_CKB_ShapeSunkenCircle      (3L << 8)\r
31 #define FWL_STYLEEXT_CKB_SignShapeCheck         (0L << 10)\r
32 #define FWL_STYLEEXT_CKB_SignShapeCircle        (1L << 10)\r
33 #define FWL_STYLEEXT_CKB_SignShapeCross         (2L << 10)\r
34 #define FWL_STYLEEXT_CKB_SignShapeDiamond       (3L << 10)\r
35 #define FWL_STYLEEXT_CKB_SignShapeSquare        (4L << 10)\r
36 #define FWL_STYLEEXT_CKB_SignShapeStar          (5L << 10)\r
37 #define FWL_STYLEEXT_CKB_HLayoutMask            (3L << 0)\r
38 #define FWL_STYLEEXT_CKB_VLayoutMask            (3L << 2)\r
39 #define FWL_STYLEEXT_CKB_ShapeMask                      (3L << 8)\r
40 #define FWL_STYLEEXT_CKB_SignShapeMask          (7L << 10)\r
41 #define FWL_STATE_CKB_Hovered                           (1 << FWL_WGTSTATE_MAX)\r
42 #define FWL_STATE_CKB_Pressed                           (1 << (FWL_WGTSTATE_MAX + 1))\r
43 #define FWL_STATE_CKB_Unchecked                         (0 << (FWL_WGTSTATE_MAX + 2))\r
44 #define FWL_STATE_CKB_Checked                           (1 << (FWL_WGTSTATE_MAX + 2))\r
45 #define FWL_STATE_CKB_Neutral                           (2 << (FWL_WGTSTATE_MAX + 2))\r
46 #define FWL_STATE_CKB_CheckMask                         (3L << (FWL_WGTSTATE_MAX + 2))\r
47 #define FWL_PART_CKB_Border                                     1\r
48 #define FWL_PART_CKB_Edge                                       2\r
49 #define FWL_PART_CKB_Background                         3\r
50 #define FWL_PART_CKB_CheckBox                           4\r
51 #define FWL_PART_CKB_Caption                            5\r
52 #define FWL_PARTSTATE_CKB_Normal                        (0L << 0)\r
53 #define FWL_PARTSTATE_CKB_Pressed                       (1L << 0)\r
54 #define FWL_PARTSTATE_CKB_Hovered                       (2L << 0)\r
55 #define FWL_PARTSTATE_CKB_Disabled                      (3L << 0)\r
56 #define FWL_PARTSTATE_CKB_UnChecked                     (0L << 2)\r
57 #define FWL_PARTSTATE_CKB_Checked                       (1L << 2)\r
58 #define FWL_PARTSTATE_CKB_Neutral                       (2L << 2)\r
59 #define FWL_PARTSTATE_CKB_Focused                       (1L << 4)\r
60 #define FWL_PARTSTATE_CKB_Mask1                         (3L << 0)\r
61 #define FWL_PARTSTATE_CKB_Mask2                         (3L << 2)\r
62 #define FWL_EVT_CKB_CheckStateChanged           L"FWL_EVENT_CKB_CheckStateChanged"\r
63 #define FWL_EVTHASH_CKB_CheckStateChanged       2503252963\r
64 BEGIN_FWL_EVENT_DEF(CFWL_EvtCkbCheckStateChanged, FWL_EVTHASH_CKB_CheckStateChanged)\r
65 END_FWL_EVENT_DEF\r
66 class IFWL_CheckBoxDP : public IFWL_DataProvider\r
67 {\r
68 public:\r
69     virtual FX_FLOAT GetBoxSize(IFWL_Widget *pWidget) = 0;\r
70 };\r
71 class IFWL_CheckBox : public IFWL_Widget\r
72 {\r
73 public:\r
74     static IFWL_CheckBox* Create();\r
75     FWL_ERR             Initialize(IFWL_Widget *pOuter = NULL);\r
76     FWL_ERR             Initialize(const CFWL_WidgetImpProperties &properties, IFWL_Widget *pOuter = NULL);\r
77     FX_INT32    GetCheckState();\r
78     FWL_ERR             SetCheckState(FX_INT32 iCheck);\r
79 protected:\r
80     IFWL_CheckBox();\r
81     virtual ~IFWL_CheckBox();\r
82 };\r
83 class IFWL_RadioButton : public IFWL_Widget\r
84 {\r
85 public:\r
86     static IFWL_RadioButton* Create();\r
87     FWL_ERR             Initialize(IFWL_Widget *pOuter = NULL);\r
88     FWL_ERR             Initialize(const CFWL_WidgetImpProperties &properties, IFWL_Widget *pOuter = NULL);\r
89     FX_INT32    GetCheckState();\r
90     FWL_ERR             SetCheckState(FX_INT32 iCheck);\r
91 protected:\r
92     IFWL_RadioButton();\r
93     virtual ~IFWL_RadioButton();\r
94 };\r
95 #endif\r