1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131
|
#include "ExportDefine.h"
#include "ExportMarshaling.h"
#include "Generate/MyGUI_Export_MarshalingWidget.h"
#include "ExportMarshalingType.h"
#include <MyGUI.h>
#include "MyGUI_LogManager.h"
namespace Export
{
//struct HasManagedParentTrait { };
MYGUIEXPORT MyGUI::Widget* MYGUICALL ExportGui_CreateWidget(
MyGUI::Widget* _parent,
Convert<MyGUI::WidgetStyle>::Type _style,
Convert<const std::string&>::Type _type,
Convert<const std::string&>::Type _skin,
Convert<MyGUI::IntCoord>::Type _coord,
Convert<MyGUI::Align>::Type _align,
Convert<const std::string&>::Type _layer,
Convert<const std::string&>::Type _name
)
{
MyGUI::WidgetPtr widget = nullptr;
if (_parent == nullptr)
{
widget = MyGUI::Gui::getInstance().createWidgetT(
Convert<const std::string&>::From(_type),
Convert<const std::string&>::From(_skin),
Convert<const MyGUI::IntCoord&>::From(_coord),
Convert<MyGUI::Align>::From(_align),
Convert<const std::string&>::From(_layer),
Convert<const std::string&>::From(_name));
}
else
{
widget = _parent->createWidgetT(
Convert<MyGUI::WidgetStyle>::From(_style),
Convert<const std::string&>::From(_type),
Convert<const std::string&>::From(_skin),
Convert<const MyGUI::IntCoord&>::From(_coord),
Convert<MyGUI::Align>::From(_align),
Convert<const std::string&>::From(_layer),
Convert<const std::string&>::From(_name));
}
return widget;
}
MYGUIEXPORT void MYGUICALL ExportGui_ExportTest()
{
MyGUI::xml::Document* doc = new MyGUI::xml::Document();
doc->createDeclaration();
doc->save(MyGUI::UString("MyGUI_ExportTest.xml"));
delete doc;
}
MYGUIEXPORT void MYGUICALL ExportGui_DestroyWidget( MyGUI::Widget* _widget )
{
MyGUI::WidgetManager::getInstance().destroyWidget(_widget);
}
MYGUIEXPORT void MYGUICALL ExportGui_WrapWidget(MyGUI::Widget* _widget )
{
//_widget->setUserData(_wrapper);
_widget->setUserString("Internal__HasManagedParent", "");
}
MYGUIEXPORT void MYGUICALL ExportGui_UnwrapWidget( MyGUI::Widget* _widget )
{
//_widget->setUserData(MyGUI::Any::Null);
_widget->clearUserString("Internal__HasManagedParent");
}
MYGUIEXPORT MyGUI::Widget* MYGUICALL ExportGui_GetManagedParent( MyGUI::Widget* _widget )
{
MyGUI::Widget* parent = _widget->getParent();
while (parent != nullptr)
{
if (parent->isUserString("Internal__HasManagedParent"))
return parent;
parent = parent->getParent();
}
return nullptr;
}
MYGUIEXPORT Convert<const std::string&>::Type MYGUICALL ExportGui_GetWidgetType( MyGUI::Widget* _widget )
{
return Convert<const std::string&>::To(_widget->getTypeName());
}
MYGUIEXPORT void MYGUICALL ExportGui_LoadResource(
Convert<const std::string&>::Type _source)
{
MyGUI::ResourceManager::getInstance().load(
Convert<const std::string&>::From(_source) );
}
MYGUIEXPORT void MYGUICALL ExportGui_SetProperty(
MyGUI::Widget* _widget,
Convert<const std::string&>::Type _key ,
Convert<const MyGUI::UString &>::Type _value )
{
const MyGUI::UString & value = Convert<const MyGUI::UString &>::From(_value);
_widget->setProperty(
Convert<const std::string&>::From(_key) ,
value.asUTF8());
}
MYGUIEXPORT Convert<const std::string&>::Type MYGUICALL ExportGui_GetPath(
Convert<const std::string&>::Type _filename)
{
return Convert<const std::string&>::To(
MyGUI::DataManager::getInstance().getDataPath(
Convert<const std::string&>::From(_filename) )
);
}
MYGUIEXPORT void MYGUICALL ExportGui_Log(
Convert<const std::string&>::Type _section,
Convert<MyGUI::LogLevel>::Type _level,
Convert<const std::string&>::Type _message )
{
MyGUI::LogManager::getInstance().log(
Convert<const std::string&>::From(_section),
Convert<MyGUI::LogLevel>::From(_level),
Convert<const std::string&>::From(_message),
__FILE__,
__LINE__);
}
}
|