7#ifndef FPDFSDK_PWL_CPWL_CARET_H_
8#define FPDFSDK_PWL_CPWL_CARET_H_
12#include "core/fxcrt/cfx_timer.h"
13#include "fpdfsdk/pwl/cpwl_wnd.h"
18 std::unique_ptr<IPWL_FillerNotify::PerWindowData> pAttachedData);
31 const CFX_PointF& ptHead,
32 const CFX_PointF& ptFoot);
38 bool m_bFlash =
false;
41 float m_fWidth = 0.4f;
43 std::unique_ptr<CFX_Timer> m_pTimer;
void Intersect(const CFX_FloatRect &other_rect)
void Inflate(float x, float y)
CFX_FloatRect & operator=(const CFX_FloatRect &that)=default
void AppendPoint(const CFX_PointF &point, Point::Type type)
bool DrawPath(const CFX_Path &path, const CFX_Matrix *pObject2Device, const CFX_GraphStateData *pGraphState, uint32_t fill_color, uint32_t stroke_color, const CFX_FillRenderOptions &fill_options)
bool SetVisible(bool bVisible) override
bool InvalidateRect(const CFX_FloatRect *pRect) override
void DrawThisAppearance(CFX_RenderDevice *pDevice, const CFX_Matrix &mtUser2Device) override
void SetCaret(bool bVisible, const CFX_PointF &ptHead, const CFX_PointF &ptFoot)
void OnTimerFired() override
CPWL_Caret(const CreateParams &cp, std::unique_ptr< IPWL_FillerNotify::PerWindowData > pAttachedData)
void SetInvalidRect(const CFX_FloatRect &rc)
const CFX_FloatRect & GetClipRect() const
virtual bool InvalidateRect(const CFX_FloatRect *pRect)
virtual bool SetVisible(bool bVisible)
bool Move(const CFX_FloatRect &rcNew, bool bReset, bool bRefresh)
constexpr FX_ARGB ArgbEncode(uint32_t a, uint32_t r, uint32_t g, uint32_t b)
static constexpr CFX_FillRenderOptions EvenOddOptions()