#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_