1 package com.irtimaled.bbor.client.gui;
3 import net.minecraft.client.gui.GuiScreen;
4 import net.minecraft.client.resources.I18n;
6 public abstract class ListScreen extends GuiScreen {
7 private final GuiScreen lastScreen;
9 private AbstractButton doneButton;
11 private ControlList controlList;
12 private SearchField searchField;
14 ListScreen(GuiScreen lastScreen) {
15 this.lastScreen = lastScreen;
22 protected void onDoneClicked() {
23 mc.displayGuiScreen(lastScreen);
27 protected void initGui() {
28 this.title = "Bounding Box Outline Reloaded";
29 this.controlList = new ControlList(this.width, this.height, 48, this.height - 28);
30 this.searchField = new SearchField(this.fontRenderer, this.width / 2 - 100, 22, 200, 20, this.controlList);
31 this.doneButton = new AbstractButton(this.width / 2 - 100, this.height - 24, 200, I18n.format("gui.done")) {
33 public void onPressed() {
38 this.children.add(this.doneButton);
39 this.children.add(this.controlList);
40 this.children.add(this.searchField);
44 protected abstract void setup();
47 public void render(int mouseX, int mouseY, float unknown) {
48 render(mouseX, mouseY);
51 protected void render(int mouseX, int mouseY) {
52 this.controlList.render(mouseX, mouseY);
54 this.drawCenteredString(this.fontRenderer, this.title, this.width / 2, 8, 16777215);
55 this.searchField.render(mouseX, mouseY);
56 this.doneButton.render(mouseX, mouseY);
61 this.searchField.tick();
65 public boolean keyPressed(int key, int scanCode, int modifiers) {
66 return super.keyPressed(key, scanCode, modifiers) || this.searchField.keyPressed(key, scanCode, modifiers);
70 public boolean charTyped(char character, int modifiers) {
71 return this.searchField.charTyped(character, modifiers);
75 public boolean mouseScrolled(double scrollAmount) {
76 return this.controlList.mouseScrolled(scrollAmount);
80 public void onGuiClosed() {
81 this.controlList.close();
84 ControlList getControlList() {
85 return this.controlList;
88 AbstractButton getDoneButton() {