98 lines
1.8 KiB
C++
98 lines
1.8 KiB
C++
#ifndef UI_UTILS_SHADOW_H_
|
||
#define UI_UTILS_SHADOW_H_
|
||
|
||
#pragma once
|
||
|
||
namespace ui
|
||
{
|
||
|
||
class Box;
|
||
class UILIB_API Shadow
|
||
{
|
||
public:
|
||
Shadow();
|
||
|
||
/**
|
||
* @brief 设置是否附加阴影效果
|
||
* @param[in] bShadowAttached 设置 true 为是,false 为否
|
||
* @return 无
|
||
*/
|
||
void SetShadowAttached(bool bShadowAttached) { m_bShadowAttached = bShadowAttached; }
|
||
|
||
/**
|
||
* @brief 判断是否已经附加了阴影
|
||
* @return 返回 true 表示已经附加,否则为 false
|
||
*/
|
||
bool IsShadowAttached() const { return m_bShadowAttached; }
|
||
|
||
/**
|
||
* @brief 设置阴影的九宫格属性
|
||
* @param[in] rect 要设置的九宫格属性
|
||
* @return 无
|
||
*/
|
||
void SetShadowCorner(const UiRect &rect);
|
||
|
||
/**
|
||
* @brief 获取阴影的九宫格属性
|
||
* @return 返回阴影的九宫格属性
|
||
*/
|
||
UiRect GetShadowCorner() const;
|
||
|
||
/**
|
||
* @brief 根据初始化的阴影范围重置阴影边框
|
||
* @return 无
|
||
*/
|
||
void ResetShadowBox();
|
||
|
||
/**
|
||
* @brief 设置阴影图片
|
||
* @param[in] image 图片路径
|
||
* @return 无
|
||
*/
|
||
void SetShadowImage(const std::wstring &image);
|
||
|
||
/**
|
||
* @brief 获取阴影图片位置
|
||
* @return 返回阴影图片位置
|
||
*/
|
||
std::wstring GetShadowImage() const;
|
||
|
||
/**
|
||
* @brief 将阴影附加到窗口
|
||
* @param[in] pRoot 窗口的顶层容器
|
||
* @return 返回附加阴影后的容器指针
|
||
*/
|
||
Box* AttachShadow(Box* pRoot);
|
||
|
||
/**
|
||
* @brief 设置窗口最大化还是还原状态
|
||
* @param[in] isMaximized 设置为 true 表示最大化,false 为还原初始状态
|
||
* @return 无
|
||
*/
|
||
void MaximizedOrRestored(bool isMaximized);
|
||
|
||
/**
|
||
* @brief 获取附加阴影后的容器指针
|
||
* @return 返回容器指针
|
||
*/
|
||
Control* GetRoot();
|
||
|
||
/**
|
||
* @brief 清理图片缓存
|
||
* @return 无
|
||
*/
|
||
void ClearImageCache();
|
||
private:
|
||
bool m_bShadowAttached;
|
||
bool m_bUseDefaultImage;
|
||
std::wstring m_strImage;
|
||
UiRect m_rcCurShadowCorner;
|
||
UiRect m_rcDefaultShadowCorner;
|
||
UiRect m_rcShadowCornerBackup;
|
||
|
||
Box* m_pRoot;
|
||
};
|
||
|
||
}
|
||
|
||
#endif // UI_UTILS_SHADOW_H_
|