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

Side by Side Diff: xfa/fwl/core/ifwl_monthcalendar.h

Issue 2493583002: Cleanup methds in IFWL_MonthCalendar (Closed)
Patch Set: Review feedback Created 4 years, 1 month 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 | « no previous file | xfa/fwl/core/ifwl_monthcalendar.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 PDFium Authors. All rights reserved. 1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 6
7 #ifndef XFA_FWL_CORE_IFWL_MONTHCALENDAR_H_ 7 #ifndef XFA_FWL_CORE_IFWL_MONTHCALENDAR_H_
8 #define XFA_FWL_CORE_IFWL_MONTHCALENDAR_H_ 8 #define XFA_FWL_CORE_IFWL_MONTHCALENDAR_H_
9 9
10 #include "xfa/fgas/localization/fgas_datetime.h" 10 #include "xfa/fgas/localization/fgas_datetime.h"
(...skipping 19 matching lines...) Expand all
30 FWL_EVENT_DEF(CFWL_EventMcdDateChanged, 30 FWL_EVENT_DEF(CFWL_EventMcdDateChanged,
31 CFWL_EventType::DateChanged, 31 CFWL_EventType::DateChanged,
32 int32_t m_iOldYear; 32 int32_t m_iOldYear;
33 int32_t m_iOldMonth; 33 int32_t m_iOldMonth;
34 int32_t m_iStartDay; 34 int32_t m_iStartDay;
35 int32_t m_iEndDay;) 35 int32_t m_iEndDay;)
36 36
37 class CFWL_MsgMouse; 37 class CFWL_MsgMouse;
38 class IFWL_Widget; 38 class IFWL_Widget;
39 39
40 struct FWL_DATEINFO;
41
42 extern uint8_t FX_DaysInMonth(int32_t iYear, uint8_t iMonth);
43
44 class IFWL_MonthCalendarDP : public IFWL_DataProvider { 40 class IFWL_MonthCalendarDP : public IFWL_DataProvider {
45 public: 41 public:
46 virtual int32_t GetCurDay(IFWL_Widget* pWidget) = 0; 42 virtual int32_t GetCurDay(IFWL_Widget* pWidget) = 0;
47 virtual int32_t GetCurMonth(IFWL_Widget* pWidget) = 0; 43 virtual int32_t GetCurMonth(IFWL_Widget* pWidget) = 0;
48 virtual int32_t GetCurYear(IFWL_Widget* pWidget) = 0; 44 virtual int32_t GetCurYear(IFWL_Widget* pWidget) = 0;
49 }; 45 };
50 46
51 class IFWL_MonthCalendar : public IFWL_Widget { 47 class IFWL_MonthCalendar : public IFWL_Widget {
52 public: 48 public:
53 IFWL_MonthCalendar(const IFWL_App* app, 49 IFWL_MonthCalendar(const IFWL_App* app,
54 std::unique_ptr<CFWL_WidgetProperties> properties, 50 std::unique_ptr<CFWL_WidgetProperties> properties,
55 IFWL_Widget* pOuter); 51 IFWL_Widget* pOuter);
56 ~IFWL_MonthCalendar() override; 52 ~IFWL_MonthCalendar() override;
57 53
58 // FWL_WidgetImp 54 // FWL_WidgetImp
59 FWL_Type GetClassID() const override; 55 FWL_Type GetClassID() const override;
60 void GetWidgetRect(CFX_RectF& rect, bool bAutoSize = false) override; 56 void GetWidgetRect(CFX_RectF& rect, bool bAutoSize = false) override;
61 void Update() override; 57 void Update() override;
62 void DrawWidget(CFX_Graphics* pGraphics, 58 void DrawWidget(CFX_Graphics* pGraphics,
63 const CFX_Matrix* pMatrix = nullptr) override; 59 const CFX_Matrix* pMatrix = nullptr) override;
64 void OnProcessMessage(CFWL_Message* pMessage) override; 60 void OnProcessMessage(CFWL_Message* pMessage) override;
65 void OnDrawWidget(CFX_Graphics* pGraphics, 61 void OnDrawWidget(CFX_Graphics* pGraphics,
66 const CFX_Matrix* pMatrix) override; 62 const CFX_Matrix* pMatrix) override;
67 63
68 int32_t CountSelect(); 64 void SetSelect(int32_t iYear, int32_t iMonth, int32_t iDay);
69 bool GetSelect(int32_t& iYear,
70 int32_t& iMonth,
71 int32_t& iDay,
72 int32_t nIndex = 0);
73 bool SetSelect(int32_t iYear, int32_t iMonth, int32_t iDay);
74 65
75 protected: 66 private:
76 struct DATE { 67 struct DATE {
77 DATE() : iYear(0), iMonth(0), iDay(0) {} 68 DATE() : iYear(0), iMonth(0), iDay(0) {}
69
78 DATE(int32_t year, int32_t month, int32_t day) 70 DATE(int32_t year, int32_t month, int32_t day)
79 : iYear(year), iMonth(month), iDay(day) {} 71 : iYear(year), iMonth(month), iDay(day) {}
72
80 bool operator<(const DATE& right) { 73 bool operator<(const DATE& right) {
81 if (iYear < right.iYear) { 74 if (iYear < right.iYear)
82 return true; 75 return true;
83 } else if (iYear == right.iYear) { 76 if (iYear == right.iYear) {
84 if (iMonth < right.iMonth) { 77 if (iMonth < right.iMonth)
85 return true; 78 return true;
86 } else if (iMonth == right.iMonth) { 79 if (iMonth == right.iMonth)
87 return iDay < right.iDay; 80 return iDay < right.iDay;
88 }
89 } 81 }
90 return false; 82 return false;
91 } 83 }
84
92 bool operator>(const DATE& right) { 85 bool operator>(const DATE& right) {
93 if (iYear > right.iYear) { 86 if (iYear > right.iYear)
94 return true; 87 return true;
95 } else if (iYear == right.iYear) { 88 if (iYear == right.iYear) {
96 if (iMonth > right.iMonth) { 89 if (iMonth > right.iMonth)
97 return true; 90 return true;
98 } else if (iMonth == right.iMonth) { 91 if (iMonth == right.iMonth)
99 return iDay > right.iDay; 92 return iDay > right.iDay;
100 }
101 } 93 }
102 return false; 94 return false;
103 } 95 }
96
104 int32_t iYear; 97 int32_t iYear;
105 int32_t iMonth; 98 int32_t iMonth;
106 int32_t iDay; 99 int32_t iDay;
107 }; 100 };
101 struct DATEINFO {
102 DATEINFO(int32_t day,
103 int32_t dayofweek,
104 uint32_t dwSt,
105 CFX_RectF rc,
106 CFX_WideString& wsday);
107 ~DATEINFO();
108
109 int32_t iDay;
110 int32_t iDayOfWeek;
111 uint32_t dwStates;
112 CFX_RectF rect;
113 CFX_WideString wsDay;
114 };
108 115
109 void DrawBkground(CFX_Graphics* pGraphics, 116 void DrawBkground(CFX_Graphics* pGraphics,
110 IFWL_ThemeProvider* pTheme, 117 IFWL_ThemeProvider* pTheme,
111 const CFX_Matrix* pMatrix); 118 const CFX_Matrix* pMatrix);
112 void DrawHeadBK(CFX_Graphics* pGraphics, 119 void DrawHeadBK(CFX_Graphics* pGraphics,
113 IFWL_ThemeProvider* pTheme, 120 IFWL_ThemeProvider* pTheme,
114 const CFX_Matrix* pMatrix); 121 const CFX_Matrix* pMatrix);
115 void DrawLButton(CFX_Graphics* pGraphics, 122 void DrawLButton(CFX_Graphics* pGraphics,
116 IFWL_ThemeProvider* pTheme, 123 IFWL_ThemeProvider* pTheme,
117 const CFX_Matrix* pMatrix); 124 const CFX_Matrix* pMatrix);
(...skipping 23 matching lines...) Expand all
141 const CFX_Matrix* pMatrix); 148 const CFX_Matrix* pMatrix);
142 void DrawDatesIn(CFX_Graphics* pGraphics, 149 void DrawDatesIn(CFX_Graphics* pGraphics,
143 IFWL_ThemeProvider* pTheme, 150 IFWL_ThemeProvider* pTheme,
144 const CFX_Matrix* pMatrix); 151 const CFX_Matrix* pMatrix);
145 void DrawDatesOut(CFX_Graphics* pGraphics, 152 void DrawDatesOut(CFX_Graphics* pGraphics,
146 IFWL_ThemeProvider* pTheme, 153 IFWL_ThemeProvider* pTheme,
147 const CFX_Matrix* pMatrix); 154 const CFX_Matrix* pMatrix);
148 void DrawDatesInCircle(CFX_Graphics* pGraphics, 155 void DrawDatesInCircle(CFX_Graphics* pGraphics,
149 IFWL_ThemeProvider* pTheme, 156 IFWL_ThemeProvider* pTheme,
150 const CFX_Matrix* pMatrix); 157 const CFX_Matrix* pMatrix);
151 void DrawTodayCircle(CFX_Graphics* pGraphics,
152 IFWL_ThemeProvider* pTheme,
153 const CFX_Matrix* pMatrix);
154 CFX_SizeF CalcSize(bool bAutoSize = false); 158 CFX_SizeF CalcSize(bool bAutoSize = false);
155 void LayOut(); 159 void Layout();
156 void CalcHeadSize(); 160 void CalcHeadSize();
157 void CalcTodaySize(); 161 void CalcTodaySize();
158 void CalDateItem(); 162 void CalDateItem();
159 void GetCapValue(); 163 void GetCapValue();
160 int32_t CalWeekNumber(int32_t iYear, int32_t iMonth, int32_t iDay); 164 void InitDate();
161 bool GetMinDate(int32_t& iYear, int32_t& iMonth, int32_t& iDay);
162 bool SetMinDate(int32_t iYear, int32_t iMonth, int32_t iDay);
163 bool GetMaxDate(int32_t& iYear, int32_t& iMonth, int32_t& iDay);
164 bool SetMaxDate(int32_t iYear, int32_t iMonth, int32_t iDay);
165 bool InitDate();
166 void ClearDateItem(); 165 void ClearDateItem();
167 void ReSetDateItem(); 166 void ResetDateItem();
168 bool NextMonth(); 167 void NextMonth();
169 bool PrevMonth(); 168 void PrevMonth();
170 void ChangeToMonth(int32_t iYear, int32_t iMonth); 169 void ChangeToMonth(int32_t iYear, int32_t iMonth);
171 bool RemoveSelDay(int32_t iDay, bool bAll = false); 170 void RemoveSelDay(int32_t iDay, bool bAll = false);
172 bool AddSelDay(int32_t iDay); 171 void AddSelDay(int32_t iDay);
173 bool JumpToToday(); 172 void JumpToToday();
174 void GetHeadText(int32_t iYear, int32_t iMonth, CFX_WideString& wsHead); 173 void GetHeadText(int32_t iYear, int32_t iMonth, CFX_WideString& wsHead);
175 void GetTodayText(int32_t iYear, 174 void GetTodayText(int32_t iYear,
176 int32_t iMonth, 175 int32_t iMonth,
177 int32_t iDay, 176 int32_t iDay,
178 CFX_WideString& wsToday); 177 CFX_WideString& wsToday);
179 int32_t GetDayAtPoint(FX_FLOAT x, FX_FLOAT y); 178 int32_t GetDayAtPoint(FX_FLOAT x, FX_FLOAT y);
180 bool GetDayRect(int32_t iDay, CFX_RectF& rtDay); 179 void GetDayRect(int32_t iDay, CFX_RectF& rtDay);
180 void OnLButtonDown(CFWL_MsgMouse* pMsg);
181 void OnLButtonUp(CFWL_MsgMouse* pMsg);
182 void DisForm_OnLButtonUp(CFWL_MsgMouse* pMsg);
183 void OnMouseMove(CFWL_MsgMouse* pMsg);
184 void OnMouseLeave(CFWL_MsgMouse* pMsg);
181 185
182 bool m_bInit; 186 bool m_bInitialized;
183 CFX_RectF m_rtHead; 187 CFX_RectF m_rtHead;
184 CFX_RectF m_rtWeek; 188 CFX_RectF m_rtWeek;
185 CFX_RectF m_rtLBtn; 189 CFX_RectF m_rtLBtn;
186 CFX_RectF m_rtRBtn; 190 CFX_RectF m_rtRBtn;
187 CFX_RectF m_rtDates; 191 CFX_RectF m_rtDates;
188 CFX_RectF m_rtHSep; 192 CFX_RectF m_rtHSep;
189 CFX_RectF m_rtHeadText; 193 CFX_RectF m_rtHeadText;
190 CFX_RectF m_rtToday; 194 CFX_RectF m_rtToday;
191 CFX_RectF m_rtTodayFlag; 195 CFX_RectF m_rtTodayFlag;
192 CFX_RectF m_rtWeekNum; 196 CFX_RectF m_rtWeekNum;
193 CFX_RectF m_rtWeekNumSep; 197 CFX_RectF m_rtWeekNumSep;
194 CFX_RectF m_rtTemp;
195 CFX_WideString m_wsHead; 198 CFX_WideString m_wsHead;
196 CFX_WideString m_wsToday; 199 CFX_WideString m_wsToday;
197 std::unique_ptr<CFX_DateTime> m_pDateTime; 200 std::unique_ptr<CFX_DateTime> m_pDateTime;
198 CFX_ArrayTemplate<FWL_DATEINFO*> m_arrDates; 201 CFX_ArrayTemplate<DATEINFO*> m_arrDates;
199 int32_t m_iCurYear; 202 int32_t m_iCurYear;
200 int32_t m_iCurMonth; 203 int32_t m_iCurMonth;
201 int32_t m_iYear; 204 int32_t m_iYear;
202 int32_t m_iMonth; 205 int32_t m_iMonth;
203 int32_t m_iDay; 206 int32_t m_iDay;
204 int32_t m_iHovered; 207 int32_t m_iHovered;
205 int32_t m_iLBtnPartStates; 208 int32_t m_iLBtnPartStates;
206 int32_t m_iRBtnPartStates; 209 int32_t m_iRBtnPartStates;
207 DATE m_dtMin; 210 DATE m_dtMin;
208 DATE m_dtMax; 211 DATE m_dtMax;
209 CFX_SizeF m_szHead; 212 CFX_SizeF m_szHead;
210 CFX_SizeF m_szCell; 213 CFX_SizeF m_szCell;
211 CFX_SizeF m_szToday; 214 CFX_SizeF m_szToday;
212 CFX_ArrayTemplate<int32_t> m_arrSelDays; 215 CFX_ArrayTemplate<int32_t> m_arrSelDays;
213 int32_t m_iMaxSel;
214 CFX_RectF m_rtClient; 216 CFX_RectF m_rtClient;
215 FX_FLOAT m_fHeadWid; 217 FX_FLOAT m_fHeadWid;
216 FX_FLOAT m_fHeadHei; 218 FX_FLOAT m_fHeadHei;
217 FX_FLOAT m_fHeadBtnWid; 219 FX_FLOAT m_fHeadBtnWid;
218 FX_FLOAT m_fHeadBtnHei; 220 FX_FLOAT m_fHeadBtnHei;
219 FX_FLOAT m_fHeadBtnHMargin; 221 FX_FLOAT m_fHeadBtnHMargin;
220 FX_FLOAT m_fHeadBtnVMargin; 222 FX_FLOAT m_fHeadBtnVMargin;
221 FX_FLOAT m_fHeadTextWid; 223 FX_FLOAT m_fHeadTextWid;
222 FX_FLOAT m_fHeadTextHei; 224 FX_FLOAT m_fHeadTextHei;
223 FX_FLOAT m_fHeadTextHMargin; 225 FX_FLOAT m_fHeadTextHMargin;
224 FX_FLOAT m_fHeadTextVMargin; 226 FX_FLOAT m_fHeadTextVMargin;
225 FX_FLOAT m_fHSepWid; 227 FX_FLOAT m_fHSepWid;
226 FX_FLOAT m_fHSepHei; 228 FX_FLOAT m_fHSepHei;
227 FX_FLOAT m_fWeekNumWid; 229 FX_FLOAT m_fWeekNumWid;
228 FX_FLOAT m_fSepDOffset; 230 FX_FLOAT m_fSepDOffset;
229 FX_FLOAT m_fSepX; 231 FX_FLOAT m_fSepX;
230 FX_FLOAT m_fSepY; 232 FX_FLOAT m_fSepY;
231 FX_FLOAT m_fWeekNumHeigh; 233 FX_FLOAT m_fWeekNumHeigh;
232 FX_FLOAT m_fWeekWid; 234 FX_FLOAT m_fWeekWid;
233 FX_FLOAT m_fWeekHei; 235 FX_FLOAT m_fWeekHei;
234 FX_FLOAT m_fDateCellWid; 236 FX_FLOAT m_fDateCellWid;
235 FX_FLOAT m_fDateCellHei; 237 FX_FLOAT m_fDateCellHei;
236 FX_FLOAT m_fTodayWid; 238 FX_FLOAT m_fTodayWid;
237 FX_FLOAT m_fTodayHei; 239 FX_FLOAT m_fTodayHei;
238 FX_FLOAT m_fTodayFlagWid; 240 FX_FLOAT m_fTodayFlagWid;
239 FX_FLOAT m_fMCWid; 241 FX_FLOAT m_fMCWid;
240 FX_FLOAT m_fMCHei; 242 FX_FLOAT m_fMCHei;
241 bool m_bFlag; 243 bool m_bFlag;
242
243 private:
244 void OnLButtonDown(CFWL_MsgMouse* pMsg);
245 void OnLButtonUp(CFWL_MsgMouse* pMsg);
246 void DisForm_OnLButtonUp(CFWL_MsgMouse* pMsg);
247 void OnMouseMove(CFWL_MsgMouse* pMsg);
248 void OnMouseLeave(CFWL_MsgMouse* pMsg);
249 };
250
251 struct FWL_DATEINFO {
252 FWL_DATEINFO(int32_t day,
253 int32_t dayofweek,
254 uint32_t dwSt,
255 CFX_RectF rc,
256 CFX_WideString& wsday);
257 ~FWL_DATEINFO();
258
259 int32_t iDay;
260 int32_t iDayOfWeek;
261 uint32_t dwStates;
262 CFX_RectF rect;
263 CFX_WideString wsDay;
264 }; 244 };
265 245
266 #endif // XFA_FWL_CORE_IFWL_MONTHCALENDAR_H_ 246 #endif // XFA_FWL_CORE_IFWL_MONTHCALENDAR_H_
OLDNEW
« no previous file with comments | « no previous file | xfa/fwl/core/ifwl_monthcalendar.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698