|
|
@@ -0,0 +1,66 @@
|
|
|
+#include "BsScriptGUIContent.h"
|
|
|
+#include "BsScriptMeta.h"
|
|
|
+#include "BsMonoField.h"
|
|
|
+#include "BsMonoClass.h"
|
|
|
+#include "BsMonoManager.h"
|
|
|
+#include "BsMonoUtil.h"
|
|
|
+#include "BsScriptHString.h"
|
|
|
+#include "BsScriptGUIContent.h"
|
|
|
+#include "BsScriptSpriteTexture.h"
|
|
|
+#include "BsSpriteTexture.h"
|
|
|
+
|
|
|
+using namespace CamelotFramework;
|
|
|
+
|
|
|
+namespace BansheeEngine
|
|
|
+{
|
|
|
+ MonoField* ScriptGUIContent::mTextField;
|
|
|
+ MonoField* ScriptGUIContent::mTooltipField;
|
|
|
+ MonoField* ScriptGUIContent::mImageField;
|
|
|
+
|
|
|
+ void ScriptGUIContent::initMetaData()
|
|
|
+ {
|
|
|
+ metaData = ScriptMeta("MBansheeEngine", "BansheeEngine", "GUIContent", &ScriptGUIContent::initRuntimeData);
|
|
|
+
|
|
|
+ MonoManager::registerScriptType(&metaData);
|
|
|
+ }
|
|
|
+
|
|
|
+ void ScriptGUIContent::initRuntimeData()
|
|
|
+ {
|
|
|
+ mTextField = &metaData.scriptClass->getField("_text");
|
|
|
+ mTooltipField = &metaData.scriptClass->getField("_tooltip");
|
|
|
+ mImageField = &metaData.scriptClass->getField("_image");
|
|
|
+ }
|
|
|
+
|
|
|
+ const CM::HString& ScriptGUIContent::getText(MonoObject* instance)
|
|
|
+ {
|
|
|
+ MonoObject* textManaged = (MonoObject*)mTextField->getValue(instance);
|
|
|
+
|
|
|
+ if(textManaged == nullptr)
|
|
|
+ return HString::dummy();
|
|
|
+
|
|
|
+ ScriptHString* textScript = ScriptHString::toNative(textManaged);
|
|
|
+ return textScript->getInternalValue();
|
|
|
+ }
|
|
|
+
|
|
|
+ const CM::HString& ScriptGUIContent::getTooltip(MonoObject* instance)
|
|
|
+ {
|
|
|
+ MonoObject* tooltipManaged = (MonoObject*)mTooltipField->getValue(instance);
|
|
|
+
|
|
|
+ if(tooltipManaged == nullptr)
|
|
|
+ return HString::dummy();
|
|
|
+
|
|
|
+ ScriptHString* tooltipScript = ScriptHString::toNative(tooltipManaged);
|
|
|
+ return tooltipScript->getInternalValue();
|
|
|
+ }
|
|
|
+
|
|
|
+ const HSpriteTexture& ScriptGUIContent::getImage(MonoObject* instance)
|
|
|
+ {
|
|
|
+ MonoObject* imageManaged = (MonoObject*)mImageField->getValue(instance);
|
|
|
+
|
|
|
+ if(imageManaged == nullptr)
|
|
|
+ return SpriteTexture::dummy();
|
|
|
+
|
|
|
+ ScriptSpriteTexture* imageScript = ScriptSpriteTexture::toNative(imageManaged);
|
|
|
+ return imageScript->getInternalValue();
|
|
|
+ }
|
|
|
+}
|