package com.github.czyzby.kiwi.util.gdx.scene2d; import com.badlogic.gdx.scenes.scene2d.ui.TooltipManager; import com.badlogic.gdx.utils.GdxRuntimeException; import com.badlogic.gdx.utils.reflect.ClassReflection; import com.badlogic.gdx.utils.reflect.ReflectionException; import com.github.czyzby.kiwi.util.common.UtilitiesClass; import com.github.czyzby.kiwi.util.gdx.reflection.Reflection; /** Provides utilities for LibGDX tooltips. * * @author MJ */ public class Tooltips extends UtilitiesClass { private Tooltips() { } /** Since main tooltip manager instance cannot be changed globally with a regular setter, this method modifies it * using reflection. * * @param tooltipManager will be returned on {@link TooltipManager#getInstance()} calls. * @throws GdxRuntimeException if unable to change manager. */ public static void setDefaultTooltipManager(final TooltipManager tooltipManager) { try { TooltipManager.getInstance(); Reflection.setFieldValue(ClassReflection.getDeclaredField(TooltipManager.class, "instance"), null, tooltipManager); } catch (final ReflectionException exception) { throw new GdxRuntimeException("Unable to set default tooltip manager.", exception); } } }