mirror of
https://github.com/RandomityGuy/MBHaxe.git
synced 2026-04-27 21:21:41 +00:00
more scrollbar support for ui scaling
This commit is contained in:
parent
8df13ea44b
commit
77c3248fe9
2 changed files with 11 additions and 9 deletions
|
|
@ -40,7 +40,8 @@ class GuiScrollCtrl extends GuiControl {
|
||||||
this.scrollBottomPressedTile = scrollBar.sub(11, 13, 10, 6);
|
this.scrollBottomPressedTile = scrollBar.sub(11, 13, 10, 6);
|
||||||
this.scrollFillPressedTile = scrollBar.sub(11, 11, 10, 1);
|
this.scrollFillPressedTile = scrollBar.sub(11, 11, 10, 1);
|
||||||
this.scrollBarY = new Graphics();
|
this.scrollBarY = new Graphics();
|
||||||
this.clickInteractive = new Interactive(10, 1);
|
this.scrollBarY.scale(Settings.uiScale);
|
||||||
|
this.clickInteractive = new Interactive(10 * Settings.uiScale, 1);
|
||||||
this.clickInteractive.onPush = (e) -> {
|
this.clickInteractive.onPush = (e) -> {
|
||||||
if (!this.pressed) {
|
if (!this.pressed) {
|
||||||
this.pressed = true;
|
this.pressed = true;
|
||||||
|
|
@ -57,7 +58,7 @@ class GuiScrollCtrl extends GuiControl {
|
||||||
if (prevEY == null) {
|
if (prevEY == null) {
|
||||||
prevEY = e2.relY;
|
prevEY = e2.relY;
|
||||||
} else {
|
} else {
|
||||||
this.scrollY += e2.relY - prevEY;
|
this.scrollY += (e2.relY - prevEY);
|
||||||
prevEY = e2.relY;
|
prevEY = e2.relY;
|
||||||
this.updateScrollVisual();
|
this.updateScrollVisual();
|
||||||
}
|
}
|
||||||
|
|
@ -111,13 +112,13 @@ class GuiScrollCtrl extends GuiControl {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var scrollBarYSize = renderRect.extent.y * renderRect.extent.y / maxScrollY;
|
var scrollBarYSize = renderRect.extent.y * renderRect.extent.y / (maxScrollY * Settings.uiScale);
|
||||||
|
|
||||||
this.scrollY = Util.clamp(scrollY, 0, renderRect.extent.y - scrollBarYSize);
|
this.scrollY = Util.clamp(scrollY, 0, renderRect.extent.y - scrollBarYSize * Settings.uiScale);
|
||||||
|
|
||||||
this.scrollBarY.setPosition(renderRect.position.x + renderRect.extent.x - 10, renderRect.position.y + scrollY);
|
this.scrollBarY.setPosition(renderRect.position.x + renderRect.extent.x - 10 * Settings.uiScale, renderRect.position.y + scrollY);
|
||||||
|
|
||||||
this.clickInteractive.setPosition(renderRect.position.x + renderRect.extent.x - 10, renderRect.position.y);
|
this.clickInteractive.setPosition(renderRect.position.x + renderRect.extent.x - 10 * Settings.uiScale, renderRect.position.y);
|
||||||
|
|
||||||
this.clickInteractive.height = renderRect.extent.y;
|
this.clickInteractive.height = renderRect.extent.y;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@ import h2d.Scene;
|
||||||
import h2d.Text;
|
import h2d.Text;
|
||||||
import h2d.Font;
|
import h2d.Font;
|
||||||
import src.MarbleGame;
|
import src.MarbleGame;
|
||||||
|
import src.Settings;
|
||||||
|
|
||||||
class GuiTextListCtrl extends GuiControl {
|
class GuiTextListCtrl extends GuiControl {
|
||||||
public var texts:Array<String>;
|
public var texts:Array<String>;
|
||||||
|
|
@ -78,7 +79,7 @@ class GuiTextListCtrl extends GuiControl {
|
||||||
for (i in 0...textObjs.length) {
|
for (i in 0...textObjs.length) {
|
||||||
var text = textObjs[i];
|
var text = textObjs[i];
|
||||||
text.setPosition(Math.floor((!scrollable ? renderRect.position.x : 0) + 5),
|
text.setPosition(Math.floor((!scrollable ? renderRect.position.x : 0) + 5),
|
||||||
Math.floor((!scrollable ? renderRect.position.y : 0) + (i * (text.font.size + 4) + 5 + textYOffset - this.scroll)));
|
Math.floor((!scrollable ? renderRect.position.y : 0) + (i * (text.font.size + 4) + 5 + textYOffset * Settings.uiScale - this.scroll)));
|
||||||
|
|
||||||
if (_prevSelected == i) {
|
if (_prevSelected == i) {
|
||||||
text.textColor = selectedColor;
|
text.textColor = selectedColor;
|
||||||
|
|
@ -126,7 +127,7 @@ class GuiTextListCtrl extends GuiControl {
|
||||||
}
|
}
|
||||||
|
|
||||||
text.setPosition(Math.floor((!scrollable ? renderRect.position.x : 0) + 5),
|
text.setPosition(Math.floor((!scrollable ? renderRect.position.x : 0) + 5),
|
||||||
Math.floor((!scrollable ? renderRect.position.y : 0) + (i * (text.font.size + 4) + 5 + textYOffset - this.scroll)));
|
Math.floor((!scrollable ? renderRect.position.y : 0) + (i * (text.font.size + 4) + 5 + textYOffset * Settings.uiScale - this.scroll)));
|
||||||
|
|
||||||
if (_prevSelected == i) {
|
if (_prevSelected == i) {
|
||||||
text.textColor = selectedColor;
|
text.textColor = selectedColor;
|
||||||
|
|
@ -257,7 +258,7 @@ class GuiTextListCtrl extends GuiControl {
|
||||||
var hittestrect = this.getHitTestRect();
|
var hittestrect = this.getHitTestRect();
|
||||||
for (i in 0...textObjs.length) {
|
for (i in 0...textObjs.length) {
|
||||||
var text = textObjs[i];
|
var text = textObjs[i];
|
||||||
text.y = Math.floor((i * (text.font.size + 4) + 5 + textYOffset - scrollY));
|
text.y = Math.floor((i * (text.font.size + 4) + 5 + textYOffset * Settings.uiScale - scrollY));
|
||||||
g.y = renderRect.position.y - scrollY;
|
g.y = renderRect.position.y - scrollY;
|
||||||
}
|
}
|
||||||
redrawSelectionRect(hittestrect);
|
redrawSelectionRect(hittestrect);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue