Merge XFA to PDFium master at 4dc95e7 on 10/28/2014
[pdfium.git] / xfa / src / fwl / src / lightwidget / tooltipctrl.cpp
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 #include "../../../foxitlib.h"\r
8 #include "../core/include/fwl_targetimp.h"\r
9 #include "../core/include/fwl_noteimp.h"\r
10 #include "../core/include/fwl_widgetimp.h"\r
11 #include "../core/include/fwl_panelimp.h"\r
12 #include "../core/include/fwl_formimp.h"\r
13 #include "../core/include/fwl_threadimp.h"\r
14 CFWL_ToolTip* CFWL_ToolTip::Create()\r
15 {\r
16     return FX_NEW CFWL_ToolTip;\r
17 }\r
18 FWL_ERR CFWL_ToolTip::Initialize(const CFWL_WidgetProperties *pProperties )\r
19 {\r
20     _FWL_RETURN_VALUE_IF_FAIL(!m_pImp, FWL_ERR_Indefinite);\r
21     if (pProperties) {\r
22         *m_pProperties = *pProperties;\r
23     }\r
24     CFWL_WidgetImpProperties prop;\r
25     prop.m_dwStyles = m_pProperties->m_dwStyles;\r
26     prop.m_dwStyleExes = m_pProperties->m_dwStyleExes;\r
27     prop.m_dwStates = m_pProperties->m_dwStates;\r
28     prop.m_ctmOnParent = m_pProperties->m_ctmOnParent;\r
29     prop.m_pDataProvider = &m_tooltipData;\r
30     if (m_pProperties->m_pParent) {\r
31         prop.m_pParent = m_pProperties->m_pParent->GetWidget();\r
32     }\r
33     if (m_pProperties->m_pOwner) {\r
34         prop.m_pOwner = m_pProperties->m_pOwner->GetWidget();\r
35     }\r
36     prop.m_rtWidget = m_pProperties->m_rtWidget;\r
37     m_pImp = IFWL_ToolTip::Create();\r
38     FWL_ERR ret = ((IFWL_ToolTip*)m_pImp)->Initialize(prop);\r
39     if (ret == FWL_ERR_Succeeded) {\r
40         CFWL_Widget::Initialize();\r
41     }\r
42     return ret;\r
43 }\r
44 FWL_ERR CFWL_ToolTip::GetCaption(CFX_WideString &wsCaption)\r
45 {\r
46     wsCaption = m_tooltipData.m_wsCaption;\r
47     return FWL_ERR_Succeeded;\r
48 }\r
49 FWL_ERR CFWL_ToolTip::SetCaption(FX_WSTR wsCaption)\r
50 {\r
51     m_tooltipData.m_wsCaption = wsCaption;\r
52     return FWL_ERR_Succeeded;\r
53 }\r
54 FX_INT32 CFWL_ToolTip::GetInitialDelay()\r
55 {\r
56     return m_tooltipData.m_nInitDelayTime;\r
57 }\r
58 FX_INT32 CFWL_ToolTip::SetInitialDelay(FX_INT32 nDelayTime)\r
59 {\r
60     m_tooltipData.m_nInitDelayTime = nDelayTime;\r
61     return FWL_ERR_Succeeded;\r
62 }\r
63 FX_INT32 CFWL_ToolTip::GetAutoPopDelay()\r
64 {\r
65     return m_tooltipData.m_nAutoPopDelayTime;\r
66 }\r
67 FX_INT32 CFWL_ToolTip::SetAutoPopDelay(FX_INT32 nDelayTime)\r
68 {\r
69     m_tooltipData.m_nAutoPopDelayTime = nDelayTime;\r
70     return FWL_ERR_Succeeded;\r
71 }\r
72 CFX_DIBitmap* CFWL_ToolTip::GetToolTipIcon()\r
73 {\r
74     return m_tooltipData.m_pBitmap;\r
75 }\r
76 FWL_ERR CFWL_ToolTip::SetToolTipIcon(CFX_DIBitmap *pBitmap)\r
77 {\r
78     m_tooltipData.m_pBitmap = pBitmap;\r
79     return FWL_ERR_Succeeded;\r
80 }\r
81 CFX_SizeF CFWL_ToolTip::GetToolTipIconSize()\r
82 {\r
83     return m_tooltipData.m_fIconSize;\r
84 }\r
85 FWL_ERR CFWL_ToolTip::SetToolTipIconSize(CFX_SizeF fSize)\r
86 {\r
87     m_tooltipData.m_fIconSize = fSize;\r
88     return FWL_ERR_Succeeded;\r
89 }\r
90 FWL_ERR CFWL_ToolTip::SetAnchor(const CFX_RectF &rtAnchor)\r
91 {\r
92     return ((IFWL_ToolTip*)m_pImp)->SetAnchor(rtAnchor);\r
93 }\r
94 FWL_ERR CFWL_ToolTip::Show()\r
95 {\r
96     return ((IFWL_ToolTip*)m_pImp)->Show();\r
97 }\r
98 FWL_ERR CFWL_ToolTip::Hide()\r
99 {\r
100     return ((IFWL_ToolTip*)m_pImp)->Hide();\r
101 }\r
102 CFWL_ToolTip::CFWL_ToolTip()\r
103 {\r
104 }\r
105 CFWL_ToolTip::~CFWL_ToolTip()\r
106 {\r
107 }\r
108 CFWL_ToolTip::CFWL_ToolTipDP::CFWL_ToolTipDP()\r
109     : m_pBitmap(NULL)\r
110 {\r
111     m_wsCaption = L"";\r
112     m_nInitDelayTime = 500;\r
113     m_nAutoPopDelayTime = 50000;\r
114     m_fIconSize.Set( 0.0, 0.0);\r
115     m_fAnchor.Set( 0.0, 0.0, 0.0, 0.0);\r
116 }\r
117 FWL_ERR CFWL_ToolTip::CFWL_ToolTipDP::GetCaption(IFWL_Widget *pWidget, CFX_WideString &wsCaption)\r
118 {\r
119     wsCaption = m_wsCaption;\r
120     return FWL_ERR_Succeeded;\r
121 }\r
122 FX_INT32 CFWL_ToolTip::CFWL_ToolTipDP::GetInitialDelay(IFWL_Widget *pWidget)\r
123 {\r
124     return m_nInitDelayTime;\r
125 }\r
126 FX_INT32 CFWL_ToolTip::CFWL_ToolTipDP::GetAutoPopDelay(IFWL_Widget *pWidget)\r
127 {\r
128     return m_nAutoPopDelayTime;\r
129 }\r
130 CFX_DIBitmap* CFWL_ToolTip::CFWL_ToolTipDP::GetToolTipIcon(IFWL_Widget *pWidget)\r
131 {\r
132     return m_pBitmap;\r
133 }\r
134 CFX_SizeF CFWL_ToolTip::CFWL_ToolTipDP::GetToolTipIconSize(IFWL_Widget *pWidget)\r
135 {\r
136     return m_fIconSize;\r
137 }\r
138 CFX_RectF CFWL_ToolTip::CFWL_ToolTipDP::GetAnchor()\r
139 {\r
140     return m_fAnchor;\r
141 }\r