blob: efb61ce018e0a7c50c350a2e046b23631bc7edea [file] [log] [blame]
Dan Sinclair1770c022016-03-14 14:14:16 -04001// Copyright 2014 PDFium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6
dsinclair7f432a12016-03-29 12:38:01 -07007#include "xfa/fwl/lightwidget/cfwl_tooltip.h"
Dan Sinclair1770c022016-03-14 14:14:16 -04008
9#include <memory>
10
11#include "xfa/fwl/core/fwl_formimp.h"
12#include "xfa/fwl/core/fwl_noteimp.h"
Dan Sinclair1770c022016-03-14 14:14:16 -040013#include "xfa/fwl/core/fwl_widgetimp.h"
14
15CFWL_ToolTip* CFWL_ToolTip::Create() {
16 return new CFWL_ToolTip;
17}
dsinclair7f432a12016-03-29 12:38:01 -070018
Dan Sinclair1770c022016-03-14 14:14:16 -040019FWL_ERR CFWL_ToolTip::Initialize(const CFWL_WidgetProperties* pProperties) {
20 if (m_pIface)
21 return FWL_ERR_Indefinite;
22 if (pProperties) {
23 *m_pProperties = *pProperties;
24 }
25 std::unique_ptr<IFWL_ToolTip> pToolTip(IFWL_ToolTip::Create(
26 m_pProperties->MakeWidgetImpProperties(&m_tooltipData), nullptr));
27 FWL_ERR ret = pToolTip->Initialize();
28 if (ret != FWL_ERR_Succeeded) {
29 return ret;
30 }
31 m_pIface = pToolTip.release();
32 CFWL_Widget::Initialize();
33 return FWL_ERR_Succeeded;
34}
dsinclair7f432a12016-03-29 12:38:01 -070035
Dan Sinclair1770c022016-03-14 14:14:16 -040036FWL_ERR CFWL_ToolTip::GetCaption(CFX_WideString& wsCaption) {
37 wsCaption = m_tooltipData.m_wsCaption;
38 return FWL_ERR_Succeeded;
39}
dsinclair7f432a12016-03-29 12:38:01 -070040
Dan Sinclair1770c022016-03-14 14:14:16 -040041FWL_ERR CFWL_ToolTip::SetCaption(const CFX_WideStringC& wsCaption) {
42 m_tooltipData.m_wsCaption = wsCaption;
43 return FWL_ERR_Succeeded;
44}
dsinclair7f432a12016-03-29 12:38:01 -070045
Dan Sinclair1770c022016-03-14 14:14:16 -040046int32_t CFWL_ToolTip::GetInitialDelay() {
47 return m_tooltipData.m_nInitDelayTime;
48}
dsinclair7f432a12016-03-29 12:38:01 -070049
Dan Sinclair1770c022016-03-14 14:14:16 -040050int32_t CFWL_ToolTip::SetInitialDelay(int32_t nDelayTime) {
51 m_tooltipData.m_nInitDelayTime = nDelayTime;
52 return FWL_ERR_Succeeded;
53}
dsinclair7f432a12016-03-29 12:38:01 -070054
Dan Sinclair1770c022016-03-14 14:14:16 -040055int32_t CFWL_ToolTip::GetAutoPopDelay() {
56 return m_tooltipData.m_nAutoPopDelayTime;
57}
dsinclair7f432a12016-03-29 12:38:01 -070058
Dan Sinclair1770c022016-03-14 14:14:16 -040059int32_t CFWL_ToolTip::SetAutoPopDelay(int32_t nDelayTime) {
60 m_tooltipData.m_nAutoPopDelayTime = nDelayTime;
61 return FWL_ERR_Succeeded;
62}
dsinclair7f432a12016-03-29 12:38:01 -070063
Dan Sinclair1770c022016-03-14 14:14:16 -040064CFX_DIBitmap* CFWL_ToolTip::GetToolTipIcon() {
65 return m_tooltipData.m_pBitmap;
66}
dsinclair7f432a12016-03-29 12:38:01 -070067
Dan Sinclair1770c022016-03-14 14:14:16 -040068FWL_ERR CFWL_ToolTip::SetToolTipIcon(CFX_DIBitmap* pBitmap) {
69 m_tooltipData.m_pBitmap = pBitmap;
70 return FWL_ERR_Succeeded;
71}
dsinclair7f432a12016-03-29 12:38:01 -070072
Dan Sinclair1770c022016-03-14 14:14:16 -040073CFX_SizeF CFWL_ToolTip::GetToolTipIconSize() {
74 return m_tooltipData.m_fIconSize;
75}
dsinclair7f432a12016-03-29 12:38:01 -070076
Dan Sinclair1770c022016-03-14 14:14:16 -040077FWL_ERR CFWL_ToolTip::SetToolTipIconSize(CFX_SizeF fSize) {
78 m_tooltipData.m_fIconSize = fSize;
79 return FWL_ERR_Succeeded;
80}
dsinclair7f432a12016-03-29 12:38:01 -070081
Dan Sinclair1770c022016-03-14 14:14:16 -040082FWL_ERR CFWL_ToolTip::SetAnchor(const CFX_RectF& rtAnchor) {
83 return static_cast<IFWL_ToolTip*>(m_pIface)->SetAnchor(rtAnchor);
84}
dsinclair7f432a12016-03-29 12:38:01 -070085
Dan Sinclair1770c022016-03-14 14:14:16 -040086FWL_ERR CFWL_ToolTip::Show() {
87 return static_cast<IFWL_ToolTip*>(m_pIface)->Show();
88}
dsinclair7f432a12016-03-29 12:38:01 -070089
Dan Sinclair1770c022016-03-14 14:14:16 -040090FWL_ERR CFWL_ToolTip::Hide() {
91 return static_cast<IFWL_ToolTip*>(m_pIface)->Hide();
92}
dsinclair7f432a12016-03-29 12:38:01 -070093
Dan Sinclair1770c022016-03-14 14:14:16 -040094CFWL_ToolTip::CFWL_ToolTip() {}
dsinclair7f432a12016-03-29 12:38:01 -070095
Dan Sinclair1770c022016-03-14 14:14:16 -040096CFWL_ToolTip::~CFWL_ToolTip() {}
dsinclair7f432a12016-03-29 12:38:01 -070097
Dan Sinclair1770c022016-03-14 14:14:16 -040098CFWL_ToolTip::CFWL_ToolTipDP::CFWL_ToolTipDP() : m_pBitmap(NULL) {
99 m_wsCaption = L"";
100 m_nInitDelayTime = 500;
101 m_nAutoPopDelayTime = 50000;
102 m_fAnchor.Set(0.0, 0.0, 0.0, 0.0);
103}
dsinclair7f432a12016-03-29 12:38:01 -0700104
Dan Sinclair1770c022016-03-14 14:14:16 -0400105FWL_ERR CFWL_ToolTip::CFWL_ToolTipDP::GetCaption(IFWL_Widget* pWidget,
106 CFX_WideString& wsCaption) {
107 wsCaption = m_wsCaption;
108 return FWL_ERR_Succeeded;
109}
dsinclair7f432a12016-03-29 12:38:01 -0700110
Dan Sinclair1770c022016-03-14 14:14:16 -0400111int32_t CFWL_ToolTip::CFWL_ToolTipDP::GetInitialDelay(IFWL_Widget* pWidget) {
112 return m_nInitDelayTime;
113}
dsinclair7f432a12016-03-29 12:38:01 -0700114
Dan Sinclair1770c022016-03-14 14:14:16 -0400115int32_t CFWL_ToolTip::CFWL_ToolTipDP::GetAutoPopDelay(IFWL_Widget* pWidget) {
116 return m_nAutoPopDelayTime;
117}
dsinclair7f432a12016-03-29 12:38:01 -0700118
Dan Sinclair1770c022016-03-14 14:14:16 -0400119CFX_DIBitmap* CFWL_ToolTip::CFWL_ToolTipDP::GetToolTipIcon(
120 IFWL_Widget* pWidget) {
121 return m_pBitmap;
122}
dsinclair7f432a12016-03-29 12:38:01 -0700123
Dan Sinclair1770c022016-03-14 14:14:16 -0400124CFX_SizeF CFWL_ToolTip::CFWL_ToolTipDP::GetToolTipIconSize(
125 IFWL_Widget* pWidget) {
126 return m_fIconSize;
127}
dsinclair7f432a12016-03-29 12:38:01 -0700128
Dan Sinclair1770c022016-03-14 14:14:16 -0400129CFX_RectF CFWL_ToolTip::CFWL_ToolTipDP::GetAnchor() {
130 return m_fAnchor;
131}