nim_duilib/duilib/Control/Slider.h

93 lines
2.0 KiB
C
Raw Normal View History

2019-04-19 17:19:57 +08:00
#ifndef UI_CONTROL_SLIDER_H_
#define UI_CONTROL_SLIDER_H_
#pragma once
namespace ui
{
class UILIB_API Slider : public Progress
{
public:
Slider();
/// <20><>д<EFBFBD><D0B4><EFBFBD><EFBFBD><E0B7BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E1B9A9><EFBFBD>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD>ο<EFBFBD><CEBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual UiRect GetProgressPos() override;
virtual void HandleMessage(EventArgs& event) override;
virtual void SetAttribute(const std::wstring& strName, const std::wstring& strValue) override;
virtual void PaintStatusImage(IRenderContext* pRender) override;
virtual void ClearImageCache() override;
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
int GetChangeStep();
/**
* @brief <EFBFBD><EFBFBD><EFBFBD>ò<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param[in] step Ҫ<EFBFBD><EFBFBD><EFBFBD>õIJ<EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD><EFBFBD>
*/
void SetChangeStep(int step);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD>ö<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD>С
* @param[in] szXY Ҫ<EFBFBD><EFBFBD><EFBFBD>õĴ<EFBFBD>С
* @return <EFBFBD><EFBFBD>
*/
void SetThumbSize(CSize szXY);
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ľ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
* @return <EFBFBD><EFBFBD><EFBFBD>ػ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ľ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
*/
UiRect GetThumbRect() const;
/**
* @brief <EFBFBD><EFBFBD>ȡָ<EFBFBD><EFBFBD>״̬<EFBFBD>»<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼƬ
* @param[in] stateType Ҫ<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>״̬<EFBFBD><EFBFBD>ʶ<EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD> ControlStateType ö<EFBFBD><EFBFBD>
* @return <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼƬ·<EFBFBD><EFBFBD>
*/
std::wstring GetThumbStateImage(ControlStateType stateType);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>״̬<EFBFBD>»<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼƬ
* @param[in] stateType Ҫ<EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>״̬<EFBFBD><EFBFBD>ʶ<EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD> ControlStateType ö<EFBFBD><EFBFBD>
* @param[in] pStrImage Ҫ<EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>ͼƬλ<EFBFBD><EFBFBD>
* @return <EFBFBD><EFBFBD>
*/
void SetThumbStateImage(ControlStateType stateType, const std::wstring& pStrImage);
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڱ߾<EFBFBD>
* @return <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڱ߾<EFBFBD><EFBFBD><EFBFBD>Ϣ
*/
UiRect GetProgressBarPadding() const;
/**
* @brief <EFBFBD><EFBFBD><EFBFBD>ý<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڱ߾<EFBFBD>
* @param[in] rc Ҫ<EFBFBD><EFBFBD><EFBFBD>õı߾<EFBFBD><EFBFBD><EFBFBD>Ϣ
* @return <EFBFBD><EFBFBD>
*/
void SetProgressBarPadding(UiRect rc);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȸı<EFBFBD><EFBFBD>¼<EFBFBD>
* @param[in] callback <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȸı<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õĻص<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <EFBFBD><EFBFBD>
*/
void AttachValueChange(const EventCallback& callback) { OnEvent[kEventValueChange] += callback; }
protected:
int m_nStep;
CSize m_szThumb;
StateImage m_thumbStateImage;
UiRect m_rcProgressBarPadding;
ControlStateType m_uButtonState;
std::wstring m_sImageModify;
};
}
#endif // UI_CONTROL_SLIDER_H_