107 lines
2.1 KiB
C++
107 lines
2.1 KiB
C++
// 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_
|