Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
cxfa_imagerenderer.h
Go to the documentation of this file.
1// Copyright 2018 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#ifndef XFA_FXFA_CXFA_IMAGERENDERER_H_
8#define XFA_FXFA_CXFA_IMAGERENDERER_H_
9
10#include <memory>
11
12#include "core/fxcrt/fx_coordinates.h"
13#include "core/fxcrt/retain_ptr.h"
14#include "core/fxcrt/unowned_ptr.h"
15
17class CFX_DIBBase;
18class CFX_DIBitmap;
21
23 public:
25 const RetainPtr<CFX_DIBBase>& pDIBBase,
26 const CFX_Matrix& mtImage2Device);
28
29 bool Start();
30 bool Continue();
31
32 private:
33 enum class State : uint8_t { kInitial = 0, kTransforming, kStarted };
34
35 void CompositeDIBitmap(const RetainPtr<CFX_DIBitmap>& pDIBitmap,
36 int left,
37 int top);
38
39 State m_State = State::kInitial;
40 CFX_Matrix m_ImageMatrix;
42 RetainPtr<CFX_DIBBase> m_pDIBBase;
43 RetainPtr<CFX_DIBitmap> m_pCloneConvert;
44 std::unique_ptr<CFX_ImageTransformer> m_pTransformer;
45 std::unique_ptr<CFX_ImageRenderer> m_DeviceHandle;
46};
47
48#endif // XFA_FXFA_CXFA_IMAGERENDERER_H_
CFX_RenderDevice * GetRenderDevice()
CFX_Matrix(float a1, float b1, float c1, float d1, float e1, float f1)
CFX_PointF Transform(const CFX_PointF &point) const
CFX_Matrix GetInverse() const
bool IsIdentity() const
void Concat(const CFX_Matrix &right)
CFX_Matrix()=default
void AppendRect(float left, float bottom, float right, float top)
Definition cfx_path.cpp:309
constexpr CFX_RectF()=default
bool IsEmpty() const
void Deflate(float off_left, float off_top, float off_right, float off_bottom)
void Inflate(float x, float y)
CFX_RectF & operator=(const CFX_RectF &other)=default
float bottom() const
void Normalize()
bool Contains(const PointType &p) const
float right() const
StateRestorer(CFX_RenderDevice *pDevice)
bool SetClip_PathFill(const CFX_Path &path, const CFX_Matrix *pObject2Device, const CFX_FillRenderOptions &fill_options)
void Draw(CFGAS_GEGraphics *pGS, const CFX_RectF &rtWidget, const CFX_Matrix &matrix, bool forceRound)
Definition cxfa_box.cpp:187
void SetStatusBits(Mask< XFA_WidgetStatus > val)
CXFA_ContentLayoutItem * GetNext() const
bool TestStatusBits(Mask< XFA_WidgetStatus > val) const
void ClearStatusBits(Mask< XFA_WidgetStatus > val)
CXFA_EventParam(XFA_EVENTTYPE type)
CallbackIface * GetAppProvider() const
Definition cxfa_ffapp.h:144
CFWL_App * GetFWLApp() const
Definition cxfa_ffapp.h:145
CXFA_FFDoc * GetDoc() const
CXFA_LayoutProcessor * GetLayoutProcessor() const
void DisplayCaret(CXFA_FFWidget *hWidget, bool bVisible, const CFX_RectF *pRtAnchor)
CXFA_FFApp * GetApp() const
Definition cxfa_ffdoc.h:168
CXFA_FFDocView * GetDocView() const
XFA_EventError ProcessEvent(CXFA_Node *pNode, CXFA_EventParam *pParam)
bool HasEvent(CXFA_Node *pNode, XFA_EVENTTYPE eEventType)
virtual bool PtInActiveRect(const CFX_PointF &point)
void DrawBorderWithFlag(CFGAS_GEGraphics *pGS, CXFA_Box *box, const CFX_RectF &rtBorder, const CFX_Matrix &matrix, bool forceRound)
static CXFA_FFWidget * FromLayoutItem(CXFA_LayoutItem *pLayoutItem)
CFX_Matrix GetRotateMatrix() override
virtual bool PerformLayout()
const CFX_RectF & RecacheWidgetRect() const
CXFA_FFWidget * GetNextFFWidget() const
virtual absl::optional< WideString > Copy()
virtual bool Paste(const WideString &wsPaste)
virtual bool OnSetFocus(CXFA_FFWidget *pOldWidget)
virtual bool OnLButtonUp(Mask< XFA_FWL_KeyFlag > dwFlags, const CFX_PointF &point)
const CFX_RectF & GetWidgetRect() const
virtual void RenderWidget(CFGAS_GEGraphics *pGS, const CFX_Matrix &matrix, HighlightOption highlight)
virtual bool OnMouseExit()
CXFA_LayoutItem * GetParent()
void DisplayCaret(bool bVisible, const CFX_RectF *pRtAnchor) override
CXFA_FFWidget(CXFA_Node *pNode)
virtual bool OnRButtonUp(Mask< XFA_FWL_KeyFlag > dwFlags, const CFX_PointF &point)
virtual bool Undo()
virtual bool AcceptsFocusOnButtonDown(Mask< XFA_FWL_KeyFlag > dwFlags, const CFX_PointF &point, CFWL_MessageMouse::MouseCommand command)
virtual bool Redo()
virtual bool CanUndo()
bool HasEventUnderHandler(XFA_EVENTTYPE eEventType, CXFA_FFWidgetHandler *pHandler)
virtual absl::optional< WideString > Cut()
virtual bool UpdateFWLData()
virtual void UpdateWidgetProperty()
virtual bool CanCopy()
bool IsAncestorOf(CXFA_FFWidget *pWidget)
virtual bool CanDeSelect()
virtual bool OnRButtonDblClk(Mask< XFA_FWL_KeyFlag > dwFlags, const CFX_PointF &point)
bool HasVisibleStatus() const
virtual bool OnLButtonDown(Mask< XFA_FWL_KeyFlag > dwFlags, const CFX_PointF &point)
virtual bool CanPaste()
virtual bool IsLoaded()
CFWL_App * GetFWLApp() const
CXFA_FFApp::CallbackIface * GetAppProvider()
CXFA_Node * GetNode() const
void DrawBorder(CFGAS_GEGraphics *pGS, CXFA_Box *box, const CFX_RectF &rtBorder, const CFX_Matrix &matrix)
virtual bool OnChar(uint32_t dwChar, Mask< XFA_FWL_KeyFlag > dwFlags)
virtual FormFieldType GetFormFieldType()
void GetBorderColorAndThickness(FX_ARGB *cr, float *fWidth) override
virtual void Delete()
virtual bool LoadWidget()
void SetButtonDown(bool bSet)
bool ProcessEventUnderHandler(CXFA_EventParam *params, CXFA_FFWidgetHandler *pHandler)
virtual bool OnMouseMove(Mask< XFA_FWL_KeyFlag > dwFlags, const CFX_PointF &point)
virtual bool CanCut()
virtual CFX_RectF GetBBox(FocusOption focus)
CXFA_FFDoc * GetDoc()
CXFA_FFApp * GetApp()
virtual bool OnKeyDown(XFA_FWL_VKEYCODE dwKeyCode, Mask< XFA_FWL_KeyFlag > dwFlags)
void ModifyStatus(Mask< XFA_WidgetStatus > dwAdded, Mask< XFA_WidgetStatus > dwRemoved)
virtual bool OnLButtonDblClk(Mask< XFA_FWL_KeyFlag > dwFlags, const CFX_PointF &point)
virtual void DeSelect()
CFX_RectF GetRectWithoutRotate()
CXFA_ContentLayoutItem * GetLayoutItem() const
virtual bool OnKillFocus(CXFA_FFWidget *pNewWidget)
CFX_PointF Rotate2Normal(const CFX_PointF &point)
virtual void SelectAll()
virtual bool OnMouseWheel(Mask< XFA_FWL_KeyFlag > dwFlags, const CFX_PointF &point, const CFX_Vector &delta)
virtual bool CanDelete()
virtual FWL_WidgetHit HitTest(const CFX_PointF &point)
virtual bool CanSelectAll()
CFX_RectF m_WidgetRect
~CXFA_FFWidget() override
CXFA_FFPageView * GetPageView() const
CXFA_FFDocView * GetDocView() const
virtual CXFA_FFField * AsField()
virtual bool CanRedo()
virtual bool OnRButtonDown(Mask< XFA_FWL_KeyFlag > dwFlags, const CFX_PointF &point)
virtual bool OnMouseEnter()
virtual WideString GetText()
CXFA_ImageRenderer(CFX_RenderDevice *pDevice, const RetainPtr< CFX_DIBBase > &pDIBBase, const CFX_Matrix &mtImage2Device)
CXFA_Node * GetFormNode() const
CXFA_LayoutItem * GetLayoutItem(CXFA_Node *pFormItem)
float GetBottomInset() const
float GetLeftInset() const
float GetTopInset() const
float GetRightInset() const
bool IsWidgetReady() const
Definition cxfa_node.h:327
CXFA_Border * GetUIBorder()
CXFA_Margin * GetMarginIfExists() const
bool HasCreatedUIWidget() const
Definition cxfa_object.h:84
FX_ARGB GetColor() const
float GetThickness() const
FormFieldType
CXFA_FFWidget * GetFFWidget(CXFA_ContentLayoutItem *item)
XFA_EVENTTYPE
@ XFA_EVENT_Exit
@ XFA_EVENT_Enter
RetainPtr< CFX_DIBitmap > XFA_LoadImageFromBuffer(RetainPtr< IFX_SeekableReadStream > pImageFileRead, FXCODEC_IMAGE_TYPE type, int32_t &iImageXDpi, int32_t &iImageYDpi)
void XFA_RectWithoutMargin(CFX_RectF *rt, const CXFA_Margin *margin)
void XFA_DrawImage(CFGAS_GEGraphics *pGS, const CFX_RectF &rtImage, const CFX_Matrix &matrix, RetainPtr< CFX_DIBitmap > pDIBitmap, XFA_AttributeValue iAspect, const CFX_Size &dpi, XFA_AttributeValue iHorzAlign, XFA_AttributeValue iVertAlign)
CXFA_ContentLayoutItem * ToContentLayoutItem(CXFA_LayoutItem *item)
XFA_FWL_KeyFlag
XFA_FWL_VKEYCODE
FWL_WidgetHit
FXCODEC_STATUS
FXDIB_Format
Definition fx_dib.h:19
XFA_EventError
Definition fxfa.h:54
XFA_WidgetStatus
Definition fxfa.h:61
XFA_AttributeValue
Definition fxfa_basic.h:60
Definition heap.h:12
#define CHECK(cvref)
static constexpr CFX_FillRenderOptions WindingOptions()