用于EagleEye3.0 规则集漏报和误报测试的示例项目,项目收集于github和gitee
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

64 lines
1.7 KiB

5 months ago
#pragma once
#include "core/SSingleton2.h"
#include <unknown/obj-ref-i.h>
#include <unknown/obj-ref-impl.hpp>
#include "interface/SResProvider-i.h"
#include "res.mgr/SSkinPool.h"
#include "res.mgr/SStylePool.h"
#include "res.mgr/SFontPool.h"
#include "res.mgr/SObjDefAttr.h"
#include "res.mgr/SNamedValue.h"
namespace SOUI
{
struct IUiDefInfo : IObjRef
{
virtual void SetSkinPool(SSkinPool * pSkinPool) = 0;
virtual SSkinPool * GetSkinPool() =0;
virtual void SetStylePool(SStylePool * pStylePool) = 0;
virtual SStylePool * GetStylePool() =0;
virtual void SetObjDefAttr(SObjDefAttr * pObjDefAttr) = 0;
virtual SObjDefAttr * GetObjDefAttr() = 0;
virtual STemplatePool * GetTemplatePool() = 0;
virtual void SetTemplatePool(STemplatePool *pPool) = 0;
virtual SNamedColor & GetNamedColor() =0;
virtual SNamedString & GetNamedString() =0;
virtual SNamedDimension & GetNamedDimension() = 0;
virtual FontInfo & GetDefFontInfo() = 0;
virtual pugi::xml_node GetCaretInfo() = 0;
};
typedef BOOL (*FunFontCheck)(const SStringW & strFontName);
class SOUI_EXP SUiDef : public SSingleton2<SUiDef>
{
SINGLETON2_TYPE(SINGLETON_UIDEF)
public:
SUiDef(void);
~SUiDef(void);
static IUiDefInfo * CreateUiDefInfo(IResProvider *pResProvider, LPCTSTR pszUiDef);
static IUiDefInfo * CreateUiDefInfo2(IResProvider *pResProvider, LPCTSTR pszUiDef);
IUiDefInfo * GetUiDef(){return m_pCurUiDef;}
void SetUiDef(IUiDefInfo* pUiDefInfo ,bool bUpdateDefFont);
static void SetFontChecker(FunFontCheck fontCheck);
static BOOL CheckFont(const SStringW & strFontName);
protected:
static FunFontCheck s_funFontCheck;
SAutoRefPtr<IUiDefInfo> m_pCurUiDef;
};
}