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().pushMatrix();
 | |
| 		guiGraphics.pose().translate(this.getInnerLeft(), this.getInnerTop());
 | |
| 		this.multilineWidget.render(guiGraphics, mouseX, mouseY, partialTick);
 | |
| 		guiGraphics.pose().popMatrix();
 | |
| 	}
 | |
| 
 | |
| 	@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);
 | |
| 	}
 | |
| }
 |