| // Copyright 2016 The PDFium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
| |
| #ifndef XFA_FWL_CFWL_THEMEPART_H_ |
| #define XFA_FWL_CFWL_THEMEPART_H_ |
| |
| #include <stdint.h> |
| |
| #include "core/fxcrt/fx_coordinates.h" |
| #include "core/fxcrt/fx_memory.h" |
| #include "core/fxcrt/mask.h" |
| #include "core/fxcrt/unowned_ptr.h" |
| #include "xfa/fwl/theme/cfwl_utils.h" |
| |
| class CFWL_Widget; |
| |
| enum class CFWL_PartState : uint16_t { |
| kNormal = 0, |
| kChecked = 1 << 1, |
| kDefault = 1 << 2, |
| kDisabled = 1 << 3, |
| kFlagged = 1 << 4, |
| kFocused = 1 << 5, |
| kHightLight = 1 << 6, |
| kHovered = 1 << 7, |
| kNeutral = 1 << 9, |
| kPressed = 1 << 10, |
| kReadOnly = 1 << 11, |
| kLSelected = 1 << 12, |
| kRSelected = 1 << 13, |
| kSelected = 1 << 14 |
| }; |
| |
| class CFWL_ThemePart { |
| public: |
| enum class Part : uint8_t { |
| kNone = 0, |
| |
| kBackArrow, |
| kBackground, |
| kBorder, |
| kCaption, |
| kCheck, |
| kCheckBox, |
| kCloseBox, |
| kCombTextLine, |
| kDateInBK, |
| kDateInCircle, |
| kDatesIn, |
| kDatesOut, |
| kDownButton, |
| kDropDownButton, |
| kForeArrow, |
| kHSeparator, |
| kHeadText, |
| kHeader, |
| kIcon, |
| kImage, |
| kLBtn, |
| kListItem, |
| kLowerTrack, |
| kMinimizeBox, |
| kMaximizeBox, |
| kNarrowCaption, |
| kRBtn, |
| kThumb, |
| kThumbBackArrow, |
| kThumbForeArrow, |
| kThumbLowerTrack, |
| kThumbThumb, |
| kThumbUpperTrack, |
| kToday, |
| kTodayCircle, |
| kUpButton, |
| kUpperTrack, |
| kVSeparator, |
| kWeek, |
| kWeekNum, |
| kWeekNumSep |
| }; |
| |
| FX_STACK_ALLOCATED(); |
| |
| CFWL_ThemePart(Part iPart, CFWL_Widget* pWidget); |
| ~CFWL_ThemePart(); |
| |
| Part GetPart() const { return m_iPart; } |
| CFWL_Widget* GetWidget() const { return m_pWidget; } |
| FWLTHEME_STATE GetThemeState() const; |
| |
| CFX_Matrix m_matrix; |
| CFX_RectF m_PartRect; |
| UnownedPtr<const CFX_RectF> m_pRtData; |
| Mask<CFWL_PartState> m_dwStates = CFWL_PartState::kNormal; |
| bool m_bMaximize = false; |
| bool m_bStaticBackground = false; |
| |
| private: |
| const Part m_iPart; |
| UnownedPtr<CFWL_Widget> const m_pWidget; |
| }; |
| |
| #endif // XFA_FWL_CFWL_THEMEPART_H_ |