130 lines
2.6 KiB
C++
130 lines
2.6 KiB
C++
#ifndef UI_CONTROL_PROGRESS_H_
|
||
#define UI_CONTROL_PROGRESS_H_
|
||
|
||
#pragma once
|
||
|
||
namespace ui
|
||
{
|
||
|
||
class UILIB_API Progress : public LabelTemplate<Control>
|
||
{
|
||
public:
|
||
Progress();
|
||
|
||
/// 重写父类方法,提供个性化功能,请参考父类声明
|
||
virtual void SetAttribute(const std::wstring& strName, const std::wstring& strValue) override;
|
||
virtual void PaintStatusImage(IRenderContext* pRender) override;
|
||
virtual void ClearImageCache() override;
|
||
|
||
/**
|
||
* @brief 判断是否是水平进度条
|
||
* @return 返回 true 是水平进度条,false 为垂直滚动条
|
||
*/
|
||
bool IsHorizontal();
|
||
|
||
/**
|
||
* @brief 设置水平或垂直滚动条
|
||
* @param[in] bHorizontal 为 true 时设置为水平滚动条,false 时设置为垂直滚动条,默认为 true
|
||
* @return 无
|
||
*/
|
||
void SetHorizontal(bool bHorizontal = true);
|
||
|
||
/**
|
||
* @brief 获取进度条最小值
|
||
* @return 返回进度条最小值
|
||
*/
|
||
int GetMinValue() const;
|
||
|
||
/**
|
||
* @brief 设置进度条最小值
|
||
* @param[in] nMin 最小值数值
|
||
* @return 无
|
||
*/
|
||
void SetMinValue(int nMin);
|
||
|
||
/**
|
||
* @brief 获取进度条最大值
|
||
* @return 返回进度条最大值
|
||
*/
|
||
int GetMaxValue() const;
|
||
|
||
/**
|
||
* @brief 设置进度条最大值
|
||
* @param[in] nMax 要设置的最大值
|
||
* @return 无
|
||
*/
|
||
void SetMaxValue(int nMax);
|
||
|
||
/**
|
||
* @brief 获取当前进度百分比
|
||
* @return 返回当前进度百分比
|
||
*/
|
||
double GetValue() const;
|
||
|
||
/**
|
||
* @brief 设置当前进度百分比
|
||
* @param[in] nValue 要设置的百分比数值
|
||
* @return 无
|
||
*/
|
||
void SetValue(double nValue);
|
||
|
||
/**
|
||
* @brief 进度条前景图片是否缩放显示
|
||
* @return 返回 true 为缩放显示,false 为不缩放显示
|
||
*/
|
||
bool IsStretchForeImage();
|
||
|
||
/**
|
||
* @brief 设置进度条前景图片是否缩放显示
|
||
* @param[in] bStretchForeImage true 为缩放显示,false 为不缩放显示
|
||
* @return 无
|
||
*/
|
||
void SetStretchForeImage(bool bStretchForeImage = true);
|
||
|
||
/**
|
||
* @brief 获取滚动条背景图片
|
||
* @return 返回背景图片位置
|
||
*/
|
||
std::wstring GetProgressImage() const;
|
||
|
||
/**
|
||
* @brief 设置进度条背景图片
|
||
* @param[in] strImage 图片地址
|
||
* @return 无
|
||
*/
|
||
void SetProgressImage(const std::wstring& strImage);
|
||
|
||
/**
|
||
* @brief 获取进度条背景颜色
|
||
* @return 返回背景颜色的字符串值,对应 global.xml 中的指定色值
|
||
*/
|
||
std::wstring GetProgressColor() const;
|
||
|
||
/**
|
||
* @brief 设置进度条背景颜色
|
||
* @param[in] 要设置的背景颜色字符串,该字符串必须在 global.xml 中存在
|
||
* @return 无
|
||
*/
|
||
void SetProgressColor(const std::wstring& strProgressColor);
|
||
|
||
/**
|
||
* @brief 获取进度条位置
|
||
* @return 返回进度条当前位置
|
||
*/
|
||
virtual UiRect GetProgressPos();
|
||
|
||
protected:
|
||
bool m_bHorizontal;
|
||
bool m_bStretchForeImage;
|
||
int m_nMax;
|
||
int m_nMin;
|
||
double m_nValue;
|
||
Image m_progressImage;
|
||
std::wstring m_sProgressColor;
|
||
std::wstring m_sProgressImageModify;
|
||
};
|
||
|
||
} // namespace ui
|
||
|
||
#endif // UI_CONTROL_PROGRESS_H_
|