public static String clipStringToWidth(String text, int width) { FontRenderer fontRenderer = Laptop.fontRenderer; String clipped = text; if(fontRenderer.getStringWidth(clipped) > width) { clipped = fontRenderer.trimStringToWidth(clipped, width - 8) + "..."; } return clipped; }
private int xToColumn(final int x, final int line) { final int relX = Math.max(0, x - guiX - CODE_POS_X); return getFontRenderer().trimStringToWidth(lines.get(line).toString(), relX).length(); }
public static String truncateStringToWidth(String string, int width, FontRenderer fontRenderer) { return fontRenderer.trimStringToWidth(string, width - fontRenderer.getStringWidth("...")) + "..."; } }
@Override public void handleClick(final int mx, final int my) { if (mx < 0) { return; } final String visibleString = mc.fontRenderer.trimStringToWidth(text.substring(scrollOffset), getInternalWidth()); final String trimmedString = mc.fontRenderer.trimStringToWidth(visibleString, mx); // Cache and restore scrollOffset when we change focus via click, // because onFocus() sets the cursor (and thus scroll offset) to the end. final int oldScrollOffset = scrollOffset; setFocus(); scrollOffset = oldScrollOffset; setCursorPosition(trimmedString.length() + scrollOffset); }
@Override protected void drawSlot(int idx, int right, int top, int height, Tessellator tess) { ResourceLocation sound = sounds.get(idx); fontRenderer.drawString(fontRenderer.trimStringToWidth(sound.toString(), listWidth - 10), left + 3, top + 2, 0xCCCCCC); }
private void prependToLine(int lineIndex, String text) { if(lineIndex == lines.size()) lines.add(""); if(text.length() <= 0) return; if(lineIndex < lines.size()) { if(text.charAt(Math.max(0, text.length() - 1)) == '\n') { lines.add(lineIndex, text); return; } String result = text + lines.get(lineIndex); if(fontRenderer.getStringWidth(result) > width - padding * 2) { String trimmed = fontRenderer.trimStringToWidth(result, width - padding * 2); lines.set(lineIndex, trimmed); prependToLine(lineIndex + 1, result.substring(trimmed.length())); } else { lines.set(lineIndex, result); } } }
/** * Called when mouse is clicked, regardless as to whether it is over this button or not. */ public boolean mouseClicked(int mouseX, int mouseY, int mouseButton) { boolean flag = mouseX >= this.x && mouseX < this.x + this.width && mouseY >= this.y && mouseY < this.y + this.height; if (this.canLoseFocus) { this.setFocused(flag); } if (this.isFocused && flag && mouseButton == 0) { int i = mouseX - this.x - 4; // if (this.enableBackgroundDrawing) { // i -= 4; // } String s = this.fontRenderer.trimStringToWidth(this.text.substring(this.lineScrollOffset), this.getWidth()); this.setCursorPosition(this.fontRenderer.trimStringToWidth(s, i).length() + this.lineScrollOffset); return true; } else { return false; } }
private int getClosestLineIndex(int lineX, int lineY) { String line = lines.get(lineY); int clickedCharX = fontRenderer.trimStringToWidth(line, lineX).length(); int nextCharX = MathHelper.clamp(clickedCharX + 1, 0, Math.max(0, line.length())); int clickedCharWidth = fontRenderer.getStringWidth(line.substring(0, clickedCharX)); int nextCharWidth = fontRenderer.getStringWidth(line.substring(0, nextCharX)); int clickedDistanceX = Math.abs(clickedCharWidth - lineX); int nextDistanceX = Math.abs(nextCharWidth - lineX - 1); int charX; if(Math.min(clickedDistanceX, nextDistanceX) == clickedDistanceX) { charX = clickedCharX; } else { charX = nextCharX; } if(charX > 0 && lines.get(lineY).charAt(charX - 1) == '\n') { charX--; } return charX; }
public void drawText() { for (int i = startLine; i < startLine + displayLines; i++) { if (textLines.size() > i) { String lineToDraw = fRend.trimStringToWidth(textLines.get(i), width); if (selectedLine == i && highlightSelectedLine) { drawRect(xPos, yPos + 1 + lineHeight * (i - startLine), xPos + width, yPos + lineHeight * (1 + i - startLine), selectedLineColor); fRend.drawStringWithShadow(lineToDraw, xPos + X_OFFSET, yPos + Y_OFFSET + lineHeight * (i - startLine), selectedTextColor); } else { fRend.drawStringWithShadow(lineToDraw, xPos + X_OFFSET, yPos + Y_OFFSET + lineHeight * (i - startLine), textColor); } } } }
@Override public boolean mouseClicked(float mouseX, float mouseY, int button) { boolean newSelected = this.isMouseSelecting(mouseX, mouseY); if (!newSelected && this.selected) { this.onSubmit(); } this.selected = newSelected; if (this.selected && button == 0 && this.editable) { int width = (int) (mouseX - this.getPosX() - 1); FontRenderer fontRenderer = this.gui.getFontRenderer(); String displayString = fontRenderer.trimStringToWidth(this.text.substring(this.lineScrollOffset), this.getWidth()); this.setCursorPosition(fontRenderer.trimStringToWidth(displayString, width).length() + this.lineScrollOffset); } return false; }
font.drawString(font.trimStringToWidth(title, 80), 0, 0, 0xD69700);
@Override protected void handleMouseClick(int mouseX, int mouseY, int mouseButton) { if(GuiHelper.isMouseWithin(mouseX, mouseY, xPosition + padding, yPosition + padding, width - padding * 2, getHeight() - padding * 2)) { if(this.wordListener != null && lines.size() > 0) { int lineIndex = (mouseY - (yPosition + padding)) / 10; if(lineIndex < lines.size()) { int cursorX = mouseX - (xPosition + padding); String line = lines.get(lineIndex); int index = Laptop.fontRenderer.trimStringToWidth(line, cursorX).length(); String clickedWord = getWord(line, index); if(clickedWord != null) { this.wordListener.onWordClicked(clickedWord, mouseButton); } } } } }
protected void drawString(String text, int left, int right, int color){ this.parent.getFontRenderer().drawString(this.parent.getFontRenderer().trimStringToWidth(text, listWidth - 10), left, right, color); } }
private void updatePath() { String path = currentFolder.getPath(); path = path.replace("/", TextFormatting.GOLD + "/" + TextFormatting.RESET); int width = Minecraft.getMinecraft().fontRenderer.getStringWidth(path); if(width > 144) { path = "..." + Minecraft.getMinecraft().fontRenderer.trimStringToWidth(path, 144, true); } labelPath.setText(path); }
@Override public void drawForeground(int mouseX, int mouseY) { String text = getFontRenderer().trimStringToWidth(_text, sizeX - 4); drawCenteredString(getFontRenderer(), text, posX + sizeX / 2, posY + (sizeY - 8) / 2, getTextColor(mouseX, mouseY)); }
@Override public void render(Drive drive, Gui gui, Minecraft mc, int x, int y, int width, int height, boolean selected) { Color bgColor = new Color(getColorScheme().getBackgroundColor()); drawRect(x, y, x + width, y + height, selected ? bgColor.brighter().brighter().getRGB() : bgColor.brighter().getRGB()); mc.getTextureManager().bindTexture(ASSETS); GlStateManager.color(1.0F, 1.0F, 1.0F); RenderUtil.drawRectWithTexture(x + 2, y + 2, drive.getType().ordinal() * 8, 30, 8, 8, 8, 8); String text = drive.getName(); if(mc.fontRenderer.getStringWidth(text) > 87) { text = mc.fontRenderer.trimStringToWidth(drive.getName(), 78) + "..."; } mc.fontRenderer.drawString(text, x + 13, y + 2, Color.WHITE.getRGB(), true); } });
@Override public void renderCustomOptions(int top, float par1, int par2, int par3) { FontRenderer fr = Minecraft.getMinecraft().fontRenderer; for (int i = 0; i < inputBounds.length; i++) { String mod = filter.getModAt(i); if (mod != null) { Rectangle r = inputBounds[i]; mod = fr.trimStringToWidth(mod, tfWidth - 6); fr.drawStringWithShadow(mod, getGuiLeft() + r.x + 41, getGuiTop() + r.y + 4, MOD_NAME_COLOR); } } }
public void draw(int mouseX, int mouseY) { if (this.getVisible()) { drawRect(this.x - 1, this.y - 1, this.x + this.width + 1, this.y + this.height + 1, 0xFFA0A0A0); drawRect(this.x, this.y, this.x + this.width, this.y + this.height, this.state.getBackgroundColor()); super.drawTextBox(); if (!this.suggestions.isEmpty() && this.isFocused()) { FontRenderer fontRenderer = Minecraft.getMinecraft().fontRenderer; int suggestionBoxHeight = SUGGESTION_HEIGHT * this.suggestions.size() + 2; int suggestionOriginY = this.y + this.height; drawRect(this.x - 1, suggestionOriginY, this.x + this.width + 1, suggestionOriginY + suggestionBoxHeight, 0xFFA0A0A0); for (int i = 0; i < this.suggestions.size(); i++) { String suggestion = fontRenderer.trimStringToWidth(this.suggestions.get(i), this.width - 8); int suggestionX = this.x; int suggestionY = suggestionOriginY + i * SUGGESTION_HEIGHT + 1; if (mouseX >= suggestionX && mouseY >= suggestionY && mouseX <= suggestionX + this.width && mouseY <= suggestionY + SUGGESTION_HEIGHT) { drawRect(suggestionX, suggestionY, suggestionX + this.width, suggestionY + SUGGESTION_HEIGHT, 0xFF5078A0); } fontRenderer.drawStringWithShadow(suggestion, suggestionX + 4, suggestionY + (SUGGESTION_HEIGHT - fontRenderer.FONT_HEIGHT) / 2, 0xFFFFFFFF); } } } }
@Override public void drawForeground(int mouseX, int mouseY) { super.drawForeground(mouseX, mouseY); if (entry == null) { return; } String text = getFontRenderer().trimStringToWidth(entry.getName(), sizeX - sizeY - 4); getFontRenderer().drawStringWithShadow(text, posX + sizeY + 4, posY + (sizeY - 8) / 2, getTextColor(mouseX, mouseY)); if (!entry.icon.isEmpty()) { gui.drawItemStack(entry.icon, posX + 3, posY + 3, false, null); } }
@Override protected void drawGuiContainerForegroundLayer(int x, int y) { super.drawGuiContainerForegroundLayer(x, y); DirectoryEntry directoryEntry = container.directoryEntry; if (directoryEntry != null) { int dy = 15; int by = directoryEntry.icon != null ? BUTTON_HEIGHT : 0; String text = getFontRenderer().trimStringToWidth(directoryEntry.getName(), xSize - buttonConfig.getWidth() - 16 - by); getFontRenderer().drawString(text, x0 + by + 4, dy + (BUTTON_HEIGHT - 8) / 2, 0x404040); if (directoryEntry.icon != null) { drawItemStack(directoryEntry.icon, x0 + 3, dy + 3, false, null); } } ArrayList<DirectoryEntry> directory = container.directory; if (directory == null) { fontRenderer.drawString(StringHelper.localize("gui.thermaldynamics.transport.waiting"), getCenteredOffset(StringHelper.localize("gui.thermaldynamics.transport.waiting")), ySize / 2, 0x404040); } else if (directory.isEmpty()) { fontRenderer.drawString(StringHelper.localize("gui.thermaldynamics.transport.noDest"), getCenteredOffset(StringHelper.localize("gui.thermaldynamics.transport.noDest")), ySize / 2, 0x404040); } }