Browse Source

Inspector Tooltips

Peter Robinson 4 years ago
parent
commit
2a097413b9

+ 1 - 0
editor/AssetAdmin/AssetInspector.cs

@@ -80,6 +80,7 @@ function AssetInspector::onAdd(%this)
 	ThemeManager.setProfile(%this.inspector, "scrollingPanelArrowProfile", "ArrowProfile");
 	ThemeManager.setProfile(%this.inspector, "checkboxProfile", "checkboxProfile");
 	ThemeManager.setProfile(%this.inspector, "buttonProfile", "buttonProfile");
+	ThemeManager.setProfile(%this.inspector, "tipProfile", "tooltipProfile");
 	%this.insScroller.add(%this.inspector);
 	$ins = %this.inspector;
 }

+ 12 - 0
engine/source/gui/editor/guiInspector.cc

@@ -575,6 +575,18 @@ bool GuiInspectorField::onAdd()
 	Point2I outerExt = getOuterExtent(innerRect.extent, NormalState, mProfile);
 	mBounds.extent.y = outerExt.y;
 
+	//Set the tool tip if possible
+	if (mField->pFieldDocs != NULL)
+	{
+		mEdit->setField("tooltip", mField->pFieldDocs);
+		if (mGroup->mInspector->mTooltipProfile != NULL)
+		{
+			char buffer[256];
+			dSprintf(buffer, sizeof(buffer), "%d", mGroup->mInspector->mTooltipProfile->getId());
+			mEdit->setField("tooltipProfile", buffer);
+		}
+	}
+
 	addObject( mEdit );
 
 	// Force our editField to set it's value

+ 7 - 1
engine/source/gui/guiControl.cc

@@ -578,7 +578,7 @@ bool GuiControl::renderTooltip(Point2I cursorPos, const char* tipText )
         return false;
 
     if (!mTooltipProfile)
-        mTooltipProfile = mProfile;
+		setField("TooltipProfile", "GuiTooltipProfile");
 
     GFont *font = mTooltipProfile->mFont;
    
@@ -917,6 +917,9 @@ bool GuiControl::onWake()
    if( isMethod("onWake") )
       Con::executef(this, 1, "onWake");
 
+   if (mTooltipProfile != NULL)
+	   mTooltipProfile->incRefCount();
+
    return true;
 }
 
@@ -937,6 +940,9 @@ void GuiControl::onSleep()
    if( isMethod("onSleep") )
       Con::executef(this, 1, "onSleep");
 
+   if (mTooltipProfile != NULL)
+	   mTooltipProfile->decRefCount();
+
    // Set Flag
    mAwake = false;
 }