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_edit_impl.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_EDIT_IMPL_H_
8#define FPDFSDK_PWL_CPWL_EDIT_IMPL_H_
9
10#include <deque>
11#include <memory>
12#include <utility>
13#include <vector>
14
15#include "core/fpdfdoc/cpvt_variabletext.h"
16#include "core/fpdfdoc/cpvt_wordrange.h"
17#include "core/fxcrt/bytestring.h"
18#include "core/fxcrt/fx_codepage_forward.h"
19#include "core/fxcrt/unowned_ptr.h"
20#include "core/fxge/dib/fx_dib.h"
21#include "fpdfsdk/pwl/ipwl_fillernotify.h"
22
24class CPWL_Edit;
25
27 public:
28 class Iterator {
29 public:
30 Iterator(CPWL_EditImpl* pEdit, CPVT_VariableText::Iterator* pVTIterator);
32
33 bool NextWord();
34 bool GetWord(CPVT_Word& word) const;
35 bool GetLine(CPVT_Line& line) const;
36 void SetAt(int32_t nWordIndex);
37 void SetAt(const CPVT_WordPlace& place);
38 const CPVT_WordPlace& GetAt() const;
39
40 private:
43 };
44
47
48 void DrawEdit(CFX_RenderDevice* pDevice,
49 const CFX_Matrix& mtUser2Device,
50 FX_COLORREF crTextFill,
51 const CFX_FloatRect& rcClip,
52 const CFX_PointF& ptOffset,
53 const CPVT_WordRange* pRange,
54 IPWL_FillerNotify* pFillerNotify,
55 IPWL_FillerNotify::PerWindowData* pSystemData);
56
57 void SetFontMap(IPVT_FontMap* pFontMap);
58 void SetNotify(CPWL_Edit* pNotify);
59
60 // Returns an iterator for the contents. Should not be released.
63 void Initialize();
64
65 // Set the bounding box of the text area.
66 void SetPlateRect(const CFX_FloatRect& rect);
67 void SetScrollPos(const CFX_PointF& point);
68
69 // Set the horizontal text alignment. (nFormat [0:left, 1:middle, 2:right])
70 void SetAlignmentH(int32_t nFormat);
71
72 // Set the vertical text alignment. (nFormat [0:left, 1:middle, 2:right])
73 void SetAlignmentV(int32_t nFormat);
74
75 // Set the substitution character for hidden text.
76 void SetPasswordChar(uint16_t wSubWord);
77
78 // Set the maximum number of words in the text.
79 void SetLimitChar(int32_t nLimitChar);
80 void SetCharArray(int32_t nCharArray);
81 void SetMultiLine(bool bMultiLine);
82 void SetAutoReturn(bool bAuto);
83 void SetAutoFontSize(bool bAuto);
84 void SetAutoScroll(bool bAuto);
85 void SetFontSize(float fFontSize);
86 void SetTextOverflow(bool bAllowed);
87 void OnMouseDown(const CFX_PointF& point, bool bShift, bool bCtrl);
88 void OnMouseMove(const CFX_PointF& point, bool bShift, bool bCtrl);
89 void OnVK_UP(bool bShift);
90 void OnVK_DOWN(bool bShift);
91 void OnVK_LEFT(bool bShift);
92 void OnVK_RIGHT(bool bShift);
93 void OnVK_HOME(bool bShift, bool bCtrl);
94 void OnVK_END(bool bShift, bool bCtrl);
95 void SetText(const WideString& sText);
96 bool InsertWord(uint16_t word, FX_Charset charset);
97 bool InsertReturn();
98 bool Backspace();
99 bool Delete();
100 bool ClearSelection();
101 bool InsertText(const WideString& sText, FX_Charset charset);
102 void ReplaceAndKeepSelection(const WideString& text);
103 void ReplaceSelection(const WideString& text);
104 bool Redo();
105 bool Undo();
106 CPVT_WordPlace WordIndexToWordPlace(int32_t index) const;
107 CPVT_WordPlace SearchWordPlace(const CFX_PointF& point) const;
108 int32_t GetCaret() const;
110 WideString GetSelectedText() const;
111 WideString GetText() const;
112 float GetFontSize() const;
113 uint16_t GetPasswordChar() const;
114 CFX_PointF GetScrollPos() const;
115 int32_t GetCharArray() const;
117 WideString GetRangeText(const CPVT_WordRange& range) const;
118 void SetSelection(int32_t nStartChar, int32_t nEndChar);
119 std::pair<int32_t, int32_t> GetSelection() const;
120 void SelectAll();
121 void SelectNone();
122 bool IsSelected() const;
123 void Paint();
124 void EnableRefresh(bool bRefresh);
125 void RefreshWordRange(const CPVT_WordRange& wr);
128 void EnableUndo(bool bUndo);
129 bool IsTextFull() const;
130 bool CanUndo() const;
131 bool CanRedo() const;
133
134 ByteString GetPDFWordString(int32_t nFontIndex,
135 uint16_t Word,
136 uint16_t SubWord);
137
138 private:
139 class RefreshState {
140 public:
141 RefreshState();
142 ~RefreshState();
143
144 void BeginRefresh();
145 void Push(const CPVT_WordRange& linerange, const CFX_FloatRect& rect);
146 void NoAnalyse();
147 std::vector<CFX_FloatRect>* GetRefreshRects();
148 void EndRefresh();
149
150 private:
151 struct LineRect {
152 LineRect(const CPVT_WordRange& wrLine, const CFX_FloatRect& rcLine)
153 : m_wrLine(wrLine), m_rcLine(rcLine) {}
154
155 CPVT_WordRange m_wrLine;
156 CFX_FloatRect m_rcLine;
157 };
158
159 void Add(const CFX_FloatRect& new_rect);
160
161 std::vector<LineRect> m_NewLineRects;
162 std::vector<LineRect> m_OldLineRects;
163 std::vector<CFX_FloatRect> m_RefreshRects;
164 };
165
166 class SelectState {
167 public:
168 SelectState();
169 explicit SelectState(const CPVT_WordRange& range);
170
171 void Reset();
172 void Set(const CPVT_WordPlace& begin, const CPVT_WordPlace& end);
173 void SetEndPos(const CPVT_WordPlace& end);
174
175 CPVT_WordRange ConvertToWordRange() const;
176 bool IsEmpty() const;
177
178 CPVT_WordPlace BeginPos;
179 CPVT_WordPlace EndPos;
180 };
181
182 class UndoItemIface {
183 public:
184 virtual ~UndoItemIface() = default;
185
186 // Undo/Redo the current undo item and returns the number of additional
187 // items to be processed in |m_UndoItemStack| to fully undo/redo the action.
188 // (An example is UndoReplaceSelection::Undo(), if UndoReplaceSelection
189 // marks the end of a replace action, UndoReplaceSelection::Undo() returns
190 // |undo_remaining_|. The default value of |undo_remaining_| in
191 // UndoReplaceSelection is 3. because 3 more undo items need to be processed
192 // to revert the replace action: insert text, clear selection and the
193 // UndoReplaceSelection which marks the beginning of replace action. If
194 // CPWL_EditImpl::ClearSelection() returns false, the value of
195 // |undo_remaining_| in UndoReplaceSelection needs to be set to 2)
196 // Implementations should return 0 by default.
197 virtual int Undo() = 0;
198 virtual int Redo() = 0;
199 void set_undo_remaining(int undo_remaining) {
200 undo_remaining_ = undo_remaining;
201 }
202 int undo_remaining() const { return undo_remaining_; }
203
204 private:
205 int undo_remaining_ = 0;
206 };
207
208 class UndoStack {
209 public:
210 UndoStack();
211 ~UndoStack();
212
213 void AddItem(std::unique_ptr<UndoItemIface> pItem);
214 void Undo();
215 void Redo();
216 bool CanUndo() const;
217 bool CanRedo() const;
218 // GetLastAddItem() will never return null, so it can only be called after
219 // calling AddItem().
220 UndoItemIface* GetLastAddItem();
221
222 private:
223 void RemoveHeads();
224 void RemoveTails();
225
226 std::deque<std::unique_ptr<UndoItemIface>> m_UndoItemStack;
227 size_t m_nCurUndoPos = 0;
228 bool m_bWorking = false;
229 };
230
231 class Provider;
232 class UndoBackspace;
233 class UndoClear;
234 class UndoDelete;
235 class UndoInsertReturn;
236 class UndoInsertText;
237 class UndoInsertWord;
238 class UndoReplaceSelection;
239
240 bool IsTextOverflow() const;
241 bool Clear();
242 CPVT_WordPlace DoInsertText(const CPVT_WordPlace& place,
243 const WideString& sText,
244 FX_Charset charset);
245 FX_Charset GetCharSetFromUnicode(uint16_t word, FX_Charset nOldCharset);
246 int32_t GetTotalLines() const;
247 void SetSelection(const CPVT_WordPlace& begin, const CPVT_WordPlace& end);
248 bool Delete(bool bAddUndo);
249 bool Clear(bool bAddUndo);
250 bool InsertText(const WideString& sText, FX_Charset charset, bool bAddUndo);
251 bool InsertWord(uint16_t word, FX_Charset charset, bool bAddUndo);
252 bool InsertReturn(bool bAddUndo);
253 bool Backspace(bool bAddUndo);
254 void SetCaret(const CPVT_WordPlace& place);
255
256 CFX_PointF VTToEdit(const CFX_PointF& point) const;
257
258 void RearrangeAll();
259 void RearrangePart(const CPVT_WordRange& range);
260 void ScrollToCaret();
261 void SetScrollInfo();
262 void SetScrollPosX(float fx);
263 void SetScrollPosY(float fy);
264 void SetScrollLimit();
265 void SetContentChanged();
266
267 void PaintInsertText(const CPVT_WordPlace& wpOld,
268 const CPVT_WordPlace& wpNew);
269
270 CFX_PointF EditToVT(const CFX_PointF& point) const;
271 CFX_FloatRect VTToEdit(const CFX_FloatRect& rect) const;
272
273 void Refresh();
274 void RefreshPushLineRects(const CPVT_WordRange& wr);
275
276 void SetCaretInfo();
277 void SetCaretOrigin();
278
279 void AddEditUndoItem(std::unique_ptr<UndoItemIface> pEditUndoItem);
280
281 bool m_bEnableScroll = false;
282 bool m_bNotifyFlag = false;
283 bool m_bEnableOverflow = false;
284 bool m_bEnableRefresh = true;
285 bool m_bEnableUndo = true;
286 int32_t m_nAlignment = 0;
287 std::unique_ptr<Provider> m_pVTProvider;
288 std::unique_ptr<CPVT_VariableText> m_pVT; // Must outlive |m_pVTProvider|.
289 UnownedPtr<CPWL_Edit> m_pNotify;
290 CPVT_WordPlace m_wpCaret;
291 CPVT_WordPlace m_wpOldCaret;
292 SelectState m_SelState;
293 CFX_PointF m_ptScrollPos;
294 CFX_PointF m_ptRefreshScrollPos;
295 std::unique_ptr<Iterator> m_pIterator;
296 RefreshState m_Refresh;
297 CFX_PointF m_ptCaret;
298 UndoStack m_Undo;
299 CFX_FloatRect m_rcOldContent;
300};
301
302#endif // FPDFSDK_PWL_CPWL_EDIT_IMPL_H_
BorderStyle
CFX_FloatRect(const CFX_FloatRect &that)=default
CFX_FloatRect GetCenterSquare() const
constexpr CFX_FloatRect(float l, float b, float r, float t)
float Width() const
bool IsEmpty() const
void ScaleFromCenterPoint(float fScale)
CFX_FloatRect & operator=(const CFX_FloatRect &that)=default
float Height() const
CFX_FloatRect GetDeflated(float x, float y) const
CFX_Matrix(float a1, float b1, float c1, float d1, float e1, float f1)
void SetAsTextField(absl::optional< WideString > sValue)
CPDFSDK_AppStream(CPDFSDK_Widget *widget, CPDF_Dictionary *dict)
void SetAsComboBox(absl::optional< WideString > sValue)
bool IsNeedHighLight(FormFieldType fieldType) const
std::vector< CPDF_FormField * > GetFieldFromObjects(const std::vector< RetainPtr< const CPDF_Object > > &objects) const
CPDFSDK_Widget * GetWidget(CPDF_FormControl *pControl) const
bool OnKeyStrokeCommit(CPDF_FormField *pFormField, const WideString &csValue)
~CPDFSDK_InteractiveForm() override
void SetHighlightColor(FX_COLORREF clr, FormFieldType fieldType)
void ResetFieldAppearance(CPDF_FormField *pFormField, absl::optional< WideString > sValue)
void SetAllHighlightColors(FX_COLORREF clr)
void GetWidgets(const WideString &sFieldName, std::vector< ObservedPtr< CPDFSDK_Widget > > *widgets) const
void GetWidgets(CPDF_FormField *pField, std::vector< ObservedPtr< CPDFSDK_Widget > > *widgets) const
void AfterFormReset(CPDF_InteractiveForm *pForm) override
FX_COLORREF GetHighlightColor(FormFieldType fieldType)
void AfterCheckedStatusChange(CPDF_FormField *pField) override
void AfterValueChange(CPDF_FormField *pField) override
bool DoAction_SubmitForm(const CPDF_Action &action)
bool BeforeValueChange(CPDF_FormField *pField, const WideString &csValue) override
ByteString ExportFieldsToFDFTextBuf(const std::vector< CPDF_FormField * > &fields, bool bIncludeOrExclude)
void RemoveMap(CPDF_FormControl *pControl)
bool DoAction_Hide(const CPDF_Action &action)
absl::optional< WideString > OnFormat(CPDF_FormField *pFormField)
void AfterSelectionChange(CPDF_FormField *pField) override
void UpdateField(CPDF_FormField *pFormField)
bool SubmitForm(const WideString &sDestination)
void DoAction_ResetForm(const CPDF_Action &action)
void AddMap(CPDF_FormControl *pControl, CPDFSDK_Widget *pWidget)
CPDFSDK_InteractiveForm(CPDFSDK_FormFillEnvironment *pFormFillEnv)
bool BeforeSelectionChange(CPDF_FormField *pField, const WideString &csValue) override
bool OnValidate(CPDF_FormField *pFormField, const WideString &csValue)
CPDF_InteractiveForm * GetInteractiveForm() const
void SetHighlightAlpha(uint8_t alpha)
bool SubmitFields(const WideString &csDestination, const std::vector< CPDF_FormField * > &fields, bool bIncludeOrExclude, bool bUrlEncoded)
void OnCalculate(CPDF_FormField *pFormField)
bool IsModifiedAPStream(const CPDF_Stream *stream) const
RetainPtr< CPDF_Stream > CreateModifiedAPStream()
bool HasMKEntry(const ByteString &csEntry) const
WideString GetDownCaption() const
HighlightingMode GetHighlightingMode() const
WideString GetRolloverCaption() const
CFX_Color GetOriginalBackgroundColor()
CPDF_FormField * GetField() const
WideString GetNormalCaption() const
ByteString GetCheckedAPState() const
CPDF_IconFit GetIconFit() const
CPDF_DefaultAppearance GetDefaultAppearance() const
CFX_Color GetOriginalBorderColor()
int GetTextPosition() const
int GetSelectedIndex(int index) const
int CountOptions() const
WideString GetOptionLabel(int index) const
int CountSelectedItems() const
int GetTopVisibleIndex() const
bool GetFittingBounds() const
uint16_t Word
Definition cpvt_word.h:19
int32_t nFontIndex
Definition cpvt_word.h:26
float fFontSize
Definition cpvt_word.h:27
void SetAt(int32_t nWordIndex)
Iterator(CPWL_EditImpl *pEdit, CPVT_VariableText::Iterator *pVTIterator)
bool GetWord(CPVT_Word &word) const
bool GetLine(CPVT_Line &line) const
const CPVT_WordPlace & GetAt() const
void SetAt(const CPVT_WordPlace &place)
WideString GetRangeText(const CPVT_WordRange &range) const
void OnVK_DOWN(bool bShift)
WideString GetText() const
uint16_t GetPasswordChar() const
bool IsTextFull() const
void EnableUndo(bool bUndo)
CFX_FloatRect GetContentRect() const
void SetText(const WideString &sText)
int32_t GetCharArray() const
std::pair< int32_t, int32_t > GetSelection() const
void OnMouseMove(const CFX_PointF &point, bool bShift, bool bCtrl)
bool IsSelected() const
void SetFontMap(IPVT_FontMap *pFontMap)
CPVT_WordPlace GetCaretWordPlace() const
CPVT_WordRange GetSelectWordRange() const
void OnMouseDown(const CFX_PointF &point, bool bShift, bool bCtrl)
int32_t GetCaret() const
void DrawEdit(CFX_RenderDevice *pDevice, const CFX_Matrix &mtUser2Device, FX_COLORREF crTextFill, const CFX_FloatRect &rcClip, const CFX_PointF &ptOffset, const CPVT_WordRange *pRange, IPWL_FillerNotify *pFillerNotify, IPWL_FillerNotify::PerWindowData *pSystemData)
void SetAutoScroll(bool bAuto)
void SetAutoReturn(bool bAuto)
Iterator * GetIterator()
bool CanRedo() const
void SetTextOverflow(bool bAllowed)
void OnVK_RIGHT(bool bShift)
void OnVK_END(bool bShift, bool bCtrl)
void SetFontSize(float fFontSize)
void SetAlignmentH(int32_t nFormat)
void RefreshWordRange(const CPVT_WordRange &wr)
void EnableRefresh(bool bRefresh)
bool InsertWord(uint16_t word, FX_Charset charset)
ByteString GetPDFWordString(int32_t nFontIndex, uint16_t Word, uint16_t SubWord)
void OnVK_HOME(bool bShift, bool bCtrl)
void OnVK_UP(bool bShift)
IPVT_FontMap * GetFontMap()
void SetLimitChar(int32_t nLimitChar)
void SetSelection(int32_t nStartChar, int32_t nEndChar)
void SetCharArray(int32_t nCharArray)
void SetAlignmentV(int32_t nFormat)
CPVT_WordPlace WordIndexToWordPlace(int32_t index) const
CPVT_WordRange GetWholeWordRange() const
CPVT_WordPlace SearchWordPlace(const CFX_PointF &point) const
WideString GetSelectedText() const
void SetNotify(CPWL_Edit *pNotify)
CPVT_WordRange GetVisibleWordRange() const
void ReplaceSelection(const WideString &text)
bool InsertText(const WideString &sText, FX_Charset charset)
float GetFontSize() const
void SetScrollPos(const CFX_PointF &point)
void ReplaceAndKeepSelection(const WideString &text)
void SetMultiLine(bool bMultiLine)
void OnVK_LEFT(bool bShift)
bool CanUndo() const
CFX_PointF GetScrollPos() const
void SetAutoFontSize(bool bAuto)
void SetPlateRect(const CFX_FloatRect &rect)
void SetPasswordChar(uint16_t wSubWord)
bool CanCopy() const
Definition cpwl_edit.cpp:96
static float GetCharArrayAutoFontSize(const CPDF_Font *pFont, const CFX_FloatRect &rcPlate, int32_t nCharArray)
bool IsTextFull() const
void SetScrollInfo(const PWL_SCROLL_INFO &info) override
bool CanRedo() override
void SetFontSize(float fFontSize) override
bool SetCaret(bool bVisible, const CFX_PointF &ptHead, const CFX_PointF &ptFoot)
bool SelectAllText() override
bool OnLButtonUp(Mask< FWL_EVENTFLAG > nFlag, const CFX_PointF &point) override
bool CanUndo() override
bool OnKeyDown(FWL_VKEYCODE nKeyCode, Mask< FWL_EVENTFLAG > nFlag) override
CPWL_Edit(const CreateParams &cp, std::unique_ptr< IPWL_FillerNotify::PerWindowData > pAttachedData)
Definition cpwl_edit.cpp:32
void CutText()
bool Undo() override
bool Redo() override
CFX_FloatRect GetFocusRect() const override
bool RepositionChildWnd() override
Definition cpwl_edit.cpp:49
void SetScrollPosition(float pos) override
void SetAlignFormatVerticalCenter()
Definition cpwl_edit.cpp:87
void SetCursor() override
WideString GetText() override
void SetCharSet(FX_Charset nCharSet)
Definition cpwl_edit.h:81
bool CanCut() const
bool OnLButtonDblClk(Mask< FWL_EVENTFLAG > nFlag, const CFX_PointF &point) override
void OnSetFocus() override
void ReplaceAndKeepSelection(const WideString &text) override
void ScrollWindowVertically(float pos) override
void SetCharArray(int32_t nCharArray)
void SetSelection(int32_t nStartChar, int32_t nEndChar)
std::pair< int32_t, int32_t > GetSelection() const
void OnKillFocus() override
void SetScrollPos(const CFX_PointF &point)
void ClearSelection()
void SetText(const WideString &csText)
Definition cpwl_edit.cpp:44
bool OnMouseMove(Mask< FWL_EVENTFLAG > nFlag, const CFX_PointF &point) override
void ReplaceSelection(const WideString &text) override
CFX_FloatRect GetClientRect() const override
Definition cpwl_edit.cpp:78
bool OnMouseWheel(Mask< FWL_EVENTFLAG > nFlag, const CFX_PointF &point, const CFX_Vector &delta) override
void DrawThisAppearance(CFX_RenderDevice *pDevice, const CFX_Matrix &mtUser2Device) override
~CPWL_Edit() override
Definition cpwl_edit.cpp:40
void SetReadyToInput()
bool OnChar(uint16_t nChar, Mask< FWL_EVENTFLAG > nFlag) override
void OnCreated() override
WideString GetSelectedText() override
float GetFontSize() const override
void SetLimitChar(int32_t nLimitChar)
FX_Charset GetCharSet() const
Definition cpwl_edit.h:82
bool OnLButtonDown(Mask< FWL_EVENTFLAG > nFlag, const CFX_PointF &point) override
CFX_PointF GetScrollPos() const
bool OnRButtonUp(Mask< FWL_EVENTFLAG > nFlag, const CFX_PointF &point) override
void CreateChildWnd(const CreateParams &cp) override
void OnDestroy() override
bool CanSelectAll() const
Definition cpwl_edit.cpp:92
CreateParams(CFX_Timer::HandlerIface *timer_handler, IPWL_FillerNotify *filler_notify, ProviderIface *provider)
Definition cpwl_wnd.cpp:36
virtual ByteString GetPDFFontAlias(int32_t nFontIndex)=0
ByteString & operator+=(const ByteString &str)
ByteString & operator=(const ByteString &that)
ByteString & operator=(ByteString &&that) noexcept
bool IsEmpty() const
Definition bytestring.h:119
WideString & operator=(WideString &&that) noexcept
CharType operator[](const size_t index) const
Definition widestring.h:146
bool IsEmpty() const
Definition widestring.h:118
WideString & operator=(const WideString &that)
#define TEXTPOS_ICON
#define TEXTPOS_RIGHT
#define TEXTPOS_LEFT
#define TEXTPOS_BELOW
#define TEXTPOS_OVERLAID
#define TEXTPOS_ABOVE
FormFieldType
PWL_EDIT_ALIGNFORMAT_H
Definition cpwl_edit.h:25
@ PEAH_LEFT
Definition cpwl_edit.h:25
@ PEAH_RIGHT
Definition cpwl_edit.h:25
@ PEAH_MIDDLE
Definition cpwl_edit.h:25
PWL_EDIT_ALIGNFORMAT_V
Definition cpwl_edit.h:27
@ PEAV_CENTER
Definition cpwl_edit.h:27
@ PEAV_TOP
Definition cpwl_edit.h:27
@ PEAV_BOTTOM
Definition cpwl_edit.h:27
#define PWS_VISIBLE
Definition cpwl_wnd.h:33
FX_Charset
Definition fx_codepage.h:70
#define FXSYS_BEZIER
Definition fx_system.h:44
#define FXSYS_PI
Definition fx_system.h:43
#define FXSYS_IsFloatBigger(fa, fb)
Definition fx_system.h:36
#define FXSYS_IsFloatZero(f)
Definition fx_system.h:35
ByteString operator+(const ByteString &str1, const ByteString &str2)
Definition bytestring.h:270
const char kRC[]
const char kIX[]
const char kAC[]
const char kCA[]
const char kI[]
const char kRI[]
CFX_Color operator/(float fColorDivide) const
CFX_Color operator-(float fColorSub) const
float fColor4
Definition cfx_color.h:58
float fColor3
Definition cfx_color.h:57
Type nColorType
Definition cfx_color.h:54
CFX_Color & operator=(const CFX_Color &that)=default
constexpr CFX_Color(Type type=CFX_Color::Type::kTransparent, float color1=0.0f, float color2=0.0f, float color3=0.0f, float color4=0.0f)
Definition cfx_color.h:27
float fColor2
Definition cfx_color.h:56
float fColor1
Definition cfx_color.h:55
int32_t LineCmp(const CPVT_WordPlace &wp) const
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
int32_t nGap
Definition cpwl_wnd.h:73