cfwl_monthcalendartp.h revision 4d3acf4ec42bf6e838f9060103aff98fbf170794
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 XFA_FWL_THEME_CFWL_MONTHCALENDARTP_H_ 8#define XFA_FWL_THEME_CFWL_MONTHCALENDARTP_H_ 9 10#include <memory> 11 12#include "xfa/fwl/theme/cfwl_widgettp.h" 13 14class CFWL_MonthCalendarTP : public CFWL_WidgetTP { 15 public: 16 CFWL_MonthCalendarTP(); 17 ~CFWL_MonthCalendarTP() override; 18 19 // CFWL_WidgetTP 20 void Initialize() override; 21 void Finalize() override; 22 void DrawBackground(CFWL_ThemeBackground* pParams) override; 23 void DrawText(CFWL_ThemeText* pParams) override; 24 25 protected: 26 struct MCThemeData { 27 FX_ARGB clrCaption; 28 FX_ARGB clrSeperator; 29 FX_ARGB clrDatesHoverBK; 30 FX_ARGB clrDatesSelectedBK; 31 FX_ARGB clrDatesCircle; 32 FX_ARGB clrToday; 33 FX_ARGB clrBK; 34 }; 35 36 void DrawTotalBK(CFWL_ThemeBackground* pParams, CFX_Matrix* pMatrix); 37 void DrawHeadBk(CFWL_ThemeBackground* pParams, CFX_Matrix* pMatrix); 38 void DrawLButton(CFWL_ThemeBackground* pParams, CFX_Matrix* pMatrix); 39 void DrawRButton(CFWL_ThemeBackground* pParams, CFX_Matrix* pMatrix); 40 void DrawDatesInBK(CFWL_ThemeBackground* pParams, CFX_Matrix* pMatrix); 41 void DrawDatesInCircle(CFWL_ThemeBackground* pParams, CFX_Matrix* pMatrix); 42 void DrawTodayCircle(CFWL_ThemeBackground* pParams, CFX_Matrix* pMatrix); 43 void DrawHSeperator(CFWL_ThemeBackground* pParams, CFX_Matrix* pMatrix); 44 void DrawWeekNumSep(CFWL_ThemeBackground* pParams, CFX_Matrix* pMatrix); 45 FWLTHEME_STATE GetState(uint32_t dwFWLStates); 46 47 std::unique_ptr<MCThemeData> m_pThemeData; 48 CFX_WideString wsResource; 49 50 private: 51 void SetThemeData(); 52}; 53 54#endif // XFA_FWL_THEME_CFWL_MONTHCALENDARTP_H_ 55