How about a dark GUI for TC?
Moderators: Hacker, petermad, Stefan2, white
Re: How about a dark GUI for TC?
Why do you ask here? TC doesn't use Windows 10 dark/light mode feature, it has own color settings...
Re: How about a dark GUI for TC?
As Ghisler wrote clearly in the course of this thread, the upcoming version will support the Win 10 API functions for dark mode. And since he does it based on a Github sample for Win32 apps, the user is asking for a hint on how to do that on his own application. Quite legitimate, actually.MVV wrote: 2019-10-01, 06:57 UTC Why do you ask here? TC doesn't use Windows 10 dark/light mode feature, it has own color settings...
- ghisler(Author)
- Site Admin
- Posts: 50479
- Joined: 2003-02-04, 09:46 UTC
- Location: Switzerland
- Contact:
Re: How about a dark GUI for TC?
2Erik-DJ
It's not easy. For some controls like listboxes, you can simply call
SetWindowTheme(handle,'DarkMode_Explorer',nil);
Others need to be owner drawn by yourself.
Also make sure to call AllowDarkModeForApp BEFORE opening any forms, otherwise context menus will be wrong.
But it's a LOT of work, I've been working on that for months now...
Here is how I load the special functions:
It's not easy. For some controls like listboxes, you can simply call
SetWindowTheme(handle,'DarkMode_Explorer',nil);
Others need to be owner drawn by yourself.
Also make sure to call AllowDarkModeForApp BEFORE opening any forms, otherwise context menus will be wrong.
But it's a LOT of work, I've been working on that for months now...
Here is how I load the special functions:
Code: Select all
type
tIsDarkModeAllowedForApp=function:bool; stdcall;
tShouldAppsUseDarkMode=function:integer; stdcall; // only bit 1!
tAllowDarkModeForWindow= function(a_HWND:HWND;a_Allow:boolean):bool; stdcall;
tAllowDarkModeForApp=function(mode:integer):bool; stdcall;
var
IsDarkModeAllowedForApp:tIsDarkModeAllowedForApp=nil;
ShouldAppsUseDarkMode:tShouldAppsUseDarkMode=nil;
AllowDarkModeForWindow:tAllowDarkModeForWindow=nil;
AllowDarkModeForApp:tAllowDarkModeForApp=nil;
IsDarkModeAllowedForApp:=GetProcAddress(themelib, MAKEINTRESOURCE(139));
ShouldAppsUseDarkMode:=GetProcAddress(themelib, MAKEINTRESOURCE(132));
AllowDarkModeForWindow:=GetProcAddress(themelib, MAKEINTRESOURCE(133));
AllowDarkModeForApp:=GetProcAddress(themelib, MAKEINTRESOURCE(135));
Author of Total Commander
https://www.ghisler.com
https://www.ghisler.com
-
- Junior Member
- Posts: 39
- Joined: 2007-09-15, 14:53 UTC
- Location: Noord-Brabant, The Netherlands
Re: How about a dark GUI for TC?
Thank you Christian, it's beginning to work in my project, but it's a lot of work indeed.
I also found this Pascal example: https://www.haijin-boys.com/wiki/ダークモード対応
I can get the main menu items dark, but not the main menu itself. And I think it's strange you have to set the color of the forms yourself... Perhaps I'm doing something wrong.
Good luck with testing TC 9.5.
I also found this Pascal example: https://www.haijin-boys.com/wiki/ダークモード対応
I can get the main menu items dark, but not the main menu itself. And I think it's strange you have to set the color of the forms yourself... Perhaps I'm doing something wrong.
Good luck with testing TC 9.5.
Re: How about a dark GUI for TC?
I've tried it out in the latest beta 9.50, but I feels a bit too contrasty still. I'm sure it'll get some more love before the final version, but I thought I'd mention it. It feels a bit rudimentary.
Maybe it's because TC has a very "liney" interface
There are a lot of lines everywhere, to separate elements, rather than using background colours or spacing, or other ways to separate elements. Sometimes just glueing things together is fine, too. Designing GUI's is a subtle practice, and definitely not easy.
Maybe it's a good idea to take a look at the dark mode of a popular code editor, Visual Studio Code (not Visual Studio!). They've absolutely *nailed* dark mode, and I think TC could (or should) at least borrow some ideas from VS Code.
Maybe it's because TC has a very "liney" interface

Maybe it's a good idea to take a look at the dark mode of a popular code editor, Visual Studio Code (not Visual Studio!). They've absolutely *nailed* dark mode, and I think TC could (or should) at least borrow some ideas from VS Code.
Total Commander 11 on Windows 10
Re: How about a dark GUI for TC?
Well, VS Code is using Electron (HTML + CSS) for its look. Total Commander uses native Win32 widgets.
Some differences in design language are to be expected.
IMHO (and such things will always be a matter of personal preference), I greatly prefer Total Commander's current dark mode to any other file managers' attempts at the same, and also prefer this old-school native look to the current trend for space-wasting webby interfaces.
Of course, I am an ancient relic when it comes to computers, so what do I know.
(I suspect the average age of Total Commander users to be somewhat advanced.)
Some differences in design language are to be expected.
IMHO (and such things will always be a matter of personal preference), I greatly prefer Total Commander's current dark mode to any other file managers' attempts at the same, and also prefer this old-school native look to the current trend for space-wasting webby interfaces.
Of course, I am an ancient relic when it comes to computers, so what do I know.
(I suspect the average age of Total Commander users to be somewhat advanced.)

