public void setSelectedIndex(int index) { if (index >= -1 && index != _selectedIndex && index < _elements.size()) { _selectedIndex = index; onSelectionChanged(_selectedIndex, getSelectedElement()); } }
@Override public boolean onMousePressed(int mouseX, int mouseY, int mouseButton) { int heightChecked = 0; for (int i = _firstIndexDisplayed; i < _elements.size(); i++) { if (heightChecked > getContentHeight()) { break; } int elementHeight = _elements.get(i).getHeight(); if (getContentTop() + heightChecked <= mouseY && getContentTop() + heightChecked + elementHeight >= mouseY) { setSelectedIndex(i); onElementClicked(_elements.get(i)); break; } heightChecked += elementHeight; } return true; }
@Override public void drawBackground(int mouseX, int mouseY, float gameTicks) { drawModalRect(posX - 1, posY - 1, posX + sizeX + 1, posY + sizeY + 1, borderColor); drawModalRect(posX, posY, posX + sizeX, posY + sizeY, backgroundColor); }
public final int getContentBottom() { return getContentTop() + getContentHeight(); }
public final int getContentRight() { return getContentLeft() + getContentWidth(); }
@Override public void drawForeground(int mouseX, int mouseY) { int heightDrawn = 0; int nextElement = _firstIndexDisplayed; glPushMatrix(); glDisable(GL_LIGHTING); glEnable(GL_STENCIL_TEST); drawStencil(getContentLeft(), getContentTop(), getContentRight(), getContentBottom(), 1); glPushMatrix(); glTranslated(-scrollHoriz, 0, 0); int e = _elements.size(); while (nextElement < e && heightDrawn <= getContentHeight()) { heightDrawn += drawElement(nextElement, getContentLeft(), getContentTop() + heightDrawn); nextElement++; } glPopMatrix(); glDisable(GL_STENCIL_TEST); glPopMatrix(); }
@Override public boolean onKeyTyped(char charTyped, int keyTyped) { if (!super.onKeyTyped(charTyped, keyTyped)) { return false; } if (textLength <= 0) { buildFullOreList(); } else { buildOreList(getText()); } if (oreList.getElementCount() <= 0) { oreList.setSelectedIndex(-1); } else { oreList.setSelectedIndex(0); } if (oreList.getSelectedElement() != null) { lexicon.onSelectionChanged((String) oreList.getSelectedElement().getValue()); } oreSlider.setLimits(0, oreList.getElementCount() - 8); return true; }
@Override public boolean onMousePressed(int mouseX, int mouseY, int mouseButton) { if (mouseButton == 1) { rightClick = true; buildFullOreList(); oreList.setSelectedIndex(0); oreSlider.setLimits(0, oreList.getElementCount() - 8); setText(""); setFocused(true); } return super.onMousePressed(mouseX, mouseY, mouseButton); }
@Override public void initGui() { super.initGui(); addTab(new TabInfo(this, myInfo).setOffsets(12, 10)); prevOre = new ElementButton(this, 57, 31, "PrevOre", 206, 0, 206, 20, 206, 40, 20, 20, TEX_PATH); nextOre = new ElementButton(this, 129, 31, "NextOre", 226, 0, 226, 20, 226, 40, 20, 20, TEX_PATH); setPreferredOre = new ElementButton(this, 78, 59, "SetPreferred", 206, 60, 206, 80, 206, 100, 20, 20, TEX_PATH); clearPreferredOre = new ElementButton(this, 108, 59, "ClearPreferred", 226, 60, 226, 80, 226, 100, 20, 20, TEX_PATH); oreList.borderColor = new GuiColor(120, 120, 120, 0).getColor(); oreList.backgroundColor = new GuiColor(0, 0, 0, 48).getColor(); addElement(prevOre); addElement(nextOre); addElement(setPreferredOre); addElement(clearPreferredOre); addElement(searchBox); addElement(oreList); buildFullOreList(); lexicon.onSelectionChanged((String) oreList.getSelectedElement().getValue()); oreSlider = new SliderVertical(this, 184, 105, 8, 80, oreList.getElementCount() - 8) { @Override public void onValueChanged(int value) { oreList.scrollToV(value); } }; addElement(oreSlider); Keyboard.enableRepeatEvents(true); }