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
cpwl_wnd.h
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#ifndef FPDFSDK_PWL_CPWL_WND_H_
8#define FPDFSDK_PWL_CPWL_WND_H_
9
10#include <memory>
11#include <vector>
12
13#include "core/fxcrt/cfx_timer.h"
14#include "core/fxcrt/mask.h"
15#include "core/fxcrt/observed_ptr.h"
16#include "core/fxcrt/unowned_ptr.h"
17#include "core/fxcrt/unowned_ptr_exclusion.h"
18#include "core/fxcrt/widestring.h"
19#include "core/fxge/cfx_color.h"
20#include "core/fxge/cfx_renderdevice.h"
21#include "fpdfsdk/pwl/ipwl_fillernotify.h"
22#include "public/fpdf_fwlevent.h"
23
24class CPWL_Edit;
25class CPWL_ScrollBar;
26class IPVT_FontMap;
27struct PWL_SCROLL_INFO;
28
29// window styles
30#define PWS_BORDER 0x40000000L
31#define PWS_BACKGROUND 0x20000000L
32#define PWS_VSCROLL 0x08000000L
33#define PWS_VISIBLE 0x04000000L
34#define PWS_READONLY 0x01000000L
35#define PWS_AUTOFONTSIZE 0x00800000L
36#define PWS_AUTOTRANSPARENT 0x00400000L
37#define PWS_NOREFRESHCLIP 0x00200000L
38
39// edit and label styles
40#define PES_MULTILINE 0x0001L
41#define PES_PASSWORD 0x0002L
42#define PES_LEFT 0x0004L
43#define PES_RIGHT 0x0008L
44#define PES_MIDDLE 0x0010L
45#define PES_TOP 0x0020L
46#define PES_CENTER 0x0080L
47#define PES_CHARARRAY 0x0100L
48#define PES_AUTOSCROLL 0x0200L
49#define PES_AUTORETURN 0x0400L
50#define PES_UNDO 0x0800L
51#define PES_RICH 0x1000L
52#define PES_TEXTOVERFLOW 0x4000L
53
54// listbox styles
55#define PLBS_MULTIPLESEL 0x0001L
56#define PLBS_HOVERSEL 0x0008L
57
58// combobox styles
59#define PCBS_ALLOWCUSTOMTEXT 0x0001L
60
61struct CPWL_Dash {
62 CPWL_Dash() : nDash(0), nGap(0), nPhase(0) {}
63 CPWL_Dash(int32_t dash, int32_t gap, int32_t phase)
64 : nDash(dash), nGap(gap), nPhase(phase) {}
65
66 void Reset() {
67 nDash = 0;
68 nGap = 0;
69 nPhase = 0;
70 }
71
72 int32_t nDash;
73 int32_t nGap;
74 int32_t nPhase;
75};
76
77class CPWL_Wnd : public Observable {
78 public:
81
82 class SharedCaptureFocusState;
83
84 class ProviderIface : public Observable {
85 public:
86 virtual ~ProviderIface() = default;
87
88 // get a matrix which map user space to CWnd client space
90 const IPWL_FillerNotify::PerWindowData* pAttached) = 0;
91
92 virtual void OnSetFocusForEdit(CPWL_Edit* pEdit) = 0;
93 };
94
95 // Caller-provided options for window creation.
97 public:
98 CreateParams(CFX_Timer::HandlerIface* timer_handler,
99 IPWL_FillerNotify* filler_notify,
100 ProviderIface* provider);
103
104 // Required:
110
111 // Optional:
112 uint32_t dwFlags = 0;
115 int32_t dwBorderWidth = 1;
118 int32_t nTransparency = 255;
121
122 // Ignore, used internally only:
123 // TODO(tsepez): fix murky ownership, bare delete.
125 nullptr;
128 };
129
130 static bool IsSHIFTKeyDown(Mask<FWL_EVENTFLAG> nFlag);
131 static bool IsCTRLKeyDown(Mask<FWL_EVENTFLAG> nFlag);
132 static bool IsALTKeyDown(Mask<FWL_EVENTFLAG> nFlag);
133 static bool IsMETAKeyDown(Mask<FWL_EVENTFLAG> nFlag);
134
135 // Selects between IsCTRLKeyDown() and IsMETAKeyDown() depending on platform.
136 static bool IsPlatformShortcutKey(Mask<FWL_EVENTFLAG> nFlag);
137
138 CPWL_Wnd(const CreateParams& cp,
139 std::unique_ptr<IPWL_FillerNotify::PerWindowData> pAttachedData);
140 virtual ~CPWL_Wnd();
141
142 // Returns |true| iff this instance is still allocated.
143 [[nodiscard]] virtual bool InvalidateRect(const CFX_FloatRect* pRect);
144
145 virtual bool OnKeyDown(FWL_VKEYCODE nKeyCode, Mask<FWL_EVENTFLAG> nFlag);
146 virtual bool OnChar(uint16_t nChar, Mask<FWL_EVENTFLAG> nFlag);
147 virtual bool OnLButtonDblClk(Mask<FWL_EVENTFLAG> nFlag,
148 const CFX_PointF& point);
149 virtual bool OnLButtonDown(Mask<FWL_EVENTFLAG> nFlag,
150 const CFX_PointF& point);
151 virtual bool OnLButtonUp(Mask<FWL_EVENTFLAG> nFlag, const CFX_PointF& point);
152 virtual bool OnRButtonDown(Mask<FWL_EVENTFLAG> nFlag,
153 const CFX_PointF& point);
154 virtual bool OnRButtonUp(Mask<FWL_EVENTFLAG> nFlag, const CFX_PointF& point);
155 virtual bool OnMouseMove(Mask<FWL_EVENTFLAG> nFlag, const CFX_PointF& point);
156 virtual bool OnMouseWheel(Mask<FWL_EVENTFLAG> nFlag,
157 const CFX_PointF& point,
158 const CFX_Vector& delta);
159 virtual void SetScrollInfo(const PWL_SCROLL_INFO& info);
160 virtual void SetScrollPosition(float pos);
161 virtual void ScrollWindowVertically(float pos);
162 virtual void NotifyLButtonDown(CPWL_Wnd* child, const CFX_PointF& pos);
163 virtual void NotifyLButtonUp(CPWL_Wnd* child, const CFX_PointF& pos);
164 virtual void NotifyMouseMove(CPWL_Wnd* child, const CFX_PointF& pos);
165 virtual void SetFocus();
166 virtual void KillFocus();
167 virtual void SetCursor();
168
169 // Returns |true| iff this instance is still allocated.
170 [[nodiscard]] virtual bool SetVisible(bool bVisible);
171 virtual void SetFontSize(float fFontSize);
172 virtual float GetFontSize() const;
173
174 virtual WideString GetText();
175 virtual WideString GetSelectedText();
176 virtual void ReplaceAndKeepSelection(const WideString& text);
177 virtual void ReplaceSelection(const WideString& text);
178 virtual bool SelectAllText();
179
180 virtual bool CanUndo();
181 virtual bool CanRedo();
182 virtual bool Undo();
183 virtual bool Redo();
184
185 virtual CFX_FloatRect GetFocusRect() const;
186 virtual CFX_FloatRect GetClientRect() const;
187
188 virtual void OnSetFocus();
189 virtual void OnKillFocus();
190
191 void AddChild(std::unique_ptr<CPWL_Wnd> pWnd);
192 void RemoveChild(CPWL_Wnd* pWnd);
193 void Realize();
194 void Destroy();
195 bool Move(const CFX_FloatRect& rcNew, bool bReset, bool bRefresh);
196
197 void InvalidateProvider(ProviderIface* provider);
198 void DrawAppearance(CFX_RenderDevice* pDevice,
199 const CFX_Matrix& mtUser2Device);
200
201 int32_t GetBorderWidth() const;
203
204 bool IsVisible() const { return m_bVisible; }
205 bool HasFlag(uint32_t dwFlags) const;
206 void RemoveFlag(uint32_t dwFlags);
207 void SetClipRect(const CFX_FloatRect& rect);
208
210 return m_pAttachedData.get();
211 }
214
215 bool WndHitTest(const CFX_PointF& point) const;
216 bool ClientHitTest(const CFX_PointF& point) const;
217 bool IsCaptureMouse() const;
218
219 bool IsFocused() const;
220 bool IsReadOnly() const;
221
222 void SetTransparency(int32_t nTransparency);
224
225 protected:
226 virtual void CreateChildWnd(const CreateParams& cp);
227
228 // Returns |true| iff this instance is still allocated.
229 [[nodiscard]] virtual bool RepositionChildWnd();
230
231 virtual void DrawThisAppearance(CFX_RenderDevice* pDevice,
232 const CFX_Matrix& mtUser2Device);
233
234 virtual void OnCreated();
235 virtual void OnDestroy();
236
237 bool IsValid() const { return m_bCreated; }
238 CreateParams* GetCreationParams() { return &m_CreationParams; }
240 return m_CreationParams.pProvider.Get();
241 }
243 return m_CreationParams.pTimerHandler.Get();
244 }
246 return m_CreationParams.pFillerNotify;
247 }
248
249 CPWL_Wnd* GetParentWindow() const { return m_pParent; }
250 CPWL_ScrollBar* GetVScrollBar() const;
251
252 // Returns |true| iff this instance is still allocated.
253 [[nodiscard]] bool InvalidateRectMove(const CFX_FloatRect& rcOld,
254 const CFX_FloatRect& rcNew);
255
256 void SetCapture();
257 void ReleaseCapture();
258 bool IsWndCaptureMouse(const CPWL_Wnd* pWnd) const;
259 bool IsWndCaptureKeyboard(const CPWL_Wnd* pWnd) const;
260
263 CFX_Color GetTextColor() const;
264 CFX_Color GetBorderLeftTopColor(BorderStyle nBorderStyle) const;
267 const CPWL_Dash& GetBorderDash() const;
268
269 int32_t GetTransparency();
270 int32_t GetInnerBorderWidth() const;
271 CFX_PointF GetCenterPoint() const;
272 const CFX_FloatRect& GetClipRect() const;
273
274 IPVT_FontMap* GetFontMap() const { return m_CreationParams.pFontMap; }
275
276 private:
277 void DrawChildAppearance(CFX_RenderDevice* pDevice,
278 const CFX_Matrix& mtUser2Device);
279
280 CFX_FloatRect PWLtoWnd(const CFX_FloatRect& rect) const;
281
282 void CreateVScrollBar(const CreateParams& cp);
283
284 void AdjustStyle();
285 void CreateSharedCaptureFocusState();
286 void DestroySharedCaptureFocusState();
287 SharedCaptureFocusState* GetSharedCaptureFocusState() const;
288
289 CreateParams m_CreationParams;
290 std::unique_ptr<IPWL_FillerNotify::PerWindowData> m_pAttachedData;
291 UnownedPtr<CPWL_Wnd> m_pParent;
292 std::vector<std::unique_ptr<CPWL_Wnd>> m_Children;
293 UnownedPtr<CPWL_ScrollBar> m_pVScrollBar;
294 CFX_FloatRect m_rcWindow;
295 CFX_FloatRect m_rcClip;
296 bool m_bCreated = false;
297 bool m_bVisible = false;
298};
299
300#endif // FPDFSDK_PWL_CPWL_WND_H_
BorderStyle
virtual void OutputSelectedRect(CFFL_FormField *pFormField, const CFX_FloatRect &rect)=0
virtual CPDFSDK_PageView * GetPageView(IPDF_Page *pPage)=0
virtual bool HasPermissions(uint32_t flags) const =0
virtual void OnCalculate(ObservedPtr< CPDFSDK_Annot > &pAnnot)=0
virtual void OnSetFieldInputFocus(const WideString &text)=0
virtual bool IsSelectionImplemented() const =0
virtual void Invalidate(IPDF_Page *pPage, const FX_RECT &rect)=0
virtual bool SetFocusAnnot(ObservedPtr< CPDFSDK_Annot > &pAnnot)=0
virtual void SetCursor(CursorStyle nCursorStyle)=0
virtual CPDFSDK_PageView * GetOrCreatePageView(IPDF_Page *pPage)=0
virtual CPDFSDK_Annot * GetFocusAnnot() const =0
virtual void OnFormat(ObservedPtr< CPDFSDK_Annot > &pAnnot)=0
virtual void InvalidateRect(CPDFSDK_Widget *pWidget, const CFX_FloatRect &rect)=0
virtual CFX_Timer::HandlerIface * GetTimerHandler()=0
bool OnChar(CPDFSDK_Widget *pWidget, uint32_t nChar, Mask< FWL_EVENTFLAG > nFlags)
void OnSetFieldInputFocus(const WideString &text)
bool OnRButtonDown(CPDFSDK_PageView *pPageView, ObservedPtr< CPDFSDK_Widget > &pWidget, Mask< FWL_EVENTFLAG > nFlags, const CFX_PointF &point)
CFX_Timer::HandlerIface * GetTimerHandler()
bool OnMouseMove(CPDFSDK_PageView *pPageView, ObservedPtr< CPDFSDK_Widget > &pWidget, Mask< FWL_EVENTFLAG > nFlags, const CFX_PointF &point)
bool OnRButtonUp(CPDFSDK_PageView *pPageView, ObservedPtr< CPDFSDK_Widget > &pWidget, Mask< FWL_EVENTFLAG > nFlags, const CFX_PointF &point)
bool Annot_HitTest(const CPDFSDK_Widget *pWidget, const CFX_PointF &point)
CPDFSDK_PageView * GetOrCreatePageView(IPDF_Page *pPage)
bool IsIndexSelected(ObservedPtr< CPDFSDK_Widget > &pWidget, int index)
bool OnMouseWheel(CPDFSDK_PageView *pPageView, ObservedPtr< CPDFSDK_Widget > &pWidget, Mask< FWL_EVENTFLAG > nFlags, const CFX_PointF &point, const CFX_Vector &delta)
WideString GetText(CPDFSDK_Widget *pWidget)
WideString GetSelectedText(CPDFSDK_Widget *pWidget)
void SetCursor(CursorStyle nCursorStyle) override
CFFL_InteractiveFormFiller(CallbackIface *pCallbackIface)
bool OnValidate(ObservedPtr< CPDFSDK_Widget > &pWidget, const CPDFSDK_PageView *pPageView, Mask< FWL_EVENTFLAG > nFlag)
static bool IsReadOnly(CPDFSDK_Widget *pWidget)
bool OnLButtonDown(CPDFSDK_PageView *pPageView, ObservedPtr< CPDFSDK_Widget > &pWidget, Mask< FWL_EVENTFLAG > nFlags, const CFX_PointF &point)
bool OnKillFocus(ObservedPtr< CPDFSDK_Widget > &pWidget, Mask< FWL_EVENTFLAG > nFlag)
bool OnKeyDown(CPDFSDK_Widget *pWidget, FWL_VKEYCODE nKeyCode, Mask< FWL_EVENTFLAG > nFlags)
bool OnSetFocus(ObservedPtr< CPDFSDK_Widget > &pWidget, Mask< FWL_EVENTFLAG > nFlag)
void OnMouseEnter(CPDFSDK_PageView *pPageView, ObservedPtr< CPDFSDK_Widget > &pWidget, Mask< FWL_EVENTFLAG > nFlag)
bool CanUndo(CPDFSDK_Widget *pWidget)
void OnMouseExit(CPDFSDK_PageView *pPageView, ObservedPtr< CPDFSDK_Widget > &pWidget, Mask< FWL_EVENTFLAG > nFlag)
FX_RECT GetViewBBox(const CPDFSDK_PageView *pPageView, CPDFSDK_Widget *pWidget)
bool OnLButtonUp(CPDFSDK_PageView *pPageView, ObservedPtr< CPDFSDK_Widget > &pWidget, Mask< FWL_EVENTFLAG > nFlags, const CFX_PointF &point)
bool SetIndexSelected(ObservedPtr< CPDFSDK_Widget > &pWidget, int index, bool selected)
void Invalidate(IPDF_Page *pPage, const FX_RECT &rect)
BeforeKeystrokeResult OnBeforeKeyStroke(const PerWindowData *pAttached, WideString &strChange, const WideString &strChangeEx, int nSelStart, int nSelEnd, bool bKeyDown, Mask< FWL_EVENTFLAG > nFlag) override
bool OnPopupPostOpen(const PerWindowData *pAttached, Mask< FWL_EVENTFLAG > nFlag) override
bool OnButtonUp(ObservedPtr< CPDFSDK_Widget > &pWidget, const CPDFSDK_PageView *pPageView, Mask< FWL_EVENTFLAG > nFlag)
static bool IsVisible(CPDFSDK_Widget *pWidget)
bool Redo(CPDFSDK_Widget *pWidget)
void OnDraw(CPDFSDK_PageView *pPageView, CPDFSDK_Widget *pWidget, CFX_RenderDevice *pDevice, const CFX_Matrix &mtUser2Device)
void OnFormat(ObservedPtr< CPDFSDK_Widget > &pWidget)
CFFL_FormField * GetFormFieldForTesting(CPDFSDK_Widget *pAnnot)
void OnCalculate(ObservedPtr< CPDFSDK_Widget > &pWidget)
void QueryWherePopup(const PerWindowData *pAttached, float fPopupMin, float fPopupMax, bool *bBottom, float *fPopupRet) override
void OnDelete(CPDFSDK_Widget *pWidget)
void OutputSelectedRect(PerWindowData *pWidgetData, const CFX_FloatRect &rect) override
bool Undo(CPDFSDK_Widget *pWidget)
void ReplaceSelection(CPDFSDK_Widget *pWidget, const WideString &text)
void ReplaceAndKeepSelection(CPDFSDK_Widget *pWidget, const WideString &text)
bool OnKeyStrokeCommit(ObservedPtr< CPDFSDK_Widget > &pWidget, const CPDFSDK_PageView *pPageView, Mask< FWL_EVENTFLAG > nFlag)
bool OnLButtonDblClk(CPDFSDK_PageView *pPageView, ObservedPtr< CPDFSDK_Widget > &pWidget, Mask< FWL_EVENTFLAG > nFlags, const CFX_PointF &point)
static bool IsValidAnnot(const CPDFSDK_PageView *pPageView, CPDFSDK_Widget *pWidget)
~CFFL_InteractiveFormFiller() override
void InvalidateRect(PerWindowData *pWidgetData, const CFX_FloatRect &rect) override
bool CanRedo(CPDFSDK_Widget *pWidget)
bool SelectAllText(CPDFSDK_Widget *pWidget)
CPDFSDK_PageView * GetPageView(IPDF_Page *pPage)
bool OnPopupPreOpen(const PerWindowData *pAttached, Mask< FWL_EVENTFLAG > nFlag) override
constexpr CFX_FloatRect(float l, float b, float r, float t)
CPDFSDK_Annot * GetNextAnnot(CPDFSDK_Annot *pAnnot)
CPDFSDK_Annot * GetPrevAnnot(CPDFSDK_Annot *pAnnot)
virtual CFX_FloatRect GetRect() const =0
void KillTimer(int32_t nTimerID) override
void SubmitForm(pdfium::span< const uint8_t > form_data, const WideString &URL)
CFX_Timer::HandlerIface * GetTimerHandler() override
CPDFSDK_PageView * GetPageViewAtIndex(int nIndex)
void Invalidate(IPDF_Page *page, const FX_RECT &rect) override
IPDF_JSPLATFORM * GetJSPlatform() const
void DoActionLaunch(const CPDF_Action &action)
void DoActionResetForm(const CPDF_Action &action)
void OnCalculate(ObservedPtr< CPDFSDK_Annot > &pAnnot) override
CPDFSDK_PageView * GetPageView(IPDF_Page *pUnderlyingPage) override
void DoActionNamed(const CPDF_Action &action)
CPDFSDK_FormFillEnvironment(CPDF_Document *pDoc, FPDF_FORMFILLINFO *pFFinfo)
bool DoActionSubmitForm(const CPDF_Action &action)
CPDFSDK_InteractiveForm * GetInteractiveForm()
void OutputSelectedRect(CFFL_FormField *pFormField, const CFX_FloatRect &rect) override
CPDFSDK_Annot * GetFocusAnnot() const override
bool DoActionField(const CPDF_Action &action, CPDF_AAction::AActionType type, CPDF_FormField *pFormField, CFFL_FieldAction *data)
void DoGoToAction(int nPageIndex, int zoomMode, pdfium::span< float > fPosArray)
bool DoActionJavaScript(const CPDF_Action &JsAction, WideString csJSName)
const std::vector< CPDF_Annot::Subtype > & GetFocusableAnnotSubtypes() const
void InvalidateRect(CPDFSDK_Widget *widget, const CFX_FloatRect &rect) override
bool DoActionHide(const CPDF_Action &action)
void ExecuteNamedAction(const ByteString &namedAction)
bool DoActionDestination(const CPDF_Dest &dest)
CPDF_Document::Extension * GetDocExtension() const
CFFL_InteractiveFormFiller * GetInteractiveFormFiller()
void DoActionURI(const CPDF_Action &action, Mask< FWL_EVENTFLAG > modifiers)
void SetCursor(IPWL_FillerNotify::CursorStyle nCursorType) override
bool DoActionLink(const CPDF_Action &action, CPDF_AAction::AActionType type, Mask< FWL_EVENTFLAG > modifiers)
bool DoActionDocument(const CPDF_Action &action, CPDF_AAction::AActionType eType)
CPDFSDK_PageView * GetOrCreatePageView(IPDF_Page *pUnderlyingPage) override
void OnSetFieldInputFocus(const WideString &text) override
void DoActionGoTo(const CPDF_Action &action)
bool KillFocusAnnot(Mask< FWL_EVENTFLAG > nFlags)
void UpdateAllViews(CPDFSDK_Annot *pAnnot)
bool DoActionPage(const CPDF_Action &action, CPDF_AAction::AActionType eType)
int32_t SetTimer(int32_t uElapse, TimerCallback lpTimerFunc) override
void OnFormat(ObservedPtr< CPDFSDK_Annot > &pAnnot) override
void DoActionNoJs(const CPDF_Action &action, CPDF_AAction::AActionType type)
void DoURIAction(const ByteString &bsURI, Mask< FWL_EVENTFLAG > modifiers)
void RemovePageView(IPDF_Page *pUnderlyingPage)
bool SetFocusAnnot(ObservedPtr< CPDFSDK_Annot > &pAnnot) override
bool DoActionFieldJavaScript(const CPDF_Action &JsAction, CPDF_AAction::AActionType type, CPDF_FormField *pFormField, CFFL_FieldAction *data)
FPDF_FORMFILLINFO * GetFormFillInfo() const
bool HasPermissions(uint32_t flags) const override
bool DoActionDocOpen(const CPDF_Action &action)
void SetFocusableAnnotSubtypes(const std::vector< CPDF_Annot::Subtype > &focusableAnnotTypes)
UnownedPtr< IPWL_FillerNotify > const pFillerNotify
Definition cpwl_wnd.h:107
CreateParams(const CreateParams &other)
IPWL_FillerNotify::CursorStyle eCursorType
Definition cpwl_wnd.h:126
CFX_FloatRect rcRectWnd
Definition cpwl_wnd.h:105
CreateParams(CFX_Timer::HandlerIface *timer_handler, IPWL_FillerNotify *filler_notify, ProviderIface *provider)
Definition cpwl_wnd.cpp:36
ObservedPtr< ProviderIface > pProvider
Definition cpwl_wnd.h:109
CFX_Color sBackgroundColor
Definition cpwl_wnd.h:113
BorderStyle nBorderStyle
Definition cpwl_wnd.h:114
ObservedPtr< CFX_Timer::HandlerIface > const pTimerHandler
Definition cpwl_wnd.h:106
UnownedPtr< IPVT_FontMap > pFontMap
Definition cpwl_wnd.h:108
UNOWNED_PTR_EXCLUSION SharedCaptureFocusState * pSharedCaptureFocusState
Definition cpwl_wnd.h:124
virtual ~ProviderIface()=default
virtual void OnSetFocusForEdit(CPWL_Edit *pEdit)=0
virtual CFX_Matrix GetWindowMatrix(const IPWL_FillerNotify::PerWindowData *pAttached)=0
CFX_Matrix GetWindowMatrix() const
Definition cpwl_wnd.cpp:739
static bool IsPlatformShortcutKey(Mask< FWL_EVENTFLAG > nFlag)
Definition cpwl_wnd.cpp:143
virtual void KillFocus()
Definition cpwl_wnd.cpp:542
static bool IsCTRLKeyDown(Mask< FWL_EVENTFLAG > nFlag)
Definition cpwl_wnd.cpp:128
virtual bool OnMouseWheel(Mask< FWL_EVENTFLAG > nFlag, const CFX_PointF &point, const CFX_Vector &delta)
Definition cpwl_wnd.cpp:393
virtual bool SelectAllText()
Definition cpwl_wnd.cpp:373
virtual void ScrollWindowVertically(float pos)
Definition cpwl_wnd.cpp:432
virtual bool OnRButtonDown(Mask< FWL_EVENTFLAG > nFlag, const CFX_PointF &point)
Definition cpwl_wnd.cpp:352
bool InvalidateRectMove(const CFX_FloatRect &rcOld, const CFX_FloatRect &rcNew)
Definition cpwl_wnd.cpp:234
bool ClientHitTest(const CFX_PointF &point) const
Definition cpwl_wnd.cpp:571
void SetCapture()
Definition cpwl_wnd.cpp:518
static bool IsALTKeyDown(Mask< FWL_EVENTFLAG > nFlag)
Definition cpwl_wnd.cpp:133
CFX_Color GetBorderColor() const
Definition cpwl_wnd.cpp:490
const CFX_FloatRect & GetClipRect() const
Definition cpwl_wnd.cpp:606
BorderStyle GetBorderStyle() const
Definition cpwl_wnd.cpp:478
virtual void NotifyMouseMove(CPWL_Wnd *child, const CFX_PointF &pos)
Definition cpwl_wnd.cpp:438
virtual bool OnChar(uint16_t nChar, Mask< FWL_EVENTFLAG > nFlag)
Definition cpwl_wnd.cpp:309
bool WndHitTest(const CFX_PointF &point) const
Definition cpwl_wnd.cpp:567
virtual void SetCursor()
Definition cpwl_wnd.cpp:640
virtual void ReplaceAndKeepSelection(const WideString &text)
Definition cpwl_wnd.cpp:369
CFX_PointF GetCenterPoint() const
Definition cpwl_wnd.cpp:456
void RemoveFlag(uint32_t dwFlags)
Definition cpwl_wnd.cpp:466
CFX_Color GetBackgroundColor() const
Definition cpwl_wnd.cpp:470
std::vector< UnownedPtr< CPWL_Wnd > > GetAncestors()
Definition cpwl_wnd.cpp:559
IPWL_FillerNotify * GetFillerNotify() const
Definition cpwl_wnd.h:245
virtual bool Redo()
Definition cpwl_wnd.cpp:389
bool HasFlag(uint32_t dwFlags) const
Definition cpwl_wnd.cpp:462
virtual CFX_FloatRect GetClientRect() const
Definition cpwl_wnd.cpp:444
virtual WideString GetSelectedText()
Definition cpwl_wnd.cpp:365
CFX_FloatRect GetWindowRect() const
Definition cpwl_wnd.cpp:440
void ReleaseCapture()
Definition cpwl_wnd.cpp:524
bool IsFocused() const
Definition cpwl_wnd.cpp:684
bool IsCaptureMouse() const
Definition cpwl_wnd.cpp:670
CPWL_Wnd * GetParentWindow() const
Definition cpwl_wnd.h:249
virtual void NotifyLButtonDown(CPWL_Wnd *child, const CFX_PointF &pos)
Definition cpwl_wnd.cpp:434
IPVT_FontMap * GetFontMap() const
Definition cpwl_wnd.h:274
void SetTransparency(int32_t nTransparency)
Definition cpwl_wnd.cpp:732
CPWL_Wnd(const CreateParams &cp, std::unique_ptr< IPWL_FillerNotify::PerWindowData > pAttachedData)
Definition cpwl_wnd.cpp:151
virtual bool OnLButtonUp(Mask< FWL_EVENTFLAG > nFlag, const CFX_PointF &point)
virtual bool OnMouseMove(Mask< FWL_EVENTFLAG > nFlag, const CFX_PointF &point)
virtual bool RepositionChildWnd()
Definition cpwl_wnd.cpp:614
void InvalidateProvider(ProviderIface *provider)
Definition cpwl_wnd.cpp:189
static bool IsSHIFTKeyDown(Mask< FWL_EVENTFLAG > nFlag)
Definition cpwl_wnd.cpp:123
virtual bool OnRButtonUp(Mask< FWL_EVENTFLAG > nFlag, const CFX_PointF &point)
Definition cpwl_wnd.cpp:357
virtual ~CPWL_Wnd()
Definition cpwl_wnd.cpp:156
virtual bool OnKeyDown(FWL_VKEYCODE nKeyCode, Mask< FWL_EVENTFLAG > nFlag)
Definition cpwl_wnd.cpp:297
int32_t GetBorderWidth() const
Definition cpwl_wnd.cpp:482
CreateParams * GetCreationParams()
Definition cpwl_wnd.h:238
virtual float GetFontSize() const
Definition cpwl_wnd.cpp:698
CFX_Color GetBorderRightBottomColor(BorderStyle nBorderStyle) const
Definition cpwl_wnd.cpp:717
virtual void SetScrollInfo(const PWL_SCROLL_INFO &info)
Definition cpwl_wnd.cpp:428
virtual bool InvalidateRect(const CFX_FloatRect *pRect)
Definition cpwl_wnd.cpp:278
virtual void SetFocus()
Definition cpwl_wnd.cpp:533
virtual void CreateChildWnd(const CreateParams &cp)
Definition cpwl_wnd.cpp:638
bool IsVisible() const
Definition cpwl_wnd.h:204
virtual CFX_FloatRect GetFocusRect() const
Definition cpwl_wnd.cpp:689
virtual void OnDestroy()
Definition cpwl_wnd.cpp:187
virtual bool SetVisible(bool bVisible)
Definition cpwl_wnd.cpp:575
virtual void ReplaceSelection(const WideString &text)
Definition cpwl_wnd.cpp:371
IPWL_FillerNotify::PerWindowData * GetAttachedData() const
Definition cpwl_wnd.h:209
const CPWL_Dash & GetBorderDash() const
Definition cpwl_wnd.cpp:494
virtual void OnSetFocus()
Definition cpwl_wnd.cpp:550
virtual void SetFontSize(float fFontSize)
Definition cpwl_wnd.cpp:702
void Realize()
Definition cpwl_wnd.cpp:160
int32_t GetInnerBorderWidth() const
Definition cpwl_wnd.cpp:486
int32_t GetTransparency()
Definition cpwl_wnd.cpp:728
virtual bool CanUndo()
Definition cpwl_wnd.cpp:377
bool IsWndCaptureMouse(const CPWL_Wnd *pWnd) const
Definition cpwl_wnd.cpp:674
virtual void SetScrollPosition(float pos)
Definition cpwl_wnd.cpp:430
virtual void DrawThisAppearance(CFX_RenderDevice *pDevice, const CFX_Matrix &mtUser2Device)
Definition cpwl_wnd.cpp:250
ProviderIface * GetProvider() const
Definition cpwl_wnd.h:239
bool Move(const CFX_FloatRect &rcNew, bool bReset, bool bRefresh)
Definition cpwl_wnd.cpp:211
virtual void OnCreated()
Definition cpwl_wnd.cpp:185
void SetClipRect(const CFX_FloatRect &rect)
Definition cpwl_wnd.cpp:601
bool IsWndCaptureKeyboard(const CPWL_Wnd *pWnd) const
Definition cpwl_wnd.cpp:679
virtual bool CanRedo()
Definition cpwl_wnd.cpp:381
CFX_Color GetBorderLeftTopColor(BorderStyle nBorderStyle) const
Definition cpwl_wnd.cpp:706
virtual bool Undo()
Definition cpwl_wnd.cpp:385
static const CFX_Color kDefaultWhiteColor
Definition cpwl_wnd.h:80
virtual void OnKillFocus()
Definition cpwl_wnd.cpp:552
CFX_Timer::HandlerIface * GetTimerHandler() const
Definition cpwl_wnd.h:242
std::unique_ptr< IPWL_FillerNotify::PerWindowData > CloneAttachedData() const
Definition cpwl_wnd.cpp:554
virtual bool OnLButtonDblClk(Mask< FWL_EVENTFLAG > nFlag, const CFX_PointF &point)
CFX_Color GetTextColor() const
Definition cpwl_wnd.cpp:474
virtual void NotifyLButtonUp(CPWL_Wnd *child, const CFX_PointF &pos)
Definition cpwl_wnd.cpp:436
void Destroy()
Definition cpwl_wnd.cpp:194
CPWL_ScrollBar * GetVScrollBar() const
Definition cpwl_wnd.cpp:498
static const CFX_Color kDefaultBlackColor
Definition cpwl_wnd.h:79
bool IsValid() const
Definition cpwl_wnd.h:237
static bool IsMETAKeyDown(Mask< FWL_EVENTFLAG > nFlag)
Definition cpwl_wnd.cpp:138
virtual bool OnLButtonDown(Mask< FWL_EVENTFLAG > nFlag, const CFX_PointF &point)
void AddChild(std::unique_ptr< CPWL_Wnd > pWnd)
Definition cpwl_wnd.cpp:410
bool IsReadOnly() const
Definition cpwl_wnd.cpp:610
void DrawAppearance(CFX_RenderDevice *pDevice, const CFX_Matrix &mtUser2Device)
Definition cpwl_wnd.cpp:242
void RemoveChild(CPWL_Wnd *pWnd)
Definition cpwl_wnd.cpp:416
virtual WideString GetText()
Definition cpwl_wnd.cpp:361
virtual ~PerWindowData()=default
virtual std::unique_ptr< PerWindowData > Clone() const =0
virtual void SetCursor(CursorStyle nCursorStyle)=0
virtual BeforeKeystrokeResult OnBeforeKeyStroke(const PerWindowData *pAttached, WideString &strChange, const WideString &strChangeEx, int nSelStart, int nSelEnd, bool bKeyDown, Mask< FWL_EVENTFLAG > nFlag)=0
virtual ~IPWL_FillerNotify()=default
virtual void QueryWherePopup(const PerWindowData *pAttached, float fPopupMin, float fPopupMax, bool *bBottom, float *fPopupRet)=0
virtual bool OnPopupPostOpen(const PerWindowData *pAttached, Mask< FWL_EVENTFLAG > nFlag)=0
virtual bool OnPopupPreOpen(const PerWindowData *pAttached, Mask< FWL_EVENTFLAG > nFlag)=0
virtual bool IsSelectionImplemented() const =0
virtual void OutputSelectedRect(PerWindowData *pWidgetData, const CFX_FloatRect &rect)=0
virtual void InvalidateRect(PerWindowData *pWidgetData, const CFX_FloatRect &rect)=0
TEST_F(CPDFSDK_AnnotIteratorTest, CPDFSDK_AnnotIterator)
FPDF_WIDESTRING AsFPDFWideString(ByteString *bsUTF16LE)
CPWL_Dash(int32_t dash, int32_t gap, int32_t phase)
Definition cpwl_wnd.h:63
int32_t nPhase
Definition cpwl_wnd.h:74
int32_t nDash
Definition cpwl_wnd.h:72
void Reset()
Definition cpwl_wnd.h:66
CPWL_Dash()
Definition cpwl_wnd.h:62
int32_t nGap
Definition cpwl_wnd.h:73
#define UNOWNED_PTR_EXCLUSION