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

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

Issue 2488963005: Continue IFWL widget cleanup. (Closed)
Patch Set: Rebase to master 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
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_DATETIMEPICKER_H_ 7 #ifndef XFA_FWL_CORE_IFWL_DATETIMEPICKER_H_
8 #define XFA_FWL_CORE_IFWL_DATETIMEPICKER_H_ 8 #define XFA_FWL_CORE_IFWL_DATETIMEPICKER_H_
9 9
10 #include "xfa/fwl/core/cfwl_event.h" 10 #include "xfa/fwl/core/cfwl_event.h"
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 int32_t hoverday;) 46 int32_t hoverday;)
47 47
48 FWL_EVENT_DEF(CFWL_Event_DtpSelectChanged, 48 FWL_EVENT_DEF(CFWL_Event_DtpSelectChanged,
49 CFWL_EventType::SelectChanged, 49 CFWL_EventType::SelectChanged,
50 int32_t iYear; 50 int32_t iYear;
51 int32_t iMonth; 51 int32_t iMonth;
52 int32_t iDay;) 52 int32_t iDay;)
53 53
54 class IFWL_DateTimePickerDP : public IFWL_DataProvider { 54 class IFWL_DateTimePickerDP : public IFWL_DataProvider {
55 public: 55 public:
56 virtual FWL_Error GetToday(IFWL_Widget* pWidget, 56 virtual void GetToday(IFWL_Widget* pWidget,
57 int32_t& iYear, 57 int32_t& iYear,
58 int32_t& iMonth, 58 int32_t& iMonth,
59 int32_t& iDay) = 0; 59 int32_t& iDay) = 0;
60 }; 60 };
61 61
62 class IFWL_DateTimePicker : public IFWL_Widget, public IFWL_MonthCalendarDP { 62 class IFWL_DateTimePicker : public IFWL_Widget, public IFWL_MonthCalendarDP {
63 public: 63 public:
64 explicit IFWL_DateTimePicker( 64 explicit IFWL_DateTimePicker(
65 const IFWL_App* app, 65 const IFWL_App* app,
66 std::unique_ptr<CFWL_WidgetProperties> properties); 66 std::unique_ptr<CFWL_WidgetProperties> properties);
67 ~IFWL_DateTimePicker() override; 67 ~IFWL_DateTimePicker() override;
68 68
69 // IFWL_Widget 69 // IFWL_Widget
70 FWL_Type GetClassID() const override; 70 FWL_Type GetClassID() const override;
71 void GetWidgetRect(CFX_RectF& rect, bool bAutoSize = false) override; 71 void GetWidgetRect(CFX_RectF& rect, bool bAutoSize = false) override;
72 void Update() override; 72 void Update() override;
73 FWL_WidgetHit HitTest(FX_FLOAT fx, FX_FLOAT fy) override; 73 FWL_WidgetHit HitTest(FX_FLOAT fx, FX_FLOAT fy) override;
74 void DrawWidget(CFX_Graphics* pGraphics, 74 void DrawWidget(CFX_Graphics* pGraphics,
75 const CFX_Matrix* pMatrix = nullptr) override; 75 const CFX_Matrix* pMatrix = nullptr) override;
76 void SetThemeProvider(IFWL_ThemeProvider* pTP) override; 76 void SetThemeProvider(IFWL_ThemeProvider* pTP) override;
77 void OnProcessMessage(CFWL_Message* pMessage) override; 77 void OnProcessMessage(CFWL_Message* pMessage) override;
78 void OnDrawWidget(CFX_Graphics* pGraphics, 78 void OnDrawWidget(CFX_Graphics* pGraphics,
79 const CFX_Matrix* pMatrix) override; 79 const CFX_Matrix* pMatrix) override;
80 80
81 FWL_Error GetCurSel(int32_t& iYear, int32_t& iMonth, int32_t& iDay);
82 FWL_Error SetCurSel(int32_t iYear, int32_t iMonth, int32_t iDay);
83 FWL_Error SetEditText(const CFX_WideString& wsText);
84 FWL_Error GetEditText(CFX_WideString& wsText,
85 int32_t nStart = 0,
86 int32_t nCount = -1) const;
87 int32_t CountSelRanges();
88 int32_t GetSelRange(int32_t nIndex, int32_t& nStart);
89
90 bool CanUndo();
91 bool CanRedo();
92 bool Undo();
93 bool Redo();
94 bool CanCopy();
95 bool CanCut();
96 bool CanSelectAll();
97 bool Copy(CFX_WideString& wsCopy);
98 bool Cut(CFX_WideString& wsCut);
99 bool Paste(const CFX_WideString& wsPaste);
100 bool SelectAll();
101 bool Delete();
102 bool DeSelect();
103 FWL_Error GetBBox(CFX_RectF& rect);
104 FWL_Error SetEditLimit(int32_t nLimit);
105 void ModifyEditStylesEx(uint32_t dwStylesExAdded, uint32_t dwStylesExRemoved);
106 IFWL_DateTimeEdit* GetDataTimeEdit();
107
108 bool IsMonthCalendarShowed();
109 void ShowMonthCalendar(bool bActivate);
110 void ProcessSelChanged(int32_t iYear, int32_t iMonth, int32_t iDay);
111
112 IFWL_FormProxy* GetFormProxy() const { return m_pForm.get(); }
113
114 // IFWL_DataProvider 81 // IFWL_DataProvider
115 FWL_Error GetCaption(IFWL_Widget* pWidget, 82 void GetCaption(IFWL_Widget* pWidget, CFX_WideString& wsCaption) override;
116 CFX_WideString& wsCaption) override;
117 83
118 // IFWL_MonthCalendarDP 84 // IFWL_MonthCalendarDP
119 int32_t GetCurDay(IFWL_Widget* pWidget) override; 85 int32_t GetCurDay(IFWL_Widget* pWidget) override;
120 int32_t GetCurMonth(IFWL_Widget* pWidget) override; 86 int32_t GetCurMonth(IFWL_Widget* pWidget) override;
121 int32_t GetCurYear(IFWL_Widget* pWidget) override; 87 int32_t GetCurYear(IFWL_Widget* pWidget) override;
122 88
123 protected: 89 void GetCurSel(int32_t& iYear, int32_t& iMonth, int32_t& iDay);
90 void SetCurSel(int32_t iYear, int32_t iMonth, int32_t iDay);
91
92 void SetEditText(const CFX_WideString& wsText);
93 void GetEditText(CFX_WideString& wsText,
94 int32_t nStart = 0,
95 int32_t nCount = -1) const;
96
97 int32_t CountSelRanges();
98 int32_t GetSelRange(int32_t nIndex, int32_t& nStart);
99
100 void GetBBox(CFX_RectF& rect);
101 void SetEditLimit(int32_t nLimit);
102 void ModifyEditStylesEx(uint32_t dwStylesExAdded, uint32_t dwStylesExRemoved);
103
104 bool IsMonthCalendarVisible();
105 void ShowMonthCalendar(bool bActivate);
106 void ProcessSelChanged(int32_t iYear, int32_t iMonth, int32_t iDay);
107
108 IFWL_FormProxy* GetFormProxy() const { return m_pForm.get(); }
109
110 private:
124 void DrawDropDownButton(CFX_Graphics* pGraphics, 111 void DrawDropDownButton(CFX_Graphics* pGraphics,
125 IFWL_ThemeProvider* pTheme, 112 IFWL_ThemeProvider* pTheme,
126 const CFX_Matrix* pMatrix); 113 const CFX_Matrix* pMatrix);
127 void FormatDateString(int32_t iYear, 114 void FormatDateString(int32_t iYear,
128 int32_t iMonth, 115 int32_t iMonth,
129 int32_t iDay, 116 int32_t iDay,
130 CFX_WideString& wsText); 117 CFX_WideString& wsText);
131 void ReSetEditAlignment(); 118 void ResetEditAlignment();
132 void InitProxyForm(); 119 void InitProxyForm();
133 120
121 bool DisForm_IsMonthCalendarVisible();
122 void DisForm_ShowMonthCalendar(bool bActivate);
123 FWL_WidgetHit DisForm_HitTest(FX_FLOAT fx, FX_FLOAT fy);
124 bool DisForm_IsNeedShowButton();
125 void DisForm_Update();
126 void DisForm_GetWidgetRect(CFX_RectF& rect, bool bAutoSize = false);
127 void DisForm_GetBBox(CFX_RectF& rect);
128 void DisForm_DrawWidget(CFX_Graphics* pGraphics,
129 const CFX_Matrix* pMatrix = nullptr);
130 void DisForm_OnFocusChanged(CFWL_Message* pMsg, bool bSet);
131 void OnFocusChanged(CFWL_Message* pMsg, bool bSet);
132 void OnLButtonDown(CFWL_MsgMouse* pMsg);
133 void OnLButtonUp(CFWL_MsgMouse* pMsg);
134 void OnMouseMove(CFWL_MsgMouse* pMsg);
135 void OnMouseLeave(CFWL_MsgMouse* pMsg);
136
134 CFX_RectF m_rtBtn; 137 CFX_RectF m_rtBtn;
135 CFX_RectF m_rtClient; 138 CFX_RectF m_rtClient;
136 int32_t m_iBtnState; 139 int32_t m_iBtnState;
137 int32_t m_iYear; 140 int32_t m_iYear;
138 int32_t m_iMonth; 141 int32_t m_iMonth;
139 int32_t m_iDay; 142 int32_t m_iDay;
143 int32_t m_iCurYear;
144 int32_t m_iCurMonth;
145 int32_t m_iCurDay;
140 bool m_bLBtnDown; 146 bool m_bLBtnDown;
141 std::unique_ptr<IFWL_DateTimeEdit> m_pEdit; 147 std::unique_ptr<IFWL_DateTimeEdit> m_pEdit;
142 std::unique_ptr<IFWL_MonthCalendar> m_pMonthCal; 148 std::unique_ptr<IFWL_MonthCalendar> m_pMonthCal;
143 std::unique_ptr<IFWL_FormProxy> m_pForm; 149 std::unique_ptr<IFWL_FormProxy> m_pForm;
144 FX_FLOAT m_fBtn; 150 FX_FLOAT m_fBtn;
145
146 private:
147 FWL_Error DisForm_Initialize();
148 void DisForm_InitMonthCalendar();
149 void DisForm_InitDateTimeEdit();
150 bool DisForm_IsMonthCalendarShowed();
151 void DisForm_ShowMonthCalendar(bool bActivate);
152 FWL_WidgetHit DisForm_HitTest(FX_FLOAT fx, FX_FLOAT fy);
153 bool DisForm_IsNeedShowButton();
154 void DisForm_Update();
155 void DisForm_GetWidgetRect(CFX_RectF& rect, bool bAutoSize = false);
156 FWL_Error DisForm_GetBBox(CFX_RectF& rect);
157 void DisForm_DrawWidget(CFX_Graphics* pGraphics,
158 const CFX_Matrix* pMatrix = nullptr);
159
160 void OnFocusChanged(CFWL_Message* pMsg, bool bSet);
161 void OnLButtonDown(CFWL_MsgMouse* pMsg);
162 void OnLButtonUp(CFWL_MsgMouse* pMsg);
163 void OnMouseMove(CFWL_MsgMouse* pMsg);
164 void OnMouseLeave(CFWL_MsgMouse* pMsg);
165 void DisForm_OnFocusChanged(CFWL_Message* pMsg, bool bSet);
166
167 int32_t m_iCurYear;
168 int32_t m_iCurMonth;
169 int32_t m_iCurDay;
170 }; 151 };
171 152
172 #endif // XFA_FWL_CORE_IFWL_DATETIMEPICKER_H_ 153 #endif // XFA_FWL_CORE_IFWL_DATETIMEPICKER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698