Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(396)

Side by Side Diff: fpdfsdk/include/pdfwindow/PWL_Note.h

Issue 1823153002: Move the fpdfsdk/include/pdfwindow/ headers into fpdfsdk/pdfwindow. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Rebase to master Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « fpdfsdk/include/pdfwindow/PWL_ListCtrl.h ('k') | fpdfsdk/include/pdfwindow/PWL_ScrollBar.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2014 PDFium Authors. All rights reserved.
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_INCLUDE_PDFWINDOW_PWL_NOTE_H_
8 #define FPDFSDK_INCLUDE_PDFWINDOW_PWL_NOTE_H_
9
10 #include "fpdfsdk/include/pdfwindow/PWL_Button.h"
11 #include "fpdfsdk/include/pdfwindow/PWL_Edit.h"
12 #include "fpdfsdk/include/pdfwindow/PWL_ListCtrl.h"
13 #include "fpdfsdk/include/pdfwindow/PWL_ScrollBar.h"
14 #include "fpdfsdk/include/pdfwindow/PWL_Wnd.h"
15
16 class CPWL_Label;
17 class CPWL_Note;
18 class CPWL_NoteItem;
19 class CPWL_Note_CloseBox;
20 class CPWL_Note_Contents;
21 class CPWL_Note_Edit;
22 class CPWL_Note_Icon;
23 class CPWL_Note_LBBox;
24 class CPWL_Note_Options;
25 class CPWL_Note_RBBox;
26 class IPWL_NoteHandler;
27 class IPWL_NoteItem;
28 class IPWL_NoteNotify;
29 class IPopup_Note;
30
31 class IPWL_NoteNotify {
32 public:
33 virtual ~IPWL_NoteNotify() {}
34 virtual void OnNoteMove(const FX_RECT& rtWin) = 0;
35 virtual void OnNoteShow(FX_BOOL bShow) = 0;
36 virtual void OnNoteActivate(FX_BOOL bActive) = 0;
37 virtual void OnNoteClose() = 0;
38 virtual void OnItemCreate(IPWL_NoteItem* pItem) = 0;
39 virtual void OnItemDelete(IPWL_NoteItem* pItem) = 0;
40 virtual void OnSetAuthorName(IPWL_NoteItem* pItem) = 0;
41 virtual void OnSetBkColor(IPWL_NoteItem* pItem) = 0;
42 virtual void OnSetContents(IPWL_NoteItem* pItem) = 0;
43 virtual void OnSetDateTime(IPWL_NoteItem* pItem) = 0;
44 virtual void OnSetSubjectName(IPWL_NoteItem* pItem) = 0;
45 virtual void OnPopupMenu(int32_t x, int32_t y) = 0;
46 virtual void OnPopupMenu(IPWL_NoteItem* pItem, int32_t x, int32_t y) = 0;
47 };
48
49 class IPWL_NoteHandler {
50 public:
51 virtual ~IPWL_NoteHandler() {}
52 virtual void OnNoteColorChanged(const CPWL_Color& color) = 0;
53 };
54
55 class IPWL_NoteItem {
56 public:
57 virtual ~IPWL_NoteItem() {}
58 virtual void SetPrivateData(void* pData) = 0;
59 virtual void SetBkColor(const CPWL_Color& color) = 0;
60 virtual void SetSubjectName(const CFX_WideString& sName) = 0;
61 virtual void SetAuthorName(const CFX_WideString& sName) = 0;
62 virtual void SetDateTime(FX_SYSTEMTIME time) = 0;
63 virtual void SetContents(const CFX_WideString& sContents) = 0;
64
65 virtual IPWL_NoteItem* CreateSubItem() = 0;
66 virtual int32_t CountSubItems() const = 0;
67 virtual IPWL_NoteItem* GetSubItems(int32_t index) const = 0;
68 virtual void DeleteSubItem(IPWL_NoteItem* pNoteItem) = 0;
69 virtual void SetFocus() = 0;
70
71 virtual IPWL_NoteItem* GetParentItem() const = 0;
72 virtual void* GetPrivateData() const = 0;
73 virtual CFX_WideString GetAuthorName() const = 0;
74 virtual CPWL_Color GetBkColor() const = 0;
75 virtual CFX_WideString GetContents() const = 0;
76 virtual FX_SYSTEMTIME GetDateTime() const = 0;
77 virtual CFX_WideString GetSubjectName() const = 0;
78
79 virtual CPWL_Edit* GetEdit() const = 0;
80 };
81
82 class CPWL_Note_Icon : public CPWL_Wnd {
83 public:
84 CPWL_Note_Icon();
85 ~CPWL_Note_Icon() override;
86
87 void SetIconType(int32_t nType);
88
89 protected:
90 // CPWL_Wnd
91 void DrawThisAppearance(CFX_RenderDevice* pDevice,
92 CFX_Matrix* pUser2Device) override;
93
94 private:
95 int32_t m_nType;
96 };
97
98 class CPWL_Note_CloseBox : public CPWL_Button {
99 public:
100 CPWL_Note_CloseBox();
101 ~CPWL_Note_CloseBox() override;
102
103 protected:
104 // CPWL_Button
105 void DrawThisAppearance(CFX_RenderDevice* pDevice,
106 CFX_Matrix* pUser2Device) override;
107 FX_BOOL OnLButtonDown(const CFX_FloatPoint& point, FX_DWORD nFlag) override;
108 FX_BOOL OnLButtonUp(const CFX_FloatPoint& point, FX_DWORD nFlag) override;
109
110 private:
111 FX_BOOL m_bMouseDown;
112 };
113
114 class CPWL_Note_LBBox : public CPWL_Wnd {
115 public:
116 CPWL_Note_LBBox();
117 ~CPWL_Note_LBBox() override;
118
119 protected:
120 // CPWL_Wnd
121 void DrawThisAppearance(CFX_RenderDevice* pDevice,
122 CFX_Matrix* pUser2Device) override;
123 };
124
125 class CPWL_Note_RBBox : public CPWL_Wnd {
126 public:
127 CPWL_Note_RBBox();
128 ~CPWL_Note_RBBox() override;
129
130 protected:
131 // CPWL_Wnd
132 void DrawThisAppearance(CFX_RenderDevice* pDevice,
133 CFX_Matrix* pUser2Device) override;
134 };
135
136 class CPWL_Note_Edit : public CPWL_Edit {
137 public:
138 CPWL_Note_Edit();
139 ~CPWL_Note_Edit() override;
140
141 void EnableNotify(FX_BOOL bEnable) { m_bEnableNotify = bEnable; }
142
143 // CPWL_Edit
144 FX_FLOAT GetItemLeftMargin() override;
145 FX_FLOAT GetItemRightMargin() override;
146 FX_FLOAT GetItemHeight(FX_FLOAT fLimitWidth) override;
147 void SetText(const FX_WCHAR* csText) override;
148 void OnNotify(CPWL_Wnd* pWnd,
149 FX_DWORD msg,
150 intptr_t wParam = 0,
151 intptr_t lParam = 0) override;
152 void RePosChildWnd() override;
153 void OnSetFocus() override;
154 void OnKillFocus() override;
155
156 private:
157 FX_BOOL m_bEnableNotify;
158 FX_FLOAT m_fOldItemHeight;
159 FX_BOOL m_bSizeChanged;
160 FX_FLOAT m_fOldMin;
161 FX_FLOAT m_fOldMax;
162 };
163
164 class CPWL_Note_Options : public CPWL_Wnd {
165 public:
166 CPWL_Note_Options();
167 ~CPWL_Note_Options() override;
168
169 CFX_FloatRect GetContentRect() const;
170 void SetText(const CFX_WideString& sText);
171
172 // CPWL_Wnd
173 void RePosChildWnd() override;
174 void CreateChildWnd(const PWL_CREATEPARAM& cp) override;
175 void DrawThisAppearance(CFX_RenderDevice* pDevice,
176 CFX_Matrix* pUser2Device) override;
177 void SetTextColor(const CPWL_Color& color) override;
178
179 private:
180 CPWL_Label* m_pText;
181 };
182
183 class CPWL_Note_Contents : public CPWL_ListCtrl {
184 public:
185 CPWL_Note_Contents();
186 ~CPWL_Note_Contents() override;
187
188 void SetEditFocus(FX_BOOL bLast);
189 CPWL_Edit* GetEdit() const;
190
191 void SetText(const CFX_WideString& sText);
192 CFX_WideString GetText() const;
193
194 CPWL_NoteItem* CreateSubItem();
195 void DeleteSubItem(IPWL_NoteItem* pNoteItem);
196 int32_t CountSubItems() const;
197 IPWL_NoteItem* GetSubItems(int32_t index) const;
198
199 virtual IPWL_NoteItem* GetHitNoteItem(const CFX_FloatPoint& point);
200 void EnableRead(FX_BOOL bEnabled);
201 void EnableModify(FX_BOOL bEnabled);
202
203 // CPWL_ListCtrl
204 CFX_ByteString GetClassName() const override;
205 void OnNotify(CPWL_Wnd* pWnd,
206 FX_DWORD msg,
207 intptr_t wParam = 0,
208 intptr_t lParam = 0) override;
209 FX_BOOL OnLButtonDown(const CFX_FloatPoint& point, FX_DWORD nFlag) override;
210 void CreateChildWnd(const PWL_CREATEPARAM& cp) override;
211
212 private:
213 CPWL_Note_Edit* m_pEdit;
214 };
215
216 class CPWL_NoteItem : public CPWL_Wnd, public IPWL_NoteItem {
217 public:
218 CPWL_NoteItem();
219 ~CPWL_NoteItem() override;
220
221 virtual IPWL_NoteItem* GetHitNoteItem(const CFX_FloatPoint& point);
222 virtual IPWL_NoteItem* GetFocusedNoteItem() const;
223
224 virtual FX_BOOL IsTopItem() const { return FALSE; }
225
226 virtual void ResetSubjectName(int32_t nItemIndex);
227 void EnableRead(FX_BOOL bEnabled);
228 void EnableModify(FX_BOOL bEnabled);
229
230 void OnContentsValidate();
231 void OnCreateNoteItem();
232
233 // IPWL_NoteItem
234 void SetPrivateData(void* pData) override;
235 void SetBkColor(const CPWL_Color& color) override;
236 void SetSubjectName(const CFX_WideString& sName) override;
237 void SetAuthorName(const CFX_WideString& sName) override;
238 void SetDateTime(FX_SYSTEMTIME time) override;
239 void SetContents(const CFX_WideString& sContents) override;
240 IPWL_NoteItem* CreateSubItem() override;
241 int32_t CountSubItems() const override;
242 IPWL_NoteItem* GetSubItems(int32_t index) const override;
243 void DeleteSubItem(IPWL_NoteItem* pNoteItem) override;
244 void SetFocus() override { SetNoteFocus(FALSE); }
245 IPWL_NoteItem* GetParentItem() const override;
246 void* GetPrivateData() const override;
247 CFX_WideString GetAuthorName() const override;
248 CPWL_Color GetBkColor() const override;
249 CFX_WideString GetContents() const override;
250 FX_SYSTEMTIME GetDateTime() const override;
251 CFX_WideString GetSubjectName() const override;
252 CPWL_Edit* GetEdit() const override;
253
254 protected:
255 // CPWL_Wnd
256 FX_BOOL OnLButtonDown(const CFX_FloatPoint& point, FX_DWORD nFlag) override;
257 FX_BOOL OnRButtonUp(const CFX_FloatPoint& point, FX_DWORD nFlag) override;
258 CFX_ByteString GetClassName() const override;
259 void RePosChildWnd() override;
260 void CreateChildWnd(const PWL_CREATEPARAM& cp) override;
261 void OnNotify(CPWL_Wnd* pWnd,
262 FX_DWORD msg,
263 intptr_t wParam = 0,
264 intptr_t lParam = 0) override;
265 FX_FLOAT GetItemHeight(FX_FLOAT fLimitWidth) override;
266 FX_FLOAT GetItemLeftMargin() override;
267 FX_FLOAT GetItemRightMargin() override;
268
269 CPWL_NoteItem* CreateNoteItem();
270 CPWL_NoteItem* GetParentNoteItem() const;
271
272 void SetNoteFocus(FX_BOOL bLast);
273 void PopupNoteItemMenu(const CFX_FloatPoint& point);
274
275 virtual const CPWL_Note* GetNote() const;
276 virtual IPWL_NoteNotify* GetNoteNotify() const;
277
278 protected:
279 CPWL_Label* m_pSubject;
280 CPWL_Label* m_pDateTime;
281 CPWL_Note_Contents* m_pContents;
282
283 private:
284 void* m_pPrivateData;
285 FX_SYSTEMTIME m_dtNote;
286 CFX_WideString m_sAuthor;
287
288 FX_FLOAT m_fOldItemHeight;
289 FX_BOOL m_bSizeChanged;
290 FX_BOOL m_bAllowModify;
291 };
292
293 class CPWL_Note : public CPWL_NoteItem {
294 public:
295 CPWL_Note(IPopup_Note* pPopupNote,
296 IPWL_NoteNotify* pNoteNotify,
297 IPWL_NoteHandler* pNoteHandler);
298 ~CPWL_Note() override;
299
300 IPWL_NoteItem* Reply();
301 void EnableNotify(FX_BOOL bEnabled);
302 void SetIconType(int32_t nType);
303 void SetOptionsText(const CFX_WideString& sText);
304 void EnableRead(FX_BOOL bEnabled);
305 void EnableModify(FX_BOOL bEnabled);
306
307 CFX_WideString GetReplyString() const;
308 void SetReplyString(const CFX_WideString& str);
309
310 // CPWL_NoteItem
311 void SetSubjectName(const CFX_WideString& sName) override;
312 void SetAuthorName(const CFX_WideString& sName) override;
313 CFX_WideString GetAuthorName() const override;
314 void SetBkColor(const CPWL_Color& color) override;
315 void ResetSubjectName(int32_t nItemIndex) override {}
316 FX_BOOL IsTopItem() const override { return TRUE; }
317 const CPWL_Note* GetNote() const override;
318 IPWL_NoteNotify* GetNoteNotify() const override;
319 FX_BOOL OnLButtonDown(const CFX_FloatPoint& point, FX_DWORD nFlag) override;
320 FX_BOOL OnRButtonUp(const CFX_FloatPoint& point, FX_DWORD nFlag) override;
321 FX_BOOL OnMouseWheel(short zDelta,
322 const CFX_FloatPoint& point,
323 FX_DWORD nFlag) override;
324 void RePosChildWnd() override;
325 void CreateChildWnd(const PWL_CREATEPARAM& cp) override;
326 void OnNotify(CPWL_Wnd* pWnd,
327 FX_DWORD msg,
328 intptr_t wParam = 0,
329 intptr_t lParam = 0) override;
330
331 protected:
332 FX_BOOL ResetScrollBar();
333 void RePosNoteChildren();
334 FX_BOOL ScrollBarShouldVisible();
335
336 private:
337 CPWL_Label* m_pAuthor;
338 CPWL_Note_Icon* m_pIcon;
339 CPWL_Note_CloseBox* m_pCloseBox;
340 CPWL_Note_LBBox* m_pLBBox;
341 CPWL_Note_RBBox* m_pRBBox;
342 CPWL_ScrollBar* m_pContentsBar;
343 CPWL_Note_Options* m_pOptions;
344 IPWL_NoteNotify* m_pNoteNotify;
345 FX_BOOL m_bResizing;
346 PWL_SCROLL_INFO m_OldScrollInfo;
347 FX_BOOL m_bEnableNotify;
348 CFX_WideString m_sReplyString;
349 };
350
351 #endif // FPDFSDK_INCLUDE_PDFWINDOW_PWL_NOTE_H_
OLDNEW
« no previous file with comments | « fpdfsdk/include/pdfwindow/PWL_ListCtrl.h ('k') | fpdfsdk/include/pdfwindow/PWL_ScrollBar.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698