use of mcjty.lib.gui.layout.HorizontalLayout in project RFToolsControl by McJty.
the class AbstractParameterEditor method createEditorPanel.
void createEditorPanel(Minecraft mc, Gui gui, Panel panel, ParameterEditorCallback callback, Panel constantPanel, ParameterType type) {
Panel variablePanel = new Panel(mc, gui).setLayout(new HorizontalLayout()).setDesiredHeight(18);
variableIndex = new TextField(mc, gui).setDesiredHeight(14).setTooltips("Index (in the processor)", "of the variable", "(first variable has index 0)").addTextEvent((parent, newText) -> callback.valueChanged(readValue()));
variablePanel.addChild(new Label(mc, gui).setText("Index:")).setTooltips("Index (in the processor)", "of the variable", "(first variable has index 0)").setDesiredHeight(14).addChild(variableIndex);
Panel functionPanel = new Panel(mc, gui).setLayout(new HorizontalLayout());
functionLabel = new ChoiceLabel(mc, gui).setDesiredWidth(120);
List<Function> functions = Functions.getFunctionsByType(type);
for (Function function : functions) {
functionLabel.addChoices(function.getId());
functionLabel.setChoiceTooltip(function.getId(), function.getDescription().toArray(new String[function.getDescription().size()]));
}
functionPanel.addChild(functionLabel);
functionLabel.addChoiceEvent(((parent, newChoice) -> callback.valueChanged(readValue())));
tabbedPanel = new TabbedPanel(mc, gui).addPage(PAGE_CONSTANT, constantPanel).addPage(PAGE_VARIABLE, variablePanel).addPage(PAGE_FUNCTION, functionPanel);
tabbedPanel.setLayoutHint(new PositionalLayout.PositionalHint(5, 5 + 18, 190 - 10, 60 + getHeight() - 5 - 18 - 40));
buttonPanel = new Panel(mc, gui).setLayout(new HorizontalLayout()).setLayoutHint(new PositionalLayout.PositionalHint(5, 5, 190 - 10, 18));
ToggleButton constantButton = new ToggleButton(mc, gui).setText(PAGE_CONSTANT).addButtonEvent(w -> switchPage(PAGE_CONSTANT, callback));
variableButton = new ToggleButton(mc, gui).setText(PAGE_VARIABLE).addButtonEvent(w -> switchPage(PAGE_VARIABLE, callback));
functionButton = new ToggleButton(mc, gui).setText(PAGE_FUNCTION).addButtonEvent(w -> switchPage(PAGE_FUNCTION, callback));
buttonPanel.addChild(constantButton).addChild(variableButton).addChild(functionButton);
panel.addChild(buttonPanel).addChild(tabbedPanel);
}
use of mcjty.lib.gui.layout.HorizontalLayout in project RFToolsControl by McJty.
the class BooleanEditor method build.
@Override
public void build(Minecraft mc, Gui gui, Panel panel, ParameterEditorCallback callback) {
Panel constantPanel = new Panel(mc, gui).setLayout(new HorizontalLayout());
label = new ChoiceLabel(mc, gui).addChoices("*", "true", "false").addChoiceEvent((parent, newChoice) -> callback.valueChanged(readValue())).setDesiredWidth(60);
constantPanel.addChild(label);
createEditorPanel(mc, gui, panel, callback, constantPanel, ParameterType.PAR_BOOLEAN);
}
use of mcjty.lib.gui.layout.HorizontalLayout in project RFToolsControl by McJty.
the class ExceptionEditor method build.
@Override
public void build(Minecraft mc, Gui gui, Panel panel, ParameterEditorCallback callback) {
Panel constantPanel = new Panel(mc, gui).setLayout(new HorizontalLayout());
label = new ChoiceLabel(mc, gui).setDesiredWidth(160);
label.addChoices("*");
for (ExceptionType exception : ExceptionType.values()) {
label.addChoices(exception.getCode());
}
label.addChoiceEvent((parent, newChoice) -> callback.valueChanged(readValue()));
constantPanel.addChild(label);
createEditorPanel(mc, gui, panel, callback, constantPanel, ParameterType.PAR_EXCEPTION);
}
use of mcjty.lib.gui.layout.HorizontalLayout in project RFToolsControl by McJty.
the class FluidEditor method build.
@Override
public void build(Minecraft mc, Gui gui, Panel panel, ParameterEditorCallback callback) {
Panel constantPanel = new Panel(mc, gui).setLayout(new HorizontalLayout());
Label<?> label = new Label(mc, gui).setText("Drop bucket:");
constantPanel.addChild(label);
blockRender = new BlockRender(mc, gui).setDesiredWidth(18 + 100).setDesiredHeight(18).setFilledRectThickness(1).setFilledBackground(0xff555555).setShowLabel(true);
constantPanel.addChild(blockRender);
blockRender.addSelectionEvent(new BlockRenderEvent() {
@Override
public void select(Widget widget) {
ItemStack holding = Minecraft.getMinecraft().player.inventory.getItemStack();
if (holding.isEmpty()) {
blockRender.setRenderItem(null);
} else {
blockRender.setRenderItem(stackToFluid(holding));
}
callback.valueChanged(readValue());
}
@Override
public void doubleClick(Widget widget) {
}
});
createEditorPanel(mc, gui, panel, callback, constantPanel, ParameterType.PAR_FLUID);
}
use of mcjty.lib.gui.layout.HorizontalLayout in project RFToolsControl by McJty.
the class IntegerEditor method build.
@Override
public void build(Minecraft mc, Gui gui, Panel panel, ParameterEditorCallback callback) {
Panel constantPanel = new Panel(mc, gui).setLayout(new HorizontalLayout());
field = new TextField(mc, gui).addTextEvent((parent, newText) -> callback.valueChanged(readValue())).addTextEnterEvent((parent, newText) -> closeWindow());
constantPanel.addChild(field);
hexMode = new ToggleButton(mc, gui).addButtonEvent(widget -> updateHex()).setCheckMarker(true).setText("Hex");
constantPanel.addChild(hexMode);
createEditorPanel(mc, gui, panel, callback, constantPanel, ParameterType.PAR_INTEGER);
}
Aggregations