| OLD | NEW |
| 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 #include "xfa/fwl/basewidget/fwl_monthcalendarimp.h" | 7 #include "xfa/fwl/basewidget/fwl_monthcalendarimp.h" |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 | 10 |
| (...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 173 m_rtWeekNumSep.Reset(); | 173 m_rtWeekNumSep.Reset(); |
| 174 m_pDateTime = new CFX_DateTime; | 174 m_pDateTime = new CFX_DateTime; |
| 175 m_bInit = FALSE; | 175 m_bInit = FALSE; |
| 176 m_iMaxSel = 1; | 176 m_iMaxSel = 1; |
| 177 } | 177 } |
| 178 CFWL_MonthCalendarImp::~CFWL_MonthCalendarImp() { | 178 CFWL_MonthCalendarImp::~CFWL_MonthCalendarImp() { |
| 179 ClearDateItem(); | 179 ClearDateItem(); |
| 180 delete m_pDateTime; | 180 delete m_pDateTime; |
| 181 m_arrSelDays.RemoveAll(); | 181 m_arrSelDays.RemoveAll(); |
| 182 } | 182 } |
| 183 FWL_ERR CFWL_MonthCalendarImp::GetClassName(CFX_WideString& wsClass) const { | 183 FWL_Error CFWL_MonthCalendarImp::GetClassName(CFX_WideString& wsClass) const { |
| 184 wsClass = FWL_CLASS_MonthCalendar; | 184 wsClass = FWL_CLASS_MonthCalendar; |
| 185 return FWL_ERR_Succeeded; | 185 return FWL_Error::Succeeded; |
| 186 } | 186 } |
| 187 uint32_t CFWL_MonthCalendarImp::GetClassID() const { | 187 uint32_t CFWL_MonthCalendarImp::GetClassID() const { |
| 188 return FWL_CLASSHASH_MonthCalendar; | 188 return FWL_CLASSHASH_MonthCalendar; |
| 189 } | 189 } |
| 190 FWL_ERR CFWL_MonthCalendarImp::Initialize() { | 190 FWL_Error CFWL_MonthCalendarImp::Initialize() { |
| 191 if (CFWL_WidgetImp::Initialize() != FWL_ERR_Succeeded) | 191 if (CFWL_WidgetImp::Initialize() != FWL_Error::Succeeded) |
| 192 return FWL_ERR_Indefinite; | 192 return FWL_Error::Indefinite; |
| 193 m_pDelegate = new CFWL_MonthCalendarImpDelegate(this); | 193 m_pDelegate = new CFWL_MonthCalendarImpDelegate(this); |
| 194 return FWL_ERR_Succeeded; | 194 return FWL_Error::Succeeded; |
| 195 } | 195 } |
| 196 FWL_ERR CFWL_MonthCalendarImp::Finalize() { | 196 FWL_Error CFWL_MonthCalendarImp::Finalize() { |
| 197 delete m_pDelegate; | 197 delete m_pDelegate; |
| 198 m_pDelegate = nullptr; | 198 m_pDelegate = nullptr; |
| 199 return CFWL_WidgetImp::Finalize(); | 199 return CFWL_WidgetImp::Finalize(); |
| 200 } | 200 } |
| 201 FWL_ERR CFWL_MonthCalendarImp::GetWidgetRect(CFX_RectF& rect, | 201 FWL_Error CFWL_MonthCalendarImp::GetWidgetRect(CFX_RectF& rect, |
| 202 FX_BOOL bAutoSize) { | 202 FX_BOOL bAutoSize) { |
| 203 if (bAutoSize) { | 203 if (bAutoSize) { |
| 204 CFX_SizeF fs = CalcSize(TRUE); | 204 CFX_SizeF fs = CalcSize(TRUE); |
| 205 rect.Set(0, 0, fs.x, fs.y); | 205 rect.Set(0, 0, fs.x, fs.y); |
| 206 CFWL_WidgetImp::GetWidgetRect(rect, TRUE); | 206 CFWL_WidgetImp::GetWidgetRect(rect, TRUE); |
| 207 } else { | 207 } else { |
| 208 rect = m_pProperties->m_rtWidget; | 208 rect = m_pProperties->m_rtWidget; |
| 209 } | 209 } |
| 210 return FWL_ERR_Succeeded; | 210 return FWL_Error::Succeeded; |
| 211 } | 211 } |
| 212 FWL_ERR CFWL_MonthCalendarImp::Update() { | 212 FWL_Error CFWL_MonthCalendarImp::Update() { |
| 213 if (IsLocked()) { | 213 if (IsLocked()) { |
| 214 return FWL_ERR_Indefinite; | 214 return FWL_Error::Indefinite; |
| 215 } | 215 } |
| 216 if (!m_pProperties->m_pThemeProvider) { | 216 if (!m_pProperties->m_pThemeProvider) { |
| 217 m_pProperties->m_pThemeProvider = GetAvailableTheme(); | 217 m_pProperties->m_pThemeProvider = GetAvailableTheme(); |
| 218 } | 218 } |
| 219 GetCapValue(); | 219 GetCapValue(); |
| 220 if (!m_bInit) { | 220 if (!m_bInit) { |
| 221 m_bInit = InitDate(); | 221 m_bInit = InitDate(); |
| 222 } | 222 } |
| 223 ClearDateItem(); | 223 ClearDateItem(); |
| 224 ReSetDateItem(); | 224 ReSetDateItem(); |
| 225 LayOut(); | 225 LayOut(); |
| 226 return FWL_ERR_Succeeded; | 226 return FWL_Error::Succeeded; |
| 227 } | 227 } |
| 228 FWL_ERR CFWL_MonthCalendarImp::DrawWidget(CFX_Graphics* pGraphics, | 228 FWL_Error CFWL_MonthCalendarImp::DrawWidget(CFX_Graphics* pGraphics, |
| 229 const CFX_Matrix* pMatrix) { | 229 const CFX_Matrix* pMatrix) { |
| 230 if (!pGraphics) | 230 if (!pGraphics) |
| 231 return FWL_ERR_Indefinite; | 231 return FWL_Error::Indefinite; |
| 232 if (m_pProperties->m_pThemeProvider == NULL) { | 232 if (m_pProperties->m_pThemeProvider == NULL) { |
| 233 m_pProperties->m_pThemeProvider = GetAvailableTheme(); | 233 m_pProperties->m_pThemeProvider = GetAvailableTheme(); |
| 234 } | 234 } |
| 235 IFWL_ThemeProvider* pTheme = m_pProperties->m_pThemeProvider; | 235 IFWL_ThemeProvider* pTheme = m_pProperties->m_pThemeProvider; |
| 236 if (HasBorder()) { | 236 if (HasBorder()) { |
| 237 DrawBorder(pGraphics, CFWL_Part::Border, pTheme, pMatrix); | 237 DrawBorder(pGraphics, CFWL_Part::Border, pTheme, pMatrix); |
| 238 } | 238 } |
| 239 if (HasEdge()) { | 239 if (HasEdge()) { |
| 240 DrawEdge(pGraphics, CFWL_Part::Edge, pTheme, pMatrix); | 240 DrawEdge(pGraphics, CFWL_Part::Edge, pTheme, pMatrix); |
| 241 } | 241 } |
| 242 DrawBkground(pGraphics, pTheme, pMatrix); | 242 DrawBkground(pGraphics, pTheme, pMatrix); |
| 243 DrawHeadBK(pGraphics, pTheme, pMatrix); | 243 DrawHeadBK(pGraphics, pTheme, pMatrix); |
| 244 DrawLButton(pGraphics, pTheme, pMatrix); | 244 DrawLButton(pGraphics, pTheme, pMatrix); |
| 245 DrawRButton(pGraphics, pTheme, pMatrix); | 245 DrawRButton(pGraphics, pTheme, pMatrix); |
| 246 DrawSeperator(pGraphics, pTheme, pMatrix); | 246 DrawSeperator(pGraphics, pTheme, pMatrix); |
| 247 DrawDatesInBK(pGraphics, pTheme, pMatrix); | 247 DrawDatesInBK(pGraphics, pTheme, pMatrix); |
| 248 DrawDatesInCircle(pGraphics, pTheme, pMatrix); | 248 DrawDatesInCircle(pGraphics, pTheme, pMatrix); |
| 249 DrawCaption(pGraphics, pTheme, pMatrix); | 249 DrawCaption(pGraphics, pTheme, pMatrix); |
| 250 DrawWeek(pGraphics, pTheme, pMatrix); | 250 DrawWeek(pGraphics, pTheme, pMatrix); |
| 251 DrawDatesIn(pGraphics, pTheme, pMatrix); | 251 DrawDatesIn(pGraphics, pTheme, pMatrix); |
| 252 DrawDatesOut(pGraphics, pTheme, pMatrix); | 252 DrawDatesOut(pGraphics, pTheme, pMatrix); |
| 253 DrawToday(pGraphics, pTheme, pMatrix); | 253 DrawToday(pGraphics, pTheme, pMatrix); |
| 254 if (m_pProperties->m_dwStyleExes & FWL_STYLEEXT_MCD_WeekNumbers) { | 254 if (m_pProperties->m_dwStyleExes & FWL_STYLEEXT_MCD_WeekNumbers) { |
| 255 DrawWeekNumberSep(pGraphics, pTheme, pMatrix); | 255 DrawWeekNumberSep(pGraphics, pTheme, pMatrix); |
| 256 DrawWeekNumber(pGraphics, pTheme, pMatrix); | 256 DrawWeekNumber(pGraphics, pTheme, pMatrix); |
| 257 } | 257 } |
| 258 return FWL_ERR_Succeeded; | 258 return FWL_Error::Succeeded; |
| 259 } | 259 } |
| 260 int32_t CFWL_MonthCalendarImp::CountSelect() { | 260 int32_t CFWL_MonthCalendarImp::CountSelect() { |
| 261 return m_arrSelDays.GetSize(); | 261 return m_arrSelDays.GetSize(); |
| 262 } | 262 } |
| 263 FX_BOOL CFWL_MonthCalendarImp::GetSelect(int32_t& iYear, | 263 FX_BOOL CFWL_MonthCalendarImp::GetSelect(int32_t& iYear, |
| 264 int32_t& iMonth, | 264 int32_t& iMonth, |
| 265 int32_t& iDay, | 265 int32_t& iDay, |
| 266 int32_t nIndex) { | 266 int32_t nIndex) { |
| 267 if (nIndex >= m_arrSelDays.GetSize()) { | 267 if (nIndex >= m_arrSelDays.GetSize()) { |
| 268 return FALSE; | 268 return FALSE; |
| (...skipping 741 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1010 if (!pDateInfo) | 1010 if (!pDateInfo) |
| 1011 return FALSE; | 1011 return FALSE; |
| 1012 rtDay = pDateInfo->rect; | 1012 rtDay = pDateInfo->rect; |
| 1013 return TRUE; | 1013 return TRUE; |
| 1014 } | 1014 } |
| 1015 | 1015 |
| 1016 CFWL_MonthCalendarImpDelegate::CFWL_MonthCalendarImpDelegate( | 1016 CFWL_MonthCalendarImpDelegate::CFWL_MonthCalendarImpDelegate( |
| 1017 CFWL_MonthCalendarImp* pOwner) | 1017 CFWL_MonthCalendarImp* pOwner) |
| 1018 : m_pOwner(pOwner) {} | 1018 : m_pOwner(pOwner) {} |
| 1019 | 1019 |
| 1020 int32_t CFWL_MonthCalendarImpDelegate::OnProcessMessage( | 1020 void CFWL_MonthCalendarImpDelegate::OnProcessMessage(CFWL_Message* pMessage) { |
| 1021 CFWL_Message* pMessage) { | |
| 1022 if (!pMessage) | 1021 if (!pMessage) |
| 1023 return 0; | 1022 return; |
| 1024 | 1023 |
| 1025 CFWL_MessageType dwMsgCode = pMessage->GetClassID(); | 1024 CFWL_MessageType dwMsgCode = pMessage->GetClassID(); |
| 1026 int32_t iRet = 1; | |
| 1027 switch (dwMsgCode) { | 1025 switch (dwMsgCode) { |
| 1028 case CFWL_MessageType::SetFocus: { | 1026 case CFWL_MessageType::SetFocus: { |
| 1029 OnFocusChanged(pMessage, TRUE); | 1027 OnFocusChanged(pMessage, TRUE); |
| 1030 break; | 1028 break; |
| 1031 } | 1029 } |
| 1032 case CFWL_MessageType::KillFocus: { | 1030 case CFWL_MessageType::KillFocus: { |
| 1033 OnFocusChanged(pMessage, FALSE); | 1031 OnFocusChanged(pMessage, FALSE); |
| 1034 break; | 1032 break; |
| 1035 } | 1033 } |
| 1036 case CFWL_MessageType::Key: { | 1034 case CFWL_MessageType::Key: { |
| (...skipping 17 matching lines...) Expand all Loading... |
| 1054 case FWL_MouseCommand::Leave: { | 1052 case FWL_MouseCommand::Leave: { |
| 1055 OnMouseLeave(pMouse); | 1053 OnMouseLeave(pMouse); |
| 1056 break; | 1054 break; |
| 1057 } | 1055 } |
| 1058 default: | 1056 default: |
| 1059 break; | 1057 break; |
| 1060 } | 1058 } |
| 1061 break; | 1059 break; |
| 1062 } | 1060 } |
| 1063 default: { | 1061 default: { |
| 1064 iRet = 0; | |
| 1065 break; | 1062 break; |
| 1066 } | 1063 } |
| 1067 } | 1064 } |
| 1068 CFWL_WidgetImpDelegate::OnProcessMessage(pMessage); | 1065 CFWL_WidgetImpDelegate::OnProcessMessage(pMessage); |
| 1069 return iRet; | |
| 1070 } | 1066 } |
| 1071 | 1067 |
| 1072 FWL_ERR CFWL_MonthCalendarImpDelegate::OnDrawWidget(CFX_Graphics* pGraphics, | 1068 void CFWL_MonthCalendarImpDelegate::OnDrawWidget(CFX_Graphics* pGraphics, |
| 1073 const CFX_Matrix* pMatrix) { | 1069 const CFX_Matrix* pMatrix) { |
| 1074 return m_pOwner->DrawWidget(pGraphics, pMatrix); | 1070 m_pOwner->DrawWidget(pGraphics, pMatrix); |
| 1075 } | 1071 } |
| 1076 | 1072 |
| 1077 void CFWL_MonthCalendarImpDelegate::OnActivate(CFWL_Message* pMsg) {} | 1073 void CFWL_MonthCalendarImpDelegate::OnActivate(CFWL_Message* pMsg) {} |
| 1078 | 1074 |
| 1079 void CFWL_MonthCalendarImpDelegate::OnFocusChanged(CFWL_Message* pMsg, | 1075 void CFWL_MonthCalendarImpDelegate::OnFocusChanged(CFWL_Message* pMsg, |
| 1080 FX_BOOL bSet) { | 1076 FX_BOOL bSet) { |
| 1081 if (bSet) { | 1077 if (bSet) { |
| 1082 m_pOwner->m_pProperties->m_dwStates |= FWL_WGTSTATE_Focused; | 1078 m_pOwner->m_pProperties->m_dwStates |= FWL_WGTSTATE_Focused; |
| 1083 } else { | 1079 } else { |
| 1084 m_pOwner->m_pProperties->m_dwStates &= ~FWL_WGTSTATE_Focused; | 1080 m_pOwner->m_pProperties->m_dwStates &= ~FWL_WGTSTATE_Focused; |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1189 if (m_pOwner->m_iHovered > 0) { | 1185 if (m_pOwner->m_iHovered > 0) { |
| 1190 CFX_RectF rtInvalidate; | 1186 CFX_RectF rtInvalidate; |
| 1191 rtInvalidate.Set(0, 0, 0, 0); | 1187 rtInvalidate.Set(0, 0, 0, 0); |
| 1192 m_pOwner->GetDayRect(m_pOwner->m_iHovered, rtInvalidate); | 1188 m_pOwner->GetDayRect(m_pOwner->m_iHovered, rtInvalidate); |
| 1193 m_pOwner->m_iHovered = -1; | 1189 m_pOwner->m_iHovered = -1; |
| 1194 if (!rtInvalidate.IsEmpty()) { | 1190 if (!rtInvalidate.IsEmpty()) { |
| 1195 m_pOwner->Repaint(&rtInvalidate); | 1191 m_pOwner->Repaint(&rtInvalidate); |
| 1196 } | 1192 } |
| 1197 } | 1193 } |
| 1198 } | 1194 } |
| OLD | NEW |