Slowpoke101/FTBLaunch

Launcher GUI is almost impossible to use on high-DPI screens

Closed this issue · 4 comments

The FTB Launcher is built in Swing, which has nearly non-existent support for high-DPI scaling. As someone who has a laptop with a 14" 3200x1800 panel, I can barely read any of the text on the launcher without getting much closer to the screen.
Is it a possibility to begin a project to rewrite the FTB Launcher in JavaFX, which has scaling, or switch off Java entirely to C# utilizing something like Gtk# for cross-platform GUI compatibility?
In addition, I would certainly willing to contribute to the effort of rebuilding the program in C# - as I am much more familiar with C# than Java.

we will not be using anything other than java.

javafx is not currently an option as that is not available in all jvm distributions that we support.

And so you close the issue that it's almost unreadable on high-DPI small screens? That's not productive. I don't mean to be confrontational, but just because you're not going to switch to another GUI framework doesn't mean you should ignore an issue. OOP is all about being able to extend classes and objects, you can certainly manually write DPI scaling into Swing if you are so adamant about not switching.
Also, "all JVM distributions that [you] support"? Minecraft recommends Java 8, and you should too.

Who is going to do testing? At least I don't have hardware to test that kind of features. There already is too many minor features which are tested by asking feedback from end users. How would writing major feature like GUI overhaul work without getting access to proper hardware?

Mojang recommends java 8 in that article you linked but there is also following: Minimum Requirements: ... Java 6 Release 45 We are already recommending java 8: If launcher detects that there is problem with JRE it offers link to java 8. Support sites recommend using java 8, IRC bots have links for java 8 etc. Recommend version != Required version.

Do you have numbers for us about users who can't install java 7 or newer but who are still playing older FTB packs? How about numbers about monitor DPIs in our users? FTB Launcher might look ugly in high DPI monitors but you can still install and launch packs.

Are you really suggesting us to make launcher unusable(=can't start launcher or start packs) for some users just to make launcher look prettier in other users?

I can do testing, and I'm sure there are others who use the FTB Launcher on high-DPI screens that just don't know where this repository is so they haven't raised the issue prior. It's very common on modern devices. I'm on a Razer Blade 2014, but I know that some of the newer Lenovo Yoga laptops have the same resolution and screen size as my laptop.

JavaFX is available in everything since Java 7 Update 6, and that can run on any system that can run Minecraft. Check out Oracle's system requirements page, it supports all the way back to XP, just with RAM limitations, which.. without that amount of RAM you'd be unable to play Minecraft anyway.

There shouldn't be any users unable to install Java 7 and still using older packs; Java 7 is supported for all modern OSes and even out-of-support ones like Windows XP. Also, maybe you don't have many high-DPI users now, but they're coming. Practically every high-end notebook coming out nowadays is high-DPI, so I doubt it'll be long before the low end starts getting them.

And I'm not suggesting you make the launcher unusable for some users (namely the fact that Java 7 or up is installable, and unwise not to have, on any modern system). Also, it's not a matter of the launcher being "ugly," it's that it is actually nearly unusable for me. I have to put my face a couple inches from my screen to read the text because the entire launcher is around an inch and a half across.

I'm not asking that you forsake any users (except possibly some who aren't up to Java 7, but you can just prompt them to upgrade because there are very very few computers in the world that can't), but I am asking you to make your launcher functional for everyone that uses it.