提示气泡(RichTooltip)

基本信息

属性 值
类 com.cleanroommc.modularui.screen.RichTooltip(screen/RichTooltip.java:35)
实现 implements IRichTextBuilder<RichTooltip>(api/drawable/IRichTextBuilder.java)
接口 ITooltip<W>(api/widget/ITooltip.java)
事件 RichTooltipEvent(screen/RichTooltipEvent.java:14,extends Event)
默认位置 RichTooltip.Pos.NEXT_TO_MOUSE(ModularUIConfig.java:22)

功能

Pos:8 种锚定方式

RichTooltip.Pos 定义于 screen/RichTooltip.java:444,有 8 个常量。 每个常量带一个 GuiAxis 参数(可空),表示该方向沿哪个轴展开:

常量 行 关联轴
ABOVE :446 GuiAxis.Y
BELOW :447 GuiAxis.Y
LEFT :448 GuiAxis.X
RIGHT :449 GuiAxis.X
VERTICAL :450 GuiAxis.Y
HORIZONTAL :451 GuiAxis.X
NEXT_TO_MOUSE :452 null(跟随鼠标)
FIXED :453 null(固定坐标)

ABOVE/BELOW/VERTICAL 属 Y 轴,LEFT/RIGHT/HORIZONTAL 属 X 轴; NEXT_TO_MOUSE 与 FIXED 不绑定任何轴。

在控件上挂提示气泡

ITooltip<W>(api/widget/ITooltip.java)共定义 23 个 default W 构建器方法, 按用途分 6 组(行号均为 ITooltip.java):

组 方法 行
取自身 getThis() :53
构造 tooltip(Consumer<RichTooltip>) :64
静态 / 动态 tooltipStatic(Consumer<RichTooltip>) :75
tooltipBuilder(Consumer<RichTooltip>) :87
tooltipDynamic(Consumer<RichTooltip>) :98
位置 tooltipPos(RichTooltip.Pos) :109
tooltipPos(int x, int y) :121
tooltipAlignment(Alignment) :132
外观 tooltipTextShadow(boolean) :144
tooltipTextColor(int) :155
tooltipScale(float) :166
tooltipShowUpTimer(int) :177
tooltipAutoUpdate(boolean) :190
tooltipHasTitleMargin(boolean) :201
tooltipLinePadding(int) :212
添加元素 addTooltipElement(String) :217
addTooltipElement(IDrawable) :222
addTooltipLine(ITextLine) :227
addTooltipLine(IDrawable) :238
addTooltipLine(String) :249
批量添加 addTooltipDrawableLines(Iterable<IDrawable>) :259
addTooltipStringLines(Iterable<String>) :270
清除 removeAllTooltips() :275

tooltipStatic / tooltipBuilder / tooltipDynamic 三者签名完全相同 (都是 Consumer<RichTooltip>),区别只在求值时机—— 具体差异见各自实现处的 javadoc。

Widget 侧的对应方法:tooltip()(widget/Widget.java:319,取出已有气泡)、 tooltip(RichTooltip)(:333,替换)、markTooltipDirty()(:342,标脏待重建)。

数值

数值名 值 来源
默认锚定位置 Pos.NEXT_TO_MOUSE ModularUIConfig.java:22
可选位置数 8 screen/RichTooltip.java:446-453

交互

触发 行为
鼠标悬停控件 显示气泡(IGuiElement.isHovering(),api/widget/IGuiElement.java:82)
悬停持续 N tick isHoveringFor(int ticks)(IGuiElement.java:92)用于延迟显示
鼠标移入 / 移出区域 onMouseEnterArea() / onMouseLeaveArea()(IGuiElement.java:72/:77)
气泡内容变化 调 Widget.markTooltipDirty()(widget/Widget.java:342)

相关条目