]> git.lizzy.rs Git - BoundingBoxOutlineReloaded.git/blob - src/main/java/com/irtimaled/bbor/client/gui/AbstractControl.java
Fully support keyboard nav in gui
[BoundingBoxOutlineReloaded.git] / src / main / java / com / irtimaled / bbor / client / gui / AbstractControl.java
1 package com.irtimaled.bbor.client.gui;
2
3 import net.minecraft.client.Minecraft;
4 import net.minecraft.client.gui.widget.Widget;
5
6 import java.awt.*;
7
8 abstract class AbstractControl extends Widget implements IControl {
9     private static final int PADDING = 4;
10     protected final Minecraft minecraft;
11
12     AbstractControl(int x, int y, int width, String name) {
13         super(x, y, width, 20, name);
14         this.minecraft = Minecraft.getInstance();
15     }
16
17     @Override
18     public void render(int mouseX, int mouseY) {
19         super.render(mouseX, mouseY, 0f);
20     }
21
22     public void setX(int x) {
23         super.x = x;
24     }
25
26     public void setY(int y) {
27         super.y = y;
28     }
29
30     public int getControlHeight() {
31         return this.height + PADDING;
32     }
33
34     public int getControlWidth() {
35         return this.width + PADDING;
36     }
37
38     @Override
39     protected void renderBg(Minecraft minecraft, int mouseX, int mouseY) {
40         if (active) renderBackground(mouseX, mouseY);
41     }
42
43     protected void renderBackground(int mouseX, int mouseY) {
44     }
45
46     @Override
47     public boolean isVisible() {
48         return this.visible;
49     }
50
51     public void filter(String lowerValue) {
52         String lowerString = this.getMessage().toLowerCase();
53         this.visible = lowerValue.equals("") ||
54                 lowerString.startsWith(lowerValue) ||
55                 lowerString.contains(" " + lowerValue);
56     }
57
58     void drawRectangle(int left, int top, int right, int bottom, Color color) {
59         fill(left, top, right, bottom, color.getRGB());
60     }
61
62     @Override
63     public void clearFocus() {
64         this.setFocused(false);
65     }
66 }