Quellcode durchsuchen

Managed GUILabel::setContent

Marko Pintera vor 12 Jahren
Ursprung
Commit
8f8a036520

+ 2 - 1
MBansheeEditor/ProjectSelectWindow.cs

@@ -12,7 +12,8 @@ namespace BansheeEditor
         public ProjectSelectWindow()
         public ProjectSelectWindow()
             :base(0, 0, 200, 200)
             :base(0, 0, 200, 200)
         {
         {
-            GUI.main.AddLabel("Test test");
+            GUILabel label = GUI.main.AddLabel("Test test");
+            label.SetContent("Test2");
         }
         }
     }
     }
 }
 }

+ 10 - 1
MBansheeEngine/GUILabel.cs

@@ -1,4 +1,5 @@
-using System.Runtime.CompilerServices;
+using System;
+using System.Runtime.CompilerServices;
 
 
 namespace BansheeEngine
 namespace BansheeEngine
 {
 {
@@ -9,7 +10,15 @@ namespace BansheeEngine
             Internal_CreateInstance(this, parentLayout, content, style, options);
             Internal_CreateInstance(this, parentLayout, content, style, options);
         }
         }
 
 
+        public void SetContent(GUIContent content)
+        {
+            Internal_SetContent(mCachedPtr, content);
+        }
+
         [MethodImpl(MethodImplOptions.InternalCall)]
         [MethodImpl(MethodImplOptions.InternalCall)]
         private static extern void Internal_CreateInstance(GUILabel instance, GUILayout layout, GUIContent content, GUIElementStyle style, GUIOption[] options);
         private static extern void Internal_CreateInstance(GUILabel instance, GUILayout layout, GUIContent content, GUIElementStyle style, GUIOption[] options);
+
+        [MethodImpl(MethodImplOptions.InternalCall)]
+        private static extern void Internal_SetContent(IntPtr nativeInstance, GUIContent content);
     }
     }
 }
 }

+ 1 - 0
SBansheeEngine/Include/BsScriptGUILabel.h

@@ -16,6 +16,7 @@ namespace BansheeEngine
 	private:
 	private:
 		static void internal_createInstance(MonoObject* instance, MonoObject* parentLayout, MonoObject* content, MonoObject* style, MonoArray* guiOptions);
 		static void internal_createInstance(MonoObject* instance, MonoObject* parentLayout, MonoObject* content, MonoObject* style, MonoArray* guiOptions);
 		static void internal_destroyInstance(ScriptGUILabel* nativeInstance);
 		static void internal_destroyInstance(ScriptGUILabel* nativeInstance);
+		static void internal_setContent(ScriptGUILabel* nativeInstance, MonoObject* content);
 
 
 		static void initRuntimeData();
 		static void initRuntimeData();
 
 

+ 7 - 0
SBansheeEngine/Source/BsScriptGUILabel.cpp

@@ -34,6 +34,7 @@ namespace BansheeEngine
 	{
 	{
 		metaData.scriptClass->addInternalCall("Internal_CreateInstance", &ScriptGUILabel::internal_createInstance);
 		metaData.scriptClass->addInternalCall("Internal_CreateInstance", &ScriptGUILabel::internal_createInstance);
 		metaData.scriptClass->addInternalCall("Internal_DestroyInstance", &ScriptGUILabel::internal_destroyInstance);
 		metaData.scriptClass->addInternalCall("Internal_DestroyInstance", &ScriptGUILabel::internal_destroyInstance);
+		metaData.scriptClass->addInternalCall("Internal_SetContent", &ScriptGUILabel::internal_setContent);
 	}
 	}
 
 
 	void ScriptGUILabel::internal_createInstance(MonoObject* instance, MonoObject* parentLayout, MonoObject* content, MonoObject* style, MonoArray* guiOptions)
 	void ScriptGUILabel::internal_createInstance(MonoObject* instance, MonoObject* parentLayout, MonoObject* content, MonoObject* style, MonoArray* guiOptions)
@@ -66,4 +67,10 @@ namespace BansheeEngine
 		nativeInstance->destroyInstance();
 		nativeInstance->destroyInstance();
 		cm_delete(nativeInstance);
 		cm_delete(nativeInstance);
 	}
 	}
+
+	void ScriptGUILabel::internal_setContent(ScriptGUILabel* nativeInstance, MonoObject* content)
+	{
+		GUIContent nativeContent(ScriptGUIContent::getText(content), ScriptGUIContent::getImage(content), ScriptGUIContent::getTooltip(content));
+		nativeInstance->getInternalValue()->setContent(nativeContent);
+	}
 }
 }