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
cxfa_ffimage.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/fxfa/cxfa_ffimage.h"
8
9
#
include
<
utility
>
10
11
#
include
"core/fxge/dib/cfx_dibitmap.h"
12
#
include
"xfa/fxfa/cxfa_ffapp.h"
13
#
include
"xfa/fxfa/cxfa_ffdoc.h"
14
#
include
"xfa/fxfa/cxfa_ffpageview.h"
15
#
include
"xfa/fxfa/cxfa_ffwidget.h"
16
#
include
"xfa/fxfa/parser/cxfa_image.h"
17
#
include
"xfa/fxfa/parser/cxfa_para.h"
18
#
include
"xfa/fxfa/parser/cxfa_value.h"
19
20
CXFA_FFImage::CXFA_FFImage(
CXFA_Node
* pNode) :
CXFA_FFWidget
(
pNode
)
{}
21
22
CXFA_FFImage::~
CXFA_FFImage
() =
default
;
23
24
void
CXFA_FFImage::
PreFinalize
() {
25
GetNode
()->SetLayoutImage(
nullptr
);
26
}
27
28
bool
CXFA_FFImage::
IsLoaded
() {
29
return
!!
GetNode
()->GetLayoutImage();
30
}
31
32
bool
CXFA_FFImage::
LoadWidget
() {
33
if
(
GetNode
()->GetLayoutImage())
34
return
true
;
35
36
return
GetNode
()->LoadLayoutImage(
GetDoc
()) &&
CXFA_FFWidget
::
LoadWidget
();
37
}
38
39
void
CXFA_FFImage::
RenderWidget
(
CFGAS_GEGraphics
* pGS,
40
const
CFX_Matrix
& matrix,
41
HighlightOption
highlight) {
42
if
(!
HasVisibleStatus
())
43
return
;
44
45
CFX_Matrix
mtRotate =
GetRotateMatrix
();
46
mtRotate
.
Concat
(
matrix
)
;
47
48
CXFA_FFWidget
::
RenderWidget
(pGS, mtRotate, highlight);
49
50
RetainPtr
<CFX_DIBitmap> pDIBitmap = GetNode()->GetLayoutImage();
51
if
(!pDIBitmap)
52
return
;
53
54
CFX_RectF
rtImage =
GetRectWithoutRotate
();
55
CXFA_Margin* margin = m_pNode->GetMarginIfExists();
56
XFA_RectWithoutMargin
(
&rtImage
,
margin
)
;
57
58
XFA_AttributeValue
iHorzAlign =
XFA_AttributeValue
::Left;
59
XFA_AttributeValue
iVertAlign =
XFA_AttributeValue
::Top;
60
CXFA_Para* para = m_pNode->GetParaIfExists();
61
if
(para) {
62
iHorzAlign = para
->
GetHorizontalAlign
(
)
;
63
iVertAlign = para
->
GetVerticalAlign
(
)
;
64
}
65
66
auto
* value = m_pNode->GetFormValueIfExists();
67
if
(!value)
68
return
;
69
70
CXFA_Image* image = value->GetImageIfExists();
71
if
(!image)
72
return
;
73
74
XFA_DrawImage(pGS, rtImage, mtRotate,
std
::move(pDIBitmap),
75
image
->
GetAspect
(
)
, m_pNode->GetLayoutImageDpi(), iHorzAlign,
76
iVertAlign);
77
}
CFGAS_GEGraphics
Definition
cfgas_gegraphics.h:26
CFX_Matrix
Definition
fx_coordinates.h:440
CFX_Matrix::Concat
void Concat(const CFX_Matrix &right)
Definition
fx_coordinates.h:480
CFX_RectF
Definition
fx_coordinates.h:276
CXFA_FFImage::PreFinalize
void PreFinalize()
Definition
cxfa_ffimage.cpp:24
CXFA_FFImage::IsLoaded
bool IsLoaded() override
Definition
cxfa_ffimage.cpp:28
CXFA_FFImage::RenderWidget
void RenderWidget(CFGAS_GEGraphics *pGS, const CFX_Matrix &matrix, HighlightOption highlight) override
Definition
cxfa_ffimage.cpp:39
CXFA_FFImage::LoadWidget
bool LoadWidget() override
Definition
cxfa_ffimage.cpp:32
CXFA_FFImage::~CXFA_FFImage
~CXFA_FFImage() override
CXFA_FFWidget
Definition
cxfa_ffwidget.h:69
CXFA_FFWidget::GetRotateMatrix
CFX_Matrix GetRotateMatrix() override
Definition
cxfa_ffwidget.cpp:511
CXFA_FFWidget::RenderWidget
virtual void RenderWidget(CFGAS_GEGraphics *pGS, const CFX_Matrix &matrix, HighlightOption highlight)
Definition
cxfa_ffwidget.cpp:266
CXFA_FFWidget::CXFA_FFWidget
CXFA_FFWidget(CXFA_Node *pNode)
Definition
cxfa_ffwidget.cpp:195
CXFA_FFWidget::HasVisibleStatus
bool HasVisibleStatus() const
Definition
cxfa_ffwidget.cpp:609
CXFA_FFWidget::GetNode
CXFA_Node * GetNode() const
Definition
cxfa_ffwidget.h:161
CXFA_FFWidget::LoadWidget
virtual bool LoadWidget()
Definition
cxfa_ffwidget.cpp:287
CXFA_FFWidget::GetDoc
CXFA_FFDoc * GetDoc()
Definition
cxfa_ffwidget.cpp:597
CXFA_FFWidget::HighlightOption
HighlightOption
Definition
cxfa_ffwidget.h:72
CXFA_FFWidget::GetRectWithoutRotate
CFX_RectF GetRectWithoutRotate()
Definition
cxfa_ffwidget.cpp:226
CXFA_Image::GetAspect
XFA_AttributeValue GetAspect()
Definition
cxfa_image.cpp:50
CXFA_Node
Definition
cxfa_node.h:94
CXFA_Para::GetHorizontalAlign
XFA_AttributeValue GetHorizontalAlign()
Definition
cxfa_para.cpp:57
CXFA_Para::GetVerticalAlign
XFA_AttributeValue GetVerticalAlign()
Definition
cxfa_para.cpp:63
fxcrt::RetainPtr
Definition
retain_ptr.h:28
XFA_RectWithoutMargin
void XFA_RectWithoutMargin(CFX_RectF *rt, const CXFA_Margin *margin)
Definition
cxfa_ffwidget.cpp:179
XFA_AttributeValue
XFA_AttributeValue
Definition
fxfa_basic.h:60
std
[33]
Definition
src_corelib_tools_qhash.cpp:421
qtwebengine
src
3rdparty
chromium
third_party
pdfium
xfa
fxfa
cxfa_ffimage.cpp
Generated on
for Qt by
1.18.0