70 lines
2.1 KiB
Java
70 lines
2.1 KiB
Java
package net.minecraft.client.gui.components;
|
|
|
|
import net.fabricmc.api.EnvType;
|
|
import net.fabricmc.api.Environment;
|
|
import net.minecraft.client.gui.Font;
|
|
import net.minecraft.client.gui.GuiGraphics;
|
|
import net.minecraft.client.gui.narration.NarratedElementType;
|
|
import net.minecraft.client.gui.narration.NarrationElementOutput;
|
|
import net.minecraft.network.chat.Component;
|
|
|
|
@Environment(EnvType.CLIENT)
|
|
public class FittingMultiLineTextWidget extends AbstractTextAreaWidget {
|
|
private final Font font;
|
|
private final MultiLineTextWidget multilineWidget;
|
|
|
|
public FittingMultiLineTextWidget(int x, int y, int width, int height, Component message, Font font) {
|
|
super(x, y, width, height, message);
|
|
this.font = font;
|
|
this.multilineWidget = new MultiLineTextWidget(message, font).setMaxWidth(this.getWidth() - this.totalInnerPadding());
|
|
}
|
|
|
|
public FittingMultiLineTextWidget setColor(int color) {
|
|
this.multilineWidget.setColor(color);
|
|
return this;
|
|
}
|
|
|
|
@Override
|
|
public void setWidth(int width) {
|
|
super.setWidth(width);
|
|
this.multilineWidget.setMaxWidth(this.getWidth() - this.totalInnerPadding());
|
|
}
|
|
|
|
@Override
|
|
protected int getInnerHeight() {
|
|
return this.multilineWidget.getHeight();
|
|
}
|
|
|
|
@Override
|
|
protected double scrollRate() {
|
|
return 9.0;
|
|
}
|
|
|
|
@Override
|
|
protected void renderBackground(GuiGraphics guiGraphics) {
|
|
super.renderBackground(guiGraphics);
|
|
}
|
|
|
|
public boolean showingScrollBar() {
|
|
return super.scrollbarVisible();
|
|
}
|
|
|
|
@Override
|
|
protected void renderContents(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) {
|
|
guiGraphics.pose().pushPose();
|
|
guiGraphics.pose().translate((float)this.getInnerLeft(), (float)this.getInnerTop(), 0.0F);
|
|
this.multilineWidget.render(guiGraphics, mouseX, mouseY, partialTick);
|
|
guiGraphics.pose().popPose();
|
|
}
|
|
|
|
@Override
|
|
protected void updateWidgetNarration(NarrationElementOutput narrationElementOutput) {
|
|
narrationElementOutput.add(NarratedElementType.TITLE, this.getMessage());
|
|
}
|
|
|
|
@Override
|
|
public void setMessage(Component message) {
|
|
super.setMessage(message);
|
|
this.multilineWidget.setMessage(message);
|
|
}
|
|
}
|