Files
EzUI/sources/IFrame.cpp

56 lines
1.3 KiB
C++
Raw Permalink Normal View History

2026-01-24 22:42:46 +08:00
#include "IFrame.h"
namespace ezui {
IFrame::IFrame(Object* parentObject) :Control(parentObject)
{
}
IFrame::~IFrame()
{
}
UIManager* IFrame::GetUIManager()
{
return &m_umg;
}
void IFrame::SetAttribute(const UIString& attrName, const UIString& attrValue) {
if (attrName == "src") {
LoadXml(attrValue);
}
__super::SetAttribute(attrName, attrValue);
};
void IFrame::LoadXml(const UIString& fileName) {
m_umg.LoadXml(fileName);
m_umg.SetupUI(this);
}
void IFrame::LoadXml(const char* fileData, size_t fileSize) {
m_umg.LoadXml(fileData, fileSize);
m_umg.SetupUI(this);
}
Control* IFrame::Add(Control* childCtrl)
{
//IFrame下只允许有一个控件并且会随着IFrame拉伸
this->Clear();
if (childCtrl) {
auto* ctrl = __super::Add(childCtrl);
childCtrl->SetDockStyle(DockStyle::Fill);
return ctrl;
}
return NULL;
}
void IFrame::Remove(Control* childCtl, bool freeCtrl)
{
__super::Remove(childCtl, freeCtrl);
}
void IFrame::SetLayout(Control* ctrl) {
this->Add(ctrl);
}
Control* IFrame::GetLayout() {
return this->GetControl(0);
}
void IFrame::OnNotify(Control* sender, EventArgs& args) {
if (this->NotifyHandler) {
this->NotifyHandler(sender, args);
}
else {
ezui::DefaultNotify(sender, args);
}
}
}