84 lines
1.8 KiB
C++
84 lines
1.8 KiB
C++
#ifndef UI_CORE_TABBOX_H_
|
||
#define UI_CORE_TABBOX_H_
|
||
|
||
#pragma once
|
||
|
||
namespace ui
|
||
{
|
||
|
||
class UILIB_API TabBox : public Box
|
||
{
|
||
public:
|
||
TabBox(Layout* pLayout = new Layout());
|
||
|
||
/// 重写父类方法,提供个性化功能,请参考父类声明
|
||
virtual bool Add(Control* pControl) override;
|
||
virtual bool AddAt(Control* pControl, std::size_t iIndex) override;
|
||
virtual bool Remove(Control* pControl) override;
|
||
virtual bool RemoveAt(std::size_t iIndex) override;
|
||
virtual void RemoveAll() override;
|
||
virtual void SetAttribute(const std::wstring& strName, const std::wstring& strValue) override;
|
||
|
||
/**
|
||
* @brief 获取当前选择项
|
||
* @return 返回当前选择项索引
|
||
*/
|
||
int GetCurSel() const;
|
||
|
||
/**
|
||
* @brief 根据控件索引选择一个子项
|
||
* @param[in] iIndex 要选择的子项索引
|
||
* @return 成功返回 true,否则返回 false
|
||
*/
|
||
bool SelectItem(int iIndex);
|
||
|
||
/**
|
||
* @brief 根据控件指针选择一个子项
|
||
* @param[in] pControl 要选择的子项指针
|
||
* @return 成功返回 true,否则返回 false
|
||
*/
|
||
bool SelectItem(Control* pControl);
|
||
|
||
/**
|
||
* @brief 根据控件名称选择一个子项
|
||
* @param[in] pControlName 要选择的控件名称
|
||
* @return 成功返回 true,否则返回 false
|
||
*/
|
||
bool SelectItem(const std::wstring& pControlName);
|
||
|
||
/**
|
||
* @brief 设置是否显示动画效果
|
||
* @param[in] bFadeSwitch 设置为 true 则显示,false 为不显示动画
|
||
* @return 无
|
||
*/
|
||
void SetFadeSwitch(bool bFadeSwitch);
|
||
|
||
/**
|
||
* @brief 判断是否需要显示动画效果
|
||
* @return 返回 true 显示动画,false 为不显示动画效果
|
||
*/
|
||
bool IsFadeSwitch() { return m_bFadeSwith; }
|
||
|
||
protected:
|
||
/**
|
||
* @brief 显示一个 TAB 项
|
||
* @param[in] it TAB 项索引
|
||
* @return 无
|
||
*/
|
||
void ShowTabItem(std::size_t it);
|
||
|
||
/**
|
||
* @brief 隐藏一个 TAB 项
|
||
* @param[in] it TAB 项索引
|
||
* @return 无
|
||
*/
|
||
void HideTabItem(std::size_t it);
|
||
|
||
protected:
|
||
int m_iCurSel;
|
||
bool m_bFadeSwith;
|
||
};
|
||
|
||
}
|
||
#endif // UI_CORE_TABBOX_H_
|