Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
cfwl_caret.cpp
Go to the documentation of this file.
1
// Copyright 2014 The PDFium Authors
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
7
#
include
"xfa/fwl/cfwl_caret.h"
8
9
#
include
<
utility
>
10
11
#
include
"xfa/fwl/cfwl_app.h"
12
#
include
"xfa/fwl/cfwl_notedriver.h"
13
#
include
"xfa/fwl/cfwl_themebackground.h"
14
#
include
"xfa/fwl/ifwl_themeprovider.h"
15
16
namespace
pdfium
{
17
18
namespace
{
19
20
const
uint32_t kBlinkPeriodMs = 600;
21
22
constexpr
int
kStateHighlight = (1 << 0);
23
24
}
// namespace
25
26
CFWL_Caret::CFWL_Caret(CFWL_App* app,
27
const
Properties
& properties,
28
CFWL_Widget
* pOuter)
29
:
CFWL_Widget
(
app
,
properties
,
pOuter
)
{
30
SetStates
(kStateHighlight);
31
}
32
33
CFWL_Caret::~
CFWL_Caret
() =
default
;
34
35
FWL_Type
CFWL_Caret::
GetClassID
()
const
{
36
return
FWL_Type
::
Caret
;
37
}
38
39
void
CFWL_Caret::
Update
() {}
40
41
void
CFWL_Caret::
DrawWidget
(
CFGAS_GEGraphics
* pGraphics,
42
const
CFX_Matrix
& matrix) {
43
if
(!pGraphics)
44
return
;
45
46
DrawCaretBK(pGraphics, matrix);
47
}
48
49
void
CFWL_Caret::
ShowCaret
() {
50
m_pTimer = std::make_unique<CFX_Timer>(GetFWLApp()->GetTimerHandler(),
this
,
51
kBlinkPeriodMs);
52
RemoveStates
(
FWL_STATE_WGT_Invisible
);
53
SetStates
(kStateHighlight);
54
}
55
56
void
CFWL_Caret::
HideCaret
() {
57
m_pTimer.reset();
58
SetStates
(
FWL_STATE_WGT_Invisible
);
59
}
60
61
void
CFWL_Caret::DrawCaretBK(
CFGAS_GEGraphics
* pGraphics,
62
const
CFX_Matrix
& mtMatrix) {
63
if
(!(m_Properties.m_dwStates & kStateHighlight))
64
return
;
65
66
CFWL_ThemeBackground param(
CFWL_ThemePart
::
Part
::
kBackground
,
this
,
67
pGraphics);
68
param.m_PartRect =
CFX_RectF
(0, 0,
GetWidgetRect
().Size());
69
param.m_dwStates =
CFWL_PartState
::
kHightLight
;
70
param.m_matrix = mtMatrix;
71
GetThemeProvider
()->DrawBackground(param);
72
}
73
74
void
CFWL_Caret::
OnProcessMessage
(
CFWL_Message
* pMessage) {}
75
76
void
CFWL_Caret::
OnDrawWidget
(
CFGAS_GEGraphics
* pGraphics,
77
const
CFX_Matrix
& matrix) {
78
DrawWidget
(
pGraphics
,
matrix
)
;
79
}
80
81
void
CFWL_Caret::
OnTimerFired
() {
82
if
(!(
GetStates
() & kStateHighlight))
83
SetStates
(kStateHighlight);
84
else
85
RemoveStates
(kStateHighlight);
86
87
CFX_RectF
rt =
GetWidgetRect
();
88
RepaintRect
(
CFX_RectF
(
0
,
0
,
rt
.
width
+ 1
,
rt
.
height
)
);
89
}
90
91
}
// namespace pdfium
FWL_STATE_WGT_Invisible
#define FWL_STATE_WGT_Invisible
Definition
cfwl_widget.h:45
CFGAS_GEGraphics
Definition
cfgas_gegraphics.h:26
CFX_Matrix
Definition
fx_coordinates.h:440
CFX_RectF
Definition
fx_coordinates.h:276
CFX_RectF::width
float width
Definition
fx_coordinates.h:430
CFX_RectF::height
float height
Definition
fx_coordinates.h:431
CFX_RectF::CFX_RectF
constexpr CFX_RectF(float dst_left, float dst_top, float dst_width, float dst_height)
Definition
fx_coordinates.h:282
pdfium::CFDETextOutLargeBitmapTest
Definition
cfde_textout_unittest.cpp:117
pdfium::CFWL_Caret::OnDrawWidget
void OnDrawWidget(CFGAS_GEGraphics *pGraphics, const CFX_Matrix &matrix) override
Definition
cfwl_caret.cpp:76
pdfium::CFWL_Caret::GetClassID
FWL_Type GetClassID() const override
Definition
cfwl_caret.cpp:35
pdfium::CFWL_Caret::OnProcessMessage
void OnProcessMessage(CFWL_Message *pMessage) override
Definition
cfwl_caret.cpp:74
pdfium::CFWL_Caret::DrawWidget
void DrawWidget(CFGAS_GEGraphics *pGraphics, const CFX_Matrix &matrix) override
Definition
cfwl_caret.cpp:41
pdfium::CFWL_Caret::HideCaret
void HideCaret()
Definition
cfwl_caret.cpp:56
pdfium::CFWL_Caret::~CFWL_Caret
~CFWL_Caret() override
pdfium::CFWL_Caret::ShowCaret
void ShowCaret()
Definition
cfwl_caret.cpp:49
pdfium::CFWL_Caret::OnTimerFired
void OnTimerFired() override
Definition
cfwl_caret.cpp:81
pdfium::CFWL_Caret::Update
void Update() override
Definition
cfwl_caret.cpp:39
pdfium::CFWL_Message
Definition
cfwl_message.h:18
pdfium::CFWL_ThemePart
Definition
cfwl_themepart.h:39
pdfium::CFWL_ThemePart::Part
Part
Definition
cfwl_themepart.h:41
pdfium::CFWL_ThemePart::Part::kBackground
@ kBackground
Definition
cfwl_themepart.h:45
pdfium::CFWL_Widget::Properties
Definition
cfwl_widget.h:82
pdfium::CFWL_Widget
Definition
cfwl_widget.h:70
pdfium::CFWL_Widget::GetWidgetRect
virtual CFX_RectF GetWidgetRect()
Definition
cfwl_widget.cpp:76
pdfium::CFWL_Widget::RepaintRect
void RepaintRect(const CFX_RectF &pRect)
Definition
cfwl_widget.cpp:277
pdfium::CFWL_Widget::RemoveStates
virtual void RemoveStates(uint32_t dwStates)
Definition
cfwl_widget.cpp:136
pdfium::CFWL_Widget::CFWL_Widget
CFWL_Widget(CFWL_App *app, const Properties &properties, CFWL_Widget *pOuter)
Definition
cfwl_widget.cpp:42
pdfium::CFWL_Widget::GetStates
uint32_t GetStates() const
Definition
cfwl_widget.h:138
pdfium::CFWL_Widget::GetThemeProvider
IFWL_ThemeProvider * GetThemeProvider() const
Definition
cfwl_widget.cpp:177
pdfium::CFWL_Widget::SetStates
virtual void SetStates(uint32_t dwStates)
Definition
cfwl_widget.cpp:119
pdfium::FWL_Type
FWL_Type
Definition
cfwl_widget.h:48
pdfium::FWL_Type::Caret
@ Caret
Definition
cfwl_widget.h:52
pdfium::CFWL_PartState
CFWL_PartState
Definition
cfwl_themepart.h:22
pdfium::CFWL_PartState::kHightLight
@ kHightLight
Definition
cfwl_themepart.h:29
qtwebengine
src
3rdparty
chromium
third_party
pdfium
xfa
fwl
cfwl_caret.cpp
Generated on
for Qt by
1.18.0