blob: abdf48997c29da456316354e58f0e64e5049b140 [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"
13#include "xfa/fwl/core/fwl_panelimp.h"
14#include "xfa/fwl/core/fwl_targetimp.h"
15#include "xfa/fwl/core/fwl_threadimp.h"
16#include "xfa/fwl/core/fwl_widgetimp.h"
17
18CFWL_ToolTip* CFWL_ToolTip::Create() {
19 return new CFWL_ToolTip;
20}
dsinclair7f432a12016-03-29 12:38:01 -070021
Dan Sinclair1770c022016-03-14 14:14:16 -040022FWL_ERR CFWL_ToolTip::Initialize(const CFWL_WidgetProperties* pProperties) {
23 if (m_pIface)
24 return FWL_ERR_Indefinite;
25 if (pProperties) {
26 *m_pProperties = *pProperties;
27 }
28 std::unique_ptr<IFWL_ToolTip> pToolTip(IFWL_ToolTip::Create(
29 m_pProperties->MakeWidgetImpProperties(&m_tooltipData), nullptr));
30 FWL_ERR ret = pToolTip->Initialize();
31 if (ret != FWL_ERR_Succeeded) {
32 return ret;
33 }
34 m_pIface = pToolTip.release();
35 CFWL_Widget::Initialize();
36 return FWL_ERR_Succeeded;
37}
dsinclair7f432a12016-03-29 12:38:01 -070038
Dan Sinclair1770c022016-03-14 14:14:16 -040039FWL_ERR CFWL_ToolTip::GetCaption(CFX_WideString& wsCaption) {
40 wsCaption = m_tooltipData.m_wsCaption;
41 return FWL_ERR_Succeeded;
42}
dsinclair7f432a12016-03-29 12:38:01 -070043
Dan Sinclair1770c022016-03-14 14:14:16 -040044FWL_ERR CFWL_ToolTip::SetCaption(const CFX_WideStringC& wsCaption) {
45 m_tooltipData.m_wsCaption = wsCaption;
46 return FWL_ERR_Succeeded;
47}
dsinclair7f432a12016-03-29 12:38:01 -070048
Dan Sinclair1770c022016-03-14 14:14:16 -040049int32_t CFWL_ToolTip::GetInitialDelay() {
50 return m_tooltipData.m_nInitDelayTime;
51}
dsinclair7f432a12016-03-29 12:38:01 -070052
Dan Sinclair1770c022016-03-14 14:14:16 -040053int32_t CFWL_ToolTip::SetInitialDelay(int32_t nDelayTime) {
54 m_tooltipData.m_nInitDelayTime = nDelayTime;
55 return FWL_ERR_Succeeded;
56}
dsinclair7f432a12016-03-29 12:38:01 -070057
Dan Sinclair1770c022016-03-14 14:14:16 -040058int32_t CFWL_ToolTip::GetAutoPopDelay() {
59 return m_tooltipData.m_nAutoPopDelayTime;
60}
dsinclair7f432a12016-03-29 12:38:01 -070061
Dan Sinclair1770c022016-03-14 14:14:16 -040062int32_t CFWL_ToolTip::SetAutoPopDelay(int32_t nDelayTime) {
63 m_tooltipData.m_nAutoPopDelayTime = nDelayTime;
64 return FWL_ERR_Succeeded;
65}
dsinclair7f432a12016-03-29 12:38:01 -070066
Dan Sinclair1770c022016-03-14 14:14:16 -040067CFX_DIBitmap* CFWL_ToolTip::GetToolTipIcon() {
68 return m_tooltipData.m_pBitmap;
69}
dsinclair7f432a12016-03-29 12:38:01 -070070
Dan Sinclair1770c022016-03-14 14:14:16 -040071FWL_ERR CFWL_ToolTip::SetToolTipIcon(CFX_DIBitmap* pBitmap) {
72 m_tooltipData.m_pBitmap = pBitmap;
73 return FWL_ERR_Succeeded;
74}
dsinclair7f432a12016-03-29 12:38:01 -070075
Dan Sinclair1770c022016-03-14 14:14:16 -040076CFX_SizeF CFWL_ToolTip::GetToolTipIconSize() {
77 return m_tooltipData.m_fIconSize;
78}
dsinclair7f432a12016-03-29 12:38:01 -070079
Dan Sinclair1770c022016-03-14 14:14:16 -040080FWL_ERR CFWL_ToolTip::SetToolTipIconSize(CFX_SizeF fSize) {
81 m_tooltipData.m_fIconSize = fSize;
82 return FWL_ERR_Succeeded;
83}
dsinclair7f432a12016-03-29 12:38:01 -070084
Dan Sinclair1770c022016-03-14 14:14:16 -040085FWL_ERR CFWL_ToolTip::SetAnchor(const CFX_RectF& rtAnchor) {
86 return static_cast<IFWL_ToolTip*>(m_pIface)->SetAnchor(rtAnchor);
87}
dsinclair7f432a12016-03-29 12:38:01 -070088
Dan Sinclair1770c022016-03-14 14:14:16 -040089FWL_ERR CFWL_ToolTip::Show() {
90 return static_cast<IFWL_ToolTip*>(m_pIface)->Show();
91}
dsinclair7f432a12016-03-29 12:38:01 -070092
Dan Sinclair1770c022016-03-14 14:14:16 -040093FWL_ERR CFWL_ToolTip::Hide() {
94 return static_cast<IFWL_ToolTip*>(m_pIface)->Hide();
95}
dsinclair7f432a12016-03-29 12:38:01 -070096
Dan Sinclair1770c022016-03-14 14:14:16 -040097CFWL_ToolTip::CFWL_ToolTip() {}
dsinclair7f432a12016-03-29 12:38:01 -070098
Dan Sinclair1770c022016-03-14 14:14:16 -040099CFWL_ToolTip::~CFWL_ToolTip() {}
dsinclair7f432a12016-03-29 12:38:01 -0700100
Dan Sinclair1770c022016-03-14 14:14:16 -0400101CFWL_ToolTip::CFWL_ToolTipDP::CFWL_ToolTipDP() : m_pBitmap(NULL) {
102 m_wsCaption = L"";
103 m_nInitDelayTime = 500;
104 m_nAutoPopDelayTime = 50000;
105 m_fAnchor.Set(0.0, 0.0, 0.0, 0.0);
106}
dsinclair7f432a12016-03-29 12:38:01 -0700107
Dan Sinclair1770c022016-03-14 14:14:16 -0400108FWL_ERR CFWL_ToolTip::CFWL_ToolTipDP::GetCaption(IFWL_Widget* pWidget,
109 CFX_WideString& wsCaption) {
110 wsCaption = m_wsCaption;
111 return FWL_ERR_Succeeded;
112}
dsinclair7f432a12016-03-29 12:38:01 -0700113
Dan Sinclair1770c022016-03-14 14:14:16 -0400114int32_t CFWL_ToolTip::CFWL_ToolTipDP::GetInitialDelay(IFWL_Widget* pWidget) {
115 return m_nInitDelayTime;
116}
dsinclair7f432a12016-03-29 12:38:01 -0700117
Dan Sinclair1770c022016-03-14 14:14:16 -0400118int32_t CFWL_ToolTip::CFWL_ToolTipDP::GetAutoPopDelay(IFWL_Widget* pWidget) {
119 return m_nAutoPopDelayTime;
120}
dsinclair7f432a12016-03-29 12:38:01 -0700121
Dan Sinclair1770c022016-03-14 14:14:16 -0400122CFX_DIBitmap* CFWL_ToolTip::CFWL_ToolTipDP::GetToolTipIcon(
123 IFWL_Widget* pWidget) {
124 return m_pBitmap;
125}
dsinclair7f432a12016-03-29 12:38:01 -0700126
Dan Sinclair1770c022016-03-14 14:14:16 -0400127CFX_SizeF CFWL_ToolTip::CFWL_ToolTipDP::GetToolTipIconSize(
128 IFWL_Widget* pWidget) {
129 return m_fIconSize;
130}
dsinclair7f432a12016-03-29 12:38:01 -0700131
Dan Sinclair1770c022016-03-14 14:14:16 -0400132CFX_RectF CFWL_ToolTip::CFWL_ToolTipDP::GetAnchor() {
133 return m_fAnchor;
134}