90 lines
2.2 KiB
C++
90 lines
2.2 KiB
C++
/** @file CircleProgress.h
|
||
* @brief 环型进度条控件,圆环中间可以有文本(如85%)
|
||
* @copyright (c) 2019-2022, NetEase Inc. All rights reserved
|
||
* @author Xuhuajie
|
||
* @date 2019/8/14
|
||
*/
|
||
|
||
#ifndef UI_CONTROL_CIRCLEPROGRESS_H_
|
||
#define UI_CONTROL_CIRCLEPROGRESS_H_
|
||
|
||
#pragma once
|
||
|
||
namespace ui
|
||
{
|
||
|
||
class UILIB_API CircleProgress : public Progress
|
||
{
|
||
public:
|
||
CircleProgress();
|
||
|
||
/// 重写父类方法,提供个性化功能,请参考父类声明
|
||
virtual void SetAttribute(const std::wstring& strName, const std::wstring& strValue) override;
|
||
virtual void PaintStatusImage(IRenderContext* pRender) override;
|
||
virtual void ClearImageCache() override;
|
||
|
||
/**
|
||
* @brief 设置环型进度条,默认为普通进度条
|
||
* @param[in] bCircular 为 true 时设置为环型进度条,false 时设置为父级进度条样式,默认为 true
|
||
* @return 无
|
||
*/
|
||
void SetCircular(bool bCircular = true);
|
||
|
||
/**
|
||
* @brief 设置递增方向
|
||
* @param[in] bClockwise 为 true 时设置为顺时针,false 时设置为逆时针,默认为 true
|
||
* @return 无
|
||
*/
|
||
void SetClockwiseRotation(bool bClockwise = true);
|
||
|
||
/**
|
||
* @brief 设置圆环宽度
|
||
* @param[in] nCircleWidth 宽度数值
|
||
* @return 无
|
||
*/
|
||
void SetCircleWidth(int nCircleWidth);
|
||
|
||
/**
|
||
* @brief 设置进度条背景颜色
|
||
* @param[in] strColor要设置的背景颜色字符串,该字符串必须在 global.xml 中存在
|
||
* @return 无
|
||
*/
|
||
void SetBackgroudColor(const std::wstring& strColor);
|
||
|
||
/**
|
||
* @brief 设置进度条前景颜色
|
||
* @param[in] strColor要设置的前景颜色字符串,该字符串必须在 global.xml 中存在
|
||
* @return 无
|
||
*/
|
||
void SetForegroudColor(const std::wstring& strColor);
|
||
|
||
/**
|
||
* @brief 设置进度条前景渐变颜色,与 SetForegroudColor 同时使用,可以不设置,则无渐变效果
|
||
* @param[in] strColor要设置的前景渐变颜色字符串,该字符串必须在 global.xml 中存在
|
||
* @return 无
|
||
*/
|
||
void SetCircleGradientColor(const std::wstring& strColor);
|
||
|
||
/**
|
||
* @brief 设置进度指示移动图标
|
||
* @param[in] sIndicatorImage 要设置的图片
|
||
* @return 无
|
||
*/
|
||
void SetIndicator(const std::wstring& sIndicatorImage);
|
||
|
||
protected:
|
||
bool m_bCircular;
|
||
bool m_bClockwise;
|
||
int m_nCircleWidth;
|
||
DWORD m_dwBackgroundColor;
|
||
DWORD m_dwForegroundColor;
|
||
DWORD m_dwGradientColor;
|
||
Gdiplus::Image* m_pIndicator; //此类目前维护资源管理
|
||
std::wstring m_sIndicatorImage;
|
||
|
||
};
|
||
|
||
} // namespace ui
|
||
|
||
#endif // UI_CONTROL_CIRCLEPROGRESS_H_
|