minecraft-src/net/minecraft/client/gui/components/AbstractContainerWidget.java
2025-07-04 03:15:13 +03:00

84 lines
2.3 KiB
Java

package net.minecraft.client.gui.components;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.gui.ComponentPath;
import net.minecraft.client.gui.components.events.ContainerEventHandler;
import net.minecraft.client.gui.components.events.GuiEventListener;
import net.minecraft.client.gui.navigation.FocusNavigationEvent;
import net.minecraft.network.chat.Component;
import org.jetbrains.annotations.Nullable;
@Environment(EnvType.CLIENT)
public abstract class AbstractContainerWidget extends AbstractScrollArea implements ContainerEventHandler {
@Nullable
private GuiEventListener focused;
private boolean isDragging;
public AbstractContainerWidget(int i, int j, int k, int l, Component component) {
super(i, j, k, l, component);
}
@Override
public final boolean isDragging() {
return this.isDragging;
}
@Override
public final void setDragging(boolean isDragging) {
this.isDragging = isDragging;
}
@Nullable
@Override
public GuiEventListener getFocused() {
return this.focused;
}
@Override
public void setFocused(@Nullable GuiEventListener focused) {
if (this.focused != null) {
this.focused.setFocused(false);
}
if (focused != null) {
focused.setFocused(true);
}
this.focused = focused;
}
@Nullable
@Override
public ComponentPath nextFocusPath(FocusNavigationEvent event) {
return ContainerEventHandler.super.nextFocusPath(event);
}
@Override
public boolean mouseClicked(double mouseX, double mouseY, int button) {
boolean bl = this.updateScrolling(mouseX, mouseY, button);
return ContainerEventHandler.super.mouseClicked(mouseX, mouseY, button) || bl;
}
@Override
public boolean mouseReleased(double mouseX, double mouseY, int button) {
super.mouseReleased(mouseX, mouseY, button);
return ContainerEventHandler.super.mouseReleased(mouseX, mouseY, button);
}
@Override
public boolean mouseDragged(double mouseX, double mouseY, int button, double dragX, double dragY) {
super.mouseDragged(mouseX, mouseY, button, dragX, dragY);
return ContainerEventHandler.super.mouseDragged(mouseX, mouseY, button, dragX, dragY);
}
@Override
public boolean isFocused() {
return ContainerEventHandler.super.isFocused();
}
@Override
public void setFocused(boolean focused) {
ContainerEventHandler.super.setFocused(focused);
}
}