maforget / ComicRackCE

A Community Edition for the legendary Comic Book Manager ComicRack. ComicRack is back from the dead.
GNU General Public License v2.0
336 stars 34 forks source link

[Feature Request] Bigger fonts #118

Open llevier opened 1 month ago

llevier commented 1 month ago

Hello,

First of all, thanks for this work ! I have an old Chuwi HI13 tablet, great for comics, but painful with the old Comicrack.

I would appreciate a new feature : ability to have bigger fonts for all sof(ware (menu + sub menus + popups). I am exclusively using Comicrack as a tablet and with a 3000x2000 resolution, text is really small :-(

Bigger menus icons (stack etc) would also be appreciated :-)

Thanks !

Brgds

maforget commented 1 month ago

I have heard feedback about something like that. Problem is that just changing the text size alone isn't enough, you need to scale everything. This already exists, the program already scales the UI based on your DPI scaling. A 13in screen with that big a resolution would require some scaling to work with windows. If you still haven't I would suggest you boost your scaling in windows, the program will scale accordingly. There are also compatibility settings you might try.

But even then this is a winforms program, it isn't that good with various screen density like Android apps are. It's not a coincidence that Microsoft started using new frameworks and redoing windows UI when they started pushing windows 8 and tablets.

It might be possible to have the DPI scaling be overridden by a user setting, but I don't know if it would fix your problem, especially if you are already using scaling in windows. Since higher resolution screen are more affordable these days it might be something to look into, but without using such a screen myself it's a bit hard to test and gauge the effect.

maforget commented 1 month ago

I've just discovered something, the Original ComicRack was supposed to be DPI Aware. So when I was creating it I added the relevant tag to the manifest saying to windows to not scale the program that the program itself would take care of it. Testing it by changing the scaling in windows without that entry would result in very ugly result as you can see in the first image in this wiki entry.

But going back to the original ComicRack, it looks the same distorted way. Checking the original binaries, there never was a manifest with the original. So that was the solution it used, leave it like it is so that windows scales the text and scale the rest of the components in code. So that might explain why in this version the text seems so small.

Can you compare with the original ComicRack if there is a big difference in text size? Can you post some comparison screenshot using different settings (windows scaling/compatibility)?

It seems that windows scaling stops at 175% scaling. Your screen seems to have 267dpi, so that would mean that even at 175% scaling you are still looking at smaller text than intended (around 60%). Although you can additionally change the text scaling manually in windows.

It seems they are now better ways for scaling in .NET Framework 4.7 even support for per Monitor. So a better DPI scaling might be in order.


Here are some docs for my future self to refer to: https://stackoverflow.com/questions/74983429/windows-system-dpi-getdevicecapshdc-logpixelsx-y-vs-getdpiforsystem => This is what CR uses. https://learn.microsoft.com/en-us/windows/win32/learnwin32/dpi-and-device-independent-pixels https://learn.microsoft.com/en-us/windows/win32/hidpi/high-dpi-desktop-application-development-on-windows https://learn.microsoft.com/en-us/dotnet/desktop/winforms/high-dpi-support-in-windows-forms?view=netframeworkdesktop-4.8 https://learn.microsoft.com/en-us/dotnet/desktop/winforms/automatic-scaling-in-windows-forms?view=netframeworkdesktop-4.8 https://learn.microsoft.com/en-us/windows/win32/hidpi/setting-the-default-dpi-awareness-for-a-process https://learn.microsoft.com/en-us/dotnet/framework/configure-apps/file-schema/winforms/windows-forms-add-configuration-element

llevier commented 6 days ago

Hello I understand the global issue. Agree increasing the DPI value might help, I'll try to follow. However, increasing the DPI also has its global effects : bigger icons, text in tablet mode (out of Comicrack itself) etc. At the moment, Windows is at his maximum and all applications (lets use a classic browser only as reference) already provide quite big fonts and typing zone sizes. Same for virtual keyboard.

So the need is really focused on ComicRack itself. Proposing a workaround : preferences offers to select the font or just multiple sizes of the font. Possibly the size just above count solve the need with reduced impact (if any) on display ? You could put that only in the preferences source file as a test ? This way reduced changes and I can test notepading the preferences file and feedback ?

Thanks

maforget commented 6 days ago

It's not as simple as changing a setting, the text is specified in a lot of place. Having these all scaled with a central setting would take a lot of work, when it really should be taken care by windows. I also need to think about the rest of the interface, just scaling the text would result in very weird results. Also some of the interface is scaled relative to the font, so scaling the fonts will scale the rest of the UI (or part of it) so that the font are the same size relative to the rest.

Other programs might use other framework, but this project is built from old school windows screens and it probably will never be up to par with newer framework. It still doesn't support newer mode like Per Monitor, but it should still be scaling with windows settings, like the other apps do. So if the text is acceptable in others you should have a similar experience.

If the text is too small wouldn't everything be also too small, that means the menu, buttons, logo, etc. It would help if you posted screenshot, mentioned the various setting you tried, like compatibility settings for ComicRack alone (Do try this one before anything). There are also Text Size scaling in windows, independent from DPI scaling. If you used Custom settings it may result in the program not determining the scaling correctly, I did tests a long time ago and some registry setting would result in not detecting the DPI increase and never scale.

Like I mentioned there are changes that can be made that might have better scaling. I can't really check or test without having a 4K monitor, which won't happen, I don't think it is worth it for the money required to drive such a monitor (just the GPU alone).