Skip to content

Commit aae5d73

Browse files
committed
add hint that you can scroll on the navbar
1 parent f8b859c commit aae5d73

1 file changed

Lines changed: 32 additions & 0 deletions

File tree

src/main/java/dev/isxander/yacl3/gui/tab/ScrollableNavigationBar.java

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package dev.isxander.yacl3.gui.tab;
22

33
import com.google.common.collect.ImmutableList;
4+
import dev.isxander.yacl3.gui.render.ColorGradientRenderState;
45
import dev.isxander.yacl3.gui.utils.GuiUtils;
56
import dev.isxander.yacl3.mixin.TabNavigationBarAccessor;
67
import net.minecraft.client.Minecraft;
@@ -13,6 +14,7 @@
1314
import net.minecraft.client.gui.components.tabs.TabManager;
1415
import net.minecraft.client.gui.components.tabs.TabNavigationBar;
1516
import net.minecraft.client.gui.layouts.Layout;
17+
import net.minecraft.client.gui.layouts.LinearLayout;
1618
import net.minecraft.util.Mth;
1719
import org.jetbrains.annotations.Nullable;
1820

@@ -81,6 +83,36 @@ public void render(GuiGraphics graphics, int mouseX, int mouseY, float delta) {
8183

8284
super.render(graphics, mouseX, mouseY, delta);
8385

86+
LinearLayout layout = accessor.yacl$getLayout();
87+
// draw right fade
88+
if (this.scrollOffset < this.maxScrollOffset - NAVBAR_MARGIN) {
89+
int right = accessor.yacl$getWidth();
90+
ColorGradientRenderState.createHorizontal(
91+
graphics,
92+
right - 40,
93+
layout.getY(),
94+
right,
95+
layout.getY() + layout.getHeight(),
96+
0x00000000, 0xFF000000
97+
).submit(graphics);
98+
99+
graphics.drawString(font, "→", right - 10, layout.getY() + (layout.getHeight() - font.lineHeight) / 2, 0xFFFFFFFF, false);
100+
}
101+
102+
// draw left fade
103+
if (this.scrollOffset > NAVBAR_MARGIN) {
104+
ColorGradientRenderState.createHorizontal(
105+
graphics,
106+
0,
107+
layout.getY(),
108+
40,
109+
layout.getY() + layout.getHeight(),
110+
0xFF000000, 0x00000000
111+
).submit(graphics);
112+
113+
graphics.drawString(font, "←", 5, layout.getY() + (layout.getHeight() - font.lineHeight) / 2, 0xFFFFFFFF, false);
114+
}
115+
84116
GuiUtils.popPose(graphics);
85117
}
86118

0 commit comments

Comments
 (0)