diff options
Diffstat (limited to 'src/main/java/kr/syeyoung/dungeonsguide/roomedit/elements/MTextField.java')
-rwxr-xr-x | src/main/java/kr/syeyoung/dungeonsguide/roomedit/elements/MTextField.java | 349 |
1 files changed, 0 insertions, 349 deletions
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/elements/MTextField.java b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/elements/MTextField.java deleted file mode 100755 index 49c36d3c..00000000 --- a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/elements/MTextField.java +++ /dev/null @@ -1,349 +0,0 @@ -package kr.syeyoung.dungeonsguide.roomedit.elements; - -import kr.syeyoung.dungeonsguide.roomedit.MPanel; -import lombok.Getter; -import lombok.Setter; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.Gui; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.client.gui.ScaledResolution; -import org.lwjgl.input.Keyboard; -import org.lwjgl.opengl.GL11; - -import java.awt.*; -import java.awt.datatransfer.*; -import java.awt.event.KeyEvent; -import java.io.IOException; - -@Getter -public class MTextField extends MPanel { - private Color foreground = Color.white; - - private String text = "asdasdasd"; - private int cursorBlickTicker = 0; - - private int selectionStart = 0; - private int selectionEnd = 0; - - private int cursor = 0; - - private int xOffset = 0; - - public void edit(String str) { - - } - - public void setText(String text) { - this.text = text; - } - private void setText0(String text) { - this.text = text; - edit(text); - } - - - @Override - public void render(int absMousex, int absMousey, int relMousex0, int relMousey0, float partialTicks, Rectangle clip) { - Gui.drawRect(0,0,getBounds().width, getBounds().height, isFocused ? Color.white.getRGB() : Color.gray.getRGB()); - Gui.drawRect(1,1,getBounds().width - 2, getBounds().height - 2, Color.black.getRGB()); - - Minecraft mc = Minecraft.getMinecraft(); - clip(new ScaledResolution(mc), clip.x + 1, clip.y + 1, clip.width - 2, clip.height - 2); - FontRenderer fr = mc.fontRendererObj; - int y = (getBounds().height - fr.FONT_HEIGHT) / 2; - fr.drawString(text, 3 - xOffset, y, foreground.getRGB()); - // draw selection - if (isFocused) { - if (selectionStart != -1) { - int startX = fr.getStringWidth(text.substring(0, selectionStart)) - xOffset; - int endX = fr.getStringWidth(text.substring(0, selectionEnd)) - xOffset; - Gui.drawRect(3 + startX, y, 3 + endX, y + fr.FONT_HEIGHT, 0xFF00FF00); - fr.drawString(text.substring(selectionStart, selectionEnd), 3 + startX, y, foreground.getRGB()); - } - - // draw cursor - if (cursor != -1) { - if (cursor > text.length()) cursor = text.length(); - int x = fr.getStringWidth(text.substring(0, cursor)) - xOffset; - cursorBlickTicker++; - if (cursorBlickTicker < 10) - Gui.drawRect(3 + x, y, 4 + x, y + fr.FONT_HEIGHT, 0xFFFFFFFF); - if (cursorBlickTicker == 20) cursorBlickTicker = 0; - } - } - } - - @Override - public void mouseClicked(int absMouseX, int absMouseY, int relMouseX, int relMouseY, int mouseButton) { - Rectangle actualField = new Rectangle(1, 3,getBounds().width - 2, getBounds().height - 6); - if (!actualField.contains(relMouseX, relMouseY)) return; - if (!lastAbsClip.contains(absMouseX, absMouseY)) return; - - - - - int relStartT = relMouseX-3; - int offseted = relStartT + xOffset; - - selectionStart = -1; - - - FontRenderer fr = Minecraft.getMinecraft().fontRendererObj; - - for (int i = 0; i < text.length(); i++) { - int totalWidth = fr.getStringWidth(text.substring(0, i)); - if (offseted < totalWidth) { - cursor = i; - return; - } - } - cursor = text.length(); - } - - @Override - public void mouseClickMove(int absMouseX, int absMouseY, int relMouseX, int relMouseY, int clickedMouseButton, long timeSinceLastClick) { - if (!isFocused) return; - selectionStart = cursor; - selectionEnd = cursor; - - int relStartT = relMouseX-3; - int offseted = relStartT + xOffset; - - FontRenderer fr = Minecraft.getMinecraft().fontRendererObj; - - for (int i = 0; i < text.length(); i++) { - int totalWidth = fr.getStringWidth(text.substring(0, i)); - if (offseted < totalWidth) { - if (i < cursor) { - selectionStart = i; - selectionEnd = cursor; - } else { - selectionStart = cursor; - selectionEnd = i; - } - return; - } - } - selectionEnd = text.length(); - if (selectionStart == selectionEnd) { - selectionStart = -1; - } - } - - @Override - public void mouseScrolled(int absMouseX, int absMouseY, int relMouseX0, int relMouseY0, int scrollAmount) { - if (!isFocused) return; - if (scrollAmount > 0) { - xOffset += 5; - } else if (scrollAmount < 0){ - xOffset -= 5; - } - if (xOffset < 0) { - xOffset = 0; - } - int width = Minecraft.getMinecraft().fontRendererObj.getStringWidth(text); - int overflow = getBounds().width - 3 - width; - if (overflow >= 0) { - xOffset = 0; - } else if (width - xOffset + 10 < getBounds().width) { - xOffset = width - getBounds().width+10; - } - } - - @Override - public void keyTyped(char typedChar, int keycode) { - if (!isFocused) return; - - - if (selectionStart == -1) { - if (keycode == 199) { // home - cursor = 0; - return; - } - - if (keycode == 207) { // end - cursor = text.length(); - return; - } - - if (keycode == 203) { // left - cursor--; - if (cursor < 0) cursor = 0; - return; - } - - if (keycode == 205) { // right - cursor ++; - if (cursor > text.length()) cursor = text.length(); - return; - } - - // backspace - if (keycode == 14 && cursor > 0) { - setText0(this.text.substring(0, cursor - 1) + this.text.substring(cursor)); - cursor--; - return; - } - - //del - if (keycode == 211 && cursor < text.length()) { - setText0(this.text.substring(0, cursor) + this.text.substring(cursor+1)); - return; - } - - // paste - boolean shouldPaste = false; - if (keycode == 47) { - if (Minecraft.isRunningOnMac) { // mac - if (Keyboard.isKeyDown(219) || Keyboard.isKeyDown(220)) { - shouldPaste = true; - } - } else { // literally everything else - if (Keyboard.isKeyDown(29) || Keyboard.isKeyDown(157)) { - shouldPaste = true; - } - } - } - if (shouldPaste) { - Transferable transferable = Toolkit.getDefaultToolkit().getSystemClipboard().getContents(null); - if (transferable != null && transferable.isDataFlavorSupported(DataFlavor.stringFlavor)) { - try { - Object theText = transferable.getTransferData(DataFlavor.stringFlavor); - setText0( - this.text.substring(0, this.cursor) - + theText - + this.text.substring(this.cursor)); - - cursor += theText.toString().length(); - } catch (UnsupportedFlavorException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); - } - } - return; - } - - // text - if (isPrintableChar(typedChar)) { - setText0( - this.text.substring(0, this.cursor) - + typedChar - + this.text.substring(this.cursor)); - this.cursor++; - return; - } - } else { - if (keycode == 199) { // home - cursor = 0; - selectionStart = -1; - return; - } - - if (keycode == 207) { // end - selectionStart = -1; - cursor = text.length(); - return; - } - - if (keycode == 203) { // left - cursor = selectionStart; - selectionStart = -1; - return; - } - - if (keycode == 205) { // right - cursor = selectionEnd; - selectionStart = -1; - return; - } - - // backspace - if (keycode == 14 && cursor > 0) { - setText0(this.text.substring(0, selectionStart) + this.text.substring(selectionEnd)); - cursor = selectionStart; - selectionStart = -1; - return; - } - - //del - if (keycode == 211 && cursor < text.length()) { - setText0(this.text.substring(0, selectionStart) + this.text.substring(selectionEnd)); - cursor = selectionStart; - selectionStart = -1; - return; - } - - // paste - boolean shouldPaste = false; - if (keycode == 47) { - if (Minecraft.isRunningOnMac) { // mac - if (Keyboard.isKeyDown(219) || Keyboard.isKeyDown(220)) { - shouldPaste = true; - } - } else { // literally everything else - if (Keyboard.isKeyDown(29) || Keyboard.isKeyDown(157)) { - shouldPaste = true; - } - } - } - if (shouldPaste) { - Transferable transferable = Toolkit.getDefaultToolkit().getSystemClipboard().getContents(null); - if (transferable != null && transferable.isDataFlavorSupported(DataFlavor.stringFlavor)) { - try { - Object theText = transferable.getTransferData(DataFlavor.stringFlavor); - setText0( - this.text.substring(0, this.selectionStart) - + theText - + this.text.substring(this.selectionEnd)); - cursor = this.selectionStart + theText.toString().length(); - } catch (UnsupportedFlavorException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); - } - selectionStart = -1; - } - return; - } - boolean shouldCopy = false; - if (keycode == 46) { - if (Minecraft.isRunningOnMac) { // mac - if (Keyboard.isKeyDown(219) || Keyboard.isKeyDown(220)) { - shouldCopy = true; - } - } else { // literally everything else - if (Keyboard.isKeyDown(29) || Keyboard.isKeyDown(157)) { - shouldCopy = true; - } - } - } - if (shouldCopy) { - StringSelection selection = new StringSelection(text.substring(selectionStart, selectionEnd)); - Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); - clipboard.setContents(selection, selection); - return; - } - - // text - if (isPrintableChar(typedChar)) { - setText0( - this.text.substring(0, this.selectionStart) - + typedChar - + this.text.substring(this.selectionEnd)); - this.cursor = this.selectionStart + 1; - selectionStart = -1; - return; - } - } - } - public boolean isPrintableChar( char c ) { - Character.UnicodeBlock block = Character.UnicodeBlock.of( c ); - return (!Character.isISOControl(c)) && - c != KeyEvent.CHAR_UNDEFINED && - block != null && - block != Character.UnicodeBlock.SPECIALS; - } - -} |