xref: /aosp_15_r20/external/pdfium/xfa/fwl/cfwl_themepart.h (revision 3ac0a46f773bac49fa9476ec2b1cf3f8da5ec3a4)
1*3ac0a46fSAndroid Build Coastguard Worker // Copyright 2016 The PDFium Authors
2*3ac0a46fSAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be
3*3ac0a46fSAndroid Build Coastguard Worker // found in the LICENSE file.
4*3ac0a46fSAndroid Build Coastguard Worker 
5*3ac0a46fSAndroid Build Coastguard Worker // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6*3ac0a46fSAndroid Build Coastguard Worker 
7*3ac0a46fSAndroid Build Coastguard Worker #ifndef XFA_FWL_CFWL_THEMEPART_H_
8*3ac0a46fSAndroid Build Coastguard Worker #define XFA_FWL_CFWL_THEMEPART_H_
9*3ac0a46fSAndroid Build Coastguard Worker 
10*3ac0a46fSAndroid Build Coastguard Worker #include <stdint.h>
11*3ac0a46fSAndroid Build Coastguard Worker 
12*3ac0a46fSAndroid Build Coastguard Worker #include "core/fxcrt/fx_coordinates.h"
13*3ac0a46fSAndroid Build Coastguard Worker #include "core/fxcrt/fx_memory.h"
14*3ac0a46fSAndroid Build Coastguard Worker #include "core/fxcrt/mask.h"
15*3ac0a46fSAndroid Build Coastguard Worker #include "core/fxcrt/unowned_ptr.h"
16*3ac0a46fSAndroid Build Coastguard Worker #include "xfa/fwl/theme/cfwl_utils.h"
17*3ac0a46fSAndroid Build Coastguard Worker 
18*3ac0a46fSAndroid Build Coastguard Worker class CFWL_Widget;
19*3ac0a46fSAndroid Build Coastguard Worker 
20*3ac0a46fSAndroid Build Coastguard Worker enum class CFWL_PartState : uint16_t {
21*3ac0a46fSAndroid Build Coastguard Worker   kNormal = 0,
22*3ac0a46fSAndroid Build Coastguard Worker   kChecked = 1 << 1,
23*3ac0a46fSAndroid Build Coastguard Worker   kDefault = 1 << 2,
24*3ac0a46fSAndroid Build Coastguard Worker   kDisabled = 1 << 3,
25*3ac0a46fSAndroid Build Coastguard Worker   kFlagged = 1 << 4,
26*3ac0a46fSAndroid Build Coastguard Worker   kFocused = 1 << 5,
27*3ac0a46fSAndroid Build Coastguard Worker   kHightLight = 1 << 6,
28*3ac0a46fSAndroid Build Coastguard Worker   kHovered = 1 << 7,
29*3ac0a46fSAndroid Build Coastguard Worker   kNeutral = 1 << 9,
30*3ac0a46fSAndroid Build Coastguard Worker   kPressed = 1 << 10,
31*3ac0a46fSAndroid Build Coastguard Worker   kReadOnly = 1 << 11,
32*3ac0a46fSAndroid Build Coastguard Worker   kLSelected = 1 << 12,
33*3ac0a46fSAndroid Build Coastguard Worker   kRSelected = 1 << 13,
34*3ac0a46fSAndroid Build Coastguard Worker   kSelected = 1 << 14
35*3ac0a46fSAndroid Build Coastguard Worker };
36*3ac0a46fSAndroid Build Coastguard Worker 
37*3ac0a46fSAndroid Build Coastguard Worker class CFWL_ThemePart {
38*3ac0a46fSAndroid Build Coastguard Worker  public:
39*3ac0a46fSAndroid Build Coastguard Worker   enum class Part : uint8_t {
40*3ac0a46fSAndroid Build Coastguard Worker     kNone = 0,
41*3ac0a46fSAndroid Build Coastguard Worker 
42*3ac0a46fSAndroid Build Coastguard Worker     kBackArrow,
43*3ac0a46fSAndroid Build Coastguard Worker     kBackground,
44*3ac0a46fSAndroid Build Coastguard Worker     kBorder,
45*3ac0a46fSAndroid Build Coastguard Worker     kCaption,
46*3ac0a46fSAndroid Build Coastguard Worker     kCheck,
47*3ac0a46fSAndroid Build Coastguard Worker     kCheckBox,
48*3ac0a46fSAndroid Build Coastguard Worker     kCloseBox,
49*3ac0a46fSAndroid Build Coastguard Worker     kCombTextLine,
50*3ac0a46fSAndroid Build Coastguard Worker     kDateInBK,
51*3ac0a46fSAndroid Build Coastguard Worker     kDateInCircle,
52*3ac0a46fSAndroid Build Coastguard Worker     kDatesIn,
53*3ac0a46fSAndroid Build Coastguard Worker     kDatesOut,
54*3ac0a46fSAndroid Build Coastguard Worker     kDownButton,
55*3ac0a46fSAndroid Build Coastguard Worker     kDropDownButton,
56*3ac0a46fSAndroid Build Coastguard Worker     kForeArrow,
57*3ac0a46fSAndroid Build Coastguard Worker     kHSeparator,
58*3ac0a46fSAndroid Build Coastguard Worker     kHeadText,
59*3ac0a46fSAndroid Build Coastguard Worker     kHeader,
60*3ac0a46fSAndroid Build Coastguard Worker     kIcon,
61*3ac0a46fSAndroid Build Coastguard Worker     kImage,
62*3ac0a46fSAndroid Build Coastguard Worker     kLBtn,
63*3ac0a46fSAndroid Build Coastguard Worker     kListItem,
64*3ac0a46fSAndroid Build Coastguard Worker     kLowerTrack,
65*3ac0a46fSAndroid Build Coastguard Worker     kMinimizeBox,
66*3ac0a46fSAndroid Build Coastguard Worker     kMaximizeBox,
67*3ac0a46fSAndroid Build Coastguard Worker     kNarrowCaption,
68*3ac0a46fSAndroid Build Coastguard Worker     kRBtn,
69*3ac0a46fSAndroid Build Coastguard Worker     kThumb,
70*3ac0a46fSAndroid Build Coastguard Worker     kThumbBackArrow,
71*3ac0a46fSAndroid Build Coastguard Worker     kThumbForeArrow,
72*3ac0a46fSAndroid Build Coastguard Worker     kThumbLowerTrack,
73*3ac0a46fSAndroid Build Coastguard Worker     kThumbThumb,
74*3ac0a46fSAndroid Build Coastguard Worker     kThumbUpperTrack,
75*3ac0a46fSAndroid Build Coastguard Worker     kToday,
76*3ac0a46fSAndroid Build Coastguard Worker     kTodayCircle,
77*3ac0a46fSAndroid Build Coastguard Worker     kUpButton,
78*3ac0a46fSAndroid Build Coastguard Worker     kUpperTrack,
79*3ac0a46fSAndroid Build Coastguard Worker     kVSeparator,
80*3ac0a46fSAndroid Build Coastguard Worker     kWeek,
81*3ac0a46fSAndroid Build Coastguard Worker     kWeekNum,
82*3ac0a46fSAndroid Build Coastguard Worker     kWeekNumSep
83*3ac0a46fSAndroid Build Coastguard Worker   };
84*3ac0a46fSAndroid Build Coastguard Worker 
85*3ac0a46fSAndroid Build Coastguard Worker   FX_STACK_ALLOCATED();
86*3ac0a46fSAndroid Build Coastguard Worker 
87*3ac0a46fSAndroid Build Coastguard Worker   CFWL_ThemePart(Part iPart, CFWL_Widget* pWidget);
88*3ac0a46fSAndroid Build Coastguard Worker   ~CFWL_ThemePart();
89*3ac0a46fSAndroid Build Coastguard Worker 
GetPart()90*3ac0a46fSAndroid Build Coastguard Worker   Part GetPart() const { return m_iPart; }
GetWidget()91*3ac0a46fSAndroid Build Coastguard Worker   CFWL_Widget* GetWidget() const { return m_pWidget; }
92*3ac0a46fSAndroid Build Coastguard Worker   FWLTHEME_STATE GetThemeState() const;
93*3ac0a46fSAndroid Build Coastguard Worker 
94*3ac0a46fSAndroid Build Coastguard Worker   CFX_Matrix m_matrix;
95*3ac0a46fSAndroid Build Coastguard Worker   CFX_RectF m_PartRect;
96*3ac0a46fSAndroid Build Coastguard Worker   UnownedPtr<const CFX_RectF> m_pRtData;
97*3ac0a46fSAndroid Build Coastguard Worker   Mask<CFWL_PartState> m_dwStates = CFWL_PartState::kNormal;
98*3ac0a46fSAndroid Build Coastguard Worker   bool m_bMaximize = false;
99*3ac0a46fSAndroid Build Coastguard Worker   bool m_bStaticBackground = false;
100*3ac0a46fSAndroid Build Coastguard Worker 
101*3ac0a46fSAndroid Build Coastguard Worker  private:
102*3ac0a46fSAndroid Build Coastguard Worker   const Part m_iPart;
103*3ac0a46fSAndroid Build Coastguard Worker   UnownedPtr<CFWL_Widget> const m_pWidget;
104*3ac0a46fSAndroid Build Coastguard Worker };
105*3ac0a46fSAndroid Build Coastguard Worker 
106*3ac0a46fSAndroid Build Coastguard Worker #endif  // XFA_FWL_CFWL_THEMEPART_H_
107