Re: How about a dark GUI for TC?
I'm pretty ancient as well, but I tend to embrace modern UI a little bit more easily. No offense 
I really don't think the programming language, or UI framework for that matter, needs to make much of a difference. In the end the application typically has full control over how a control draws itself. In my past life I've been hobby'ing with Delphi and I know it's not easy, but certainly doable, to make "native" controls draw themselves completely differently.
I also really don't think GUI style/layout is *completely* a matter of personal preference. There aren't whole studies about UI and UX design for nothing, and the extent to how well a UI works is completely measurable by usertesting. This is how many high-budget programs get an excellent UI. Low-budget programs tend to go with community-driven testing, as well as designers willing to donate some of their time.
That last part is difficult for TC to pull off, because of its "closed" nature. It's not opensource, is it. TC has always felt like a one man show (not sure if it is), which results in UI that tends to have a strange learning curve, or a slow pace towards something really good and awesome. Not entirely sure how (and if) TC should deal with this kind of issue.

I really don't think the programming language, or UI framework for that matter, needs to make much of a difference. In the end the application typically has full control over how a control draws itself. In my past life I've been hobby'ing with Delphi and I know it's not easy, but certainly doable, to make "native" controls draw themselves completely differently.
I also really don't think GUI style/layout is *completely* a matter of personal preference. There aren't whole studies about UI and UX design for nothing, and the extent to how well a UI works is completely measurable by usertesting. This is how many high-budget programs get an excellent UI. Low-budget programs tend to go with community-driven testing, as well as designers willing to donate some of their time.
That last part is difficult for TC to pull off, because of its "closed" nature. It's not opensource, is it. TC has always felt like a one man show (not sure if it is), which results in UI that tends to have a strange learning curve, or a slow pace towards something really good and awesome. Not entirely sure how (and if) TC should deal with this kind of issue.
Total Commander 11 on Windows 10
Re: How about a dark GUI for TC?
And also, please rename `Dark<>Normal` in the menu to `Dark`.
It's a checkbox, so Dark checked means dark mode. If `Dark<>Normal` is checked, it's confusing UX-wise, which one the program thinks is active.
Also, `Dark<>Normal` feels diminuitive, as if dark mode is not normal
You would never say "Asain people and normal people" so the same logic applies to user settings.
It's a checkbox, so Dark checked means dark mode. If `Dark<>Normal` is checked, it's confusing UX-wise, which one the program thinks is active.
Also, `Dark<>Normal` feels diminuitive, as if dark mode is not normal

You would never say "Asain people and normal people" so the same logic applies to user settings.
Total Commander 11 on Windows 10
- ghisler(Author)
- Site Admin
- Posts: 50479
- Joined: 2003-02-04, 09:46 UTC
- Location: Switzerland
- Contact:
Re: How about a dark GUI for TC?
I think it's more clear as it is now. Dark<->Normal tells the user that he can toggle the option, and "Dark" gets checked when in dark mode.
Author of Total Commander
https://www.ghisler.com
https://www.ghisler.com
-
- Junior Member
- Posts: 69
- Joined: 2020-04-18, 21:04 UTC
Re: How about a dark GUI for TC?
I did a quick mockup of a TC with dark theme based on the colours of Visual Studio 2019, I think it's better without all that white lines
Image: https://1drv.ms/u/s!AimXu829oSwehH2DAVbeE4EREXUA
Image: https://1drv.ms/u/s!AimXu829oSwehH2DAVbeE4EREXUA
Re: How about a dark GUI for TC?
2Paul Mountit
I don't think so, for me look quite ugly....
I don't think so, for me look quite ugly....
It's impossible to lead us astray for we don't care even to choose the way.
#259941, TC 11.01 x64, Windows 7 SP1 x64
#259941, TC 11.01 x64, Windows 7 SP1 x64
Re: How about a dark GUI for TC?
Nice, how did you remove the white lines?Paul Mountit wrote: 2020-04-18, 21:13 UTC I did a quick mockup of a TC with dark theme based on the colours of Visual Studio 2019, I think it's better without all that white lines
Image: https://1drv.ms/u/s!AimXu829oSwehH2DAVbeE4EREXUA
TC license #346559
Re: How about a dark GUI for TC?
Paul Mountit,
Habe you tried
wincmd.ini
[Layout]
DarkListBorders=0

Roman
Habe you tried
wincmd.ini
[Layout]
DarkListBorders=0

Roman
Mal angenommen, du drückst Strg+F, wählst die FTP-Verbindung (mit gespeichertem Passwort), klickst aber nicht auf Verbinden, sondern fällst tot um.
-
- Junior Member
- Posts: 69
- Joined: 2020-04-18, 21:04 UTC
Re: How about a dark GUI for TC?
it's a mock-up. a simulation, a picture, not a real appbogordo wrote: 2020-04-19, 06:08 UTCNice, how did you remove the white lines?Paul Mountit wrote: 2020-04-18, 21:13 UTC I did a quick mockup of a TC with dark theme based on the colours of Visual Studio 2019, I think it's better without all that white lines
Image: https://1drv.ms/u/s!AimXu829oSwehH2DAVbeE4EREXUA
