blob: 25f8a7f574cec2d6ea81f41ff2e74f4104516f6b [file] [log] [blame]
// 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_