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