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