mpc-hc icon indicating copy to clipboard operation
mpc-hc copied to clipboard

ToDo: toolbar improvements

Open clsid2 opened this issue 3 years ago • 47 comments

  • Remove separators between buttons? They don't look good with certain toolbars.
  • Maybe replace default toolbar with this one
  • Apply toolbar size option also to external SVG toolbar
  • Add advanced option to hide the speed buttons and framestep button

clsid2 avatar Jan 23 '21 15:01 clsid2

Please don't fuck with the default toolbar, the one you linked is less readable than the current default due to the hollow centers with thin lines. At least leave a setting so i can restore it to the current look.

exuvo avatar Jan 25 '21 17:01 exuvo

Fluent UI toolbar is good and remove separators between buttons is reasonable.

I personally think the main problem that affects the visual perception is seek bar and volume bar, They are both outdated with the Fluent style toolbar in the light theme. Are there any future plans for it? After all, we can easily change the style of the toolbar through external files.

techfisha avatar Jan 26 '21 04:01 techfisha

  • I still mostly use legacy toolbar + default light theme. It has a nice classic look and on 1080p display it allows for smaller icons.

  • Neither legacy or new built-in toolbar looks good in dark mode. For the svg toolbar, part of the problem is that it is displayed in white255 which is too bright (this is also a problem more generally for all text displayed in the mpc-hc interface in dark mode, for comparison github dark mode barely goes above grey200. Mpc-be using grey185 with the dark-menu option does much better).

In dark mode the fluent-UI toolbar_dark.svg looks much better IMO. I don't think it's meant to be used in light mode ?

  • The minimum toolbar in the interface is 16, I think it should be possible to go lower with fluent-UI.
  • An option to hide non essential buttons and the separation bars would be nice. While modifying an external png toolbar is straightforward using common tools, svg seems less accessible.

butterw avatar Jan 26 '21 19:01 butterw

I have some ideas for the toolbar. I haven't gotten around to implementing any, yet, but I wanted dynamic options (we discussed having buttons 1, 2, 3 to assign to any action). What I would like to see ideally is:

  1. All (or most) buttons can be hidden.
  2. Additional custom buttons can be added.
  3. Existing toolbars themes supported for the "known" buttons.
  4. Additional buttons supported by either a windows button style, or (if supported in theme) additional toolbar art.
  5. Text labeled buttons via font rendering (maximum flexibility)

The toolbar+ files could contain any number of icons that could be selected by the user for each custom button. If the button is missing when switching themes, the button could either disappear or just show a generic "missing" icon.

I don't know if any or all of this will ever be done, but that's what I had thought of so far.

adipose avatar Jan 28 '21 04:01 adipose

If would not mind of the old bmp/png toolbar support would be dropped to simplify things, and replaced with just new SVG toolbars. I am sure people could make a few good looking ones for us.

clsid2 avatar Jan 28 '21 14:01 clsid2

I am excited to see that additional custom buttons may be supported. I have always wanted to add audio and subtitle buttons to more easily select these tracks.

MadokaAyukawa avatar Jan 29 '21 01:01 MadokaAyukawa

You can also already easily toggle tracks by pressing A and S.

clsid2 avatar Jan 29 '21 01:01 clsid2

Yes, that's what I do now. But toggling through subtitle tracks is not that efficient if the file has a lot of them. If I want to go from Traditional Chinese back to Simplified Chinese, toggling is not my preferred option.

Video: MPEG4 Video (H264) 960x540 29.97fps [V: h264 high L3.1, yuv420p, 960x540 [default]]
Audio: DD+ 48000Hz stereo 128kbps [A: Korean [kor] (eac3, 48000 Hz, stereo, 128 kb/s)]
Subtitle: UTF-8 [S: English [eng] (subrip)]
Subtitle: UTF-8 [S: Arabic [ara] (subrip)]
Subtitle: UTF-8 [S: Chinese Simplified [chi] (subrip)]
Subtitle: UTF-8 [S: Chinese Traditional [chi] (subrip)]
Subtitle: UTF-8 [S: Croatian [hrv] (subrip)]
Subtitle: UTF-8 [S: Czech [cze] (subrip)]
Subtitle: UTF-8 [S: Danish [dan] (subrip)]
Subtitle: UTF-8 [S: Dutch [dut] (subrip)]
Subtitle: UTF-8 [S: Finnish [fin] (subrip)]
Subtitle: UTF-8 [S: French [fre] (subrip)]
Subtitle: UTF-8 [S: German [ger] (subrip)]
Subtitle: UTF-8 [S: Greek [gre] (subrip)]
Subtitle: UTF-8 [S: Hebrew [heb] (subrip)]
Subtitle: UTF-8 [S: Hungarian [hun] (subrip)]
Subtitle: UTF-8 [S: Indonesian [ind] (subrip)]
Subtitle: UTF-8 [S: Italian [ita] (subrip)]
Subtitle: UTF-8 [S: Japanese [jpn] (subrip)]
Subtitle: UTF-8 [S: Malay [may] (subrip)]
Subtitle: UTF-8 [S: Norwegian Bokmal [nob] (subrip)]
Subtitle: UTF-8 [S: Polish [pol] (subrip)]
Subtitle: UTF-8 [S: Portuguese [por] (subrip)]
Subtitle: UTF-8 [S: Brazilian Portuguese [por] (subrip)]
Subtitle: UTF-8 [S: Romanian [rum] (subrip)]
Subtitle: UTF-8 [S: Russian [rus] (subrip)]
Subtitle: UTF-8 [S: Spanish [spa] (subrip)]
Subtitle: UTF-8 [S: European Spanish [spa] (subrip)]
Subtitle: UTF-8 [S: Swedish [swe] (subrip)]
Subtitle: UTF-8 [S: Thai [tha] (subrip)]
Subtitle: UTF-8 [S: Turkish [tur] (subrip)]
Subtitle: UTF-8 [S: Vietnamese [vie] (subrip)]
Subtitle: UTF-8 [S: No subtitles]

MadokaAyukawa avatar Jan 29 '21 02:01 MadokaAyukawa

Buttons would do exactly the same. If you want a menu, right-click on the video.

clsid2 avatar Jan 29 '21 11:01 clsid2

My mistake then, as I was imagining the buttons giving direct access to the audio/subtitle selection menus.

MadokaAyukawa avatar Jan 29 '21 17:01 MadokaAyukawa

Option to select different toolbar size for windowed and full-screen modes would be useful, IMHO. Or ability to use different sets of pngs/bmps for two modes, if they exist in the main folder..

mselmanyildirim avatar Feb 07 '21 15:02 mselmanyildirim

Option to select different toolbar size for windowed and full-screen modes would be useful, IMHO. Or ability to use different sets of pngs/bmps for two modes, if they exist in the main folder..

The toolbars could scale between a few sizes depending on the size of the window. Especially if SVG that might be easy to support.

adipose avatar Feb 07 '21 15:02 adipose

Having a more dynamic toolbar (e.g. SVG-based icons) could open the door to users adding the buttons they want as well (seems that was already implied earlier, just adding that I need that feature). Would love to have a repeat, show playlist and subtitle toggle buttons in the toolbar for example!

gordonfreeman01 avatar Mar 06 '21 10:03 gordonfreeman01

Personally the only things that don't like are the volume slider and the position slider. Is there a possibility to change these (without dark theme)?

ale5000-git avatar Mar 06 '21 17:03 ale5000-git

A light color version of the dark theme might be added in the future.

clsid2 avatar Mar 06 '21 21:03 clsid2

I noticed that when the Dark Theme is enabled the external toolbar image isn't loaded, is there an option to enable this?

ale5000-git avatar Mar 09 '21 13:03 ale5000-git

Change filename to "toolbar_dark"

clsid2 avatar Mar 09 '21 14:03 clsid2

https://github.com/clsid2/mpc-hc/pull/1002

adipose avatar Mar 18 '21 20:03 adipose

Screenshot 2022-04-21 024404 Screenshot 2022-04-21 024457

This is modified version of Simple MPC-HC Toolbar by MadAkella and I think it's time for more modern default toolbar.

That would be great if only one file used for toolbar and not separate toolbar.svg and toolbar_dark.svg files for different themes. Currently all colors are overwritten by white color for toolbar_dark.svg! Toolbar designer should use compatible colors that looks good on both light and dark themes or provide optional styles which then should be selected dynamically.

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640">
  <style>
    .light {stroke: black; fill: black}
    .dark {stroke: white; fill: white}
  </style>
  <circle class="light" cx="320" cy="320" r="100"/>
</svg>

toolbar.svg

Soberia avatar Apr 20 '22 23:04 Soberia

Writing some ideas + some fixes needed. fin

Ideas: 1. Good idea to remove separators & framestep button. 2. Remove speaker icon from statusbar.

Fixes: 1. All toolbar buttons are misplaced vertically. They are not at the middle. a) From play to mute/unmute buttons are placed one step up from mid point. b) Volume slider is placed two steps up from mid point. 2. Volume slider horizontal position does not match the same logic as the left side. Look at Play Button and Playing [H/W]. They are at same line. So the volume slider end should be at same line with the speaker icon or video lenght text (if speaker icon is removed). 3. [Light theme only] Here when clicking on all toolbar buttons, they are moving, means they are giving clicking effect. Remove that effect from light theme. ezgif-3-efe4412453

After all these, implement everything similar in light theme. Means both the themes will be exact similar but with different colour theme L I will provide RGB values of those colours if you need. Or use different colour if you have better colour ideas in your mind.

bibsp avatar Apr 21 '22 04:04 bibsp

Screenshot 2022-04-21 024404

Screenshot 2022-04-21 024457

This is modified version of Simple MPC-HC Toolbar by MadAkella and I think it's time for more modern default toolbar.

That would be great if only one file used for toolbar and not separate toolbar.svg and toolbar_dark.svg files for different themes. Currently all colors are overwritten by white color for toolbar_dark.svg! Toolbar designer should use compatible colors that looks good on both light and dark themes or provide optional styles which then should be selected dynamically.


<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640">

  <style>

    .light {stroke: black; fill: black}

    .dark {stroke: white; fill: white}

  </style>

  <circle class="light" cx="320" cy="320" r="100"/>

</svg>

toolbar.svg

You can avoid the dark theme overwriting the colors with white, depending on how you name the file. But the new design will get rid off auto recoloring.

adipose avatar Apr 24 '22 02:04 adipose

3. [Light theme only] Here when clicking on all toolbar buttons, they are moving, means they are giving clicking effect. Remove that effect from light theme. ezgif-3-efe4412453

When I designed the original "dark" themed draw for the toolbar, I disabled the offset button press. However, it was always part of the classic theme. It's a "feature," you might say, of CToolBar to make it appear that 3d buttons are actually moving "into" the screen. Since there is no 3d border, etc., I didn't like it and went for the flat highlighted look.

My general rule was to leave classic theme alone. Depending on the toolbar art, that style might look better. Although, with the blue square, probably not.

Anyway, if the toolbars are all to look uniform across themes it has to be looked at. I went ahead and committed that change. It does make me think, though, about that code. One of the things I'm doing in the drawing is making "dark" themed buttons instead of using the windows blue highlighting. But if we want toolbars to look similar across themes, maybe we should throw out the classic behavior entirely, for the toolbar. Then both would follow an identical codepath.

@clsid2, maybe you want to weigh in here. But there is a deeper issue with volume, seekbar, etc., that they are pretty dated and even if you prefer the classic theme, maybe the "modern" elements might be allowed at least in the player toolbar, volume control, seekbar, etc.

It wouldn't be that hard to support a "light" modern theme, either. I just never got around to it. Basically someone has to define the colors and we have to make it a selectable option--and the code needs updating to not use constant color refs. I'm not sure dialogs really need any change--they are basically just native windows widgets and they look normal. Even if the "light" theme was different from classic windows in the player, the dialogs could "pass" as they are still light. If we wanted it all to be fully colorizable, it's a bit more work, but only because certain widgets like checkboxes and radios have some pre-rendered assets.

adipose avatar Apr 24 '22 06:04 adipose

When I designed the original "dark" themed draw for the toolbar, I disabled the offset button press.

I understand that. That was a good idea. My idea is to make the themes identical.

I feel it's better to mention all these in a same place now, so that you guys can work on those when you touch this topic. Do whatever you think best for this, just maintain consistency. Thanks.

bibsp avatar Apr 24 '22 07:04 bibsp

@adipose Using a modern seekbar/toolbar/volume in classic theme would be fine with me.

Would it be possible to query the colors for those elements based on the active Windows theme? So we can keep being compatible with custom Windows themes and the special high contrast color themes that Windows offers.

Offering multiple modern themes would of course also be good idea. Have a Themes subfolder, where users can provide the necessary data through: theme.ini toolbar.svg logo.png Toolbar/logo could be optional. The theme.ini should have a value to choose between either Light or Dark as basis/fallback for those images and all the other small images used in the GUI.

Dark and Light themes (and eventually maybe more) would be internally defined themes.

What did you think of my idea that I posted a while ago to use two SVG images (empty+full) to combine for rendering the volume slider?

clsid2 avatar Apr 24 '22 12:04 clsid2

The two space volume slider is a good idea. Once that is done, it will be consistent across themes.

adipose avatar Apr 24 '22 14:04 adipose

Please consider adding a Quit icon at the right most corner on the toolbar, because other players like vlc has the quit icon/button on the toolbar.

It would be handy to use only mouse, of course I have mapped the Esc on the keyboard to quit the player, but what if I was already fiddling around with the mouse, so that I can click on quit button on toolbar rather than using other hand to reach out or right clicking and clicking again on Exit context-menu.

"Adding Quit button on the toolbar" is the most requested feature in original MPC where they used to track all the tickets on a different website something called "trac". Why is it a big deal to add a quit button? Is it too much to ask ?

Usability and Accessibility are important for any project.

IsaacHub avatar May 30 '22 15:05 IsaacHub

The player window has a close button. You can also close it with the standard Windows shortcut Alt+F4. There also is an exit entry in the right-click menu.

Adding it to toolbar does not make any sense and is not going to happen. I am not debating it. Any attempt to do that will result in a ban.

VLC does not have a close button in its toolbar. So you might be confused with the titlebar. If that is somehow hidden for you for MPC-HC, then press 3 to reset to normal view.

clsid2 avatar May 30 '22 16:05 clsid2

(English is not my first language, sorry If my comment hurt you in anyway, I'm not good at english phrases and sentence making) Everyone knows player window has a close button.

I'm talking about Fullscreen mode. (no titlebar in fullscreen) and VLC has the option to add/remove whatever buttons we want in fullscreen, just FYI.

I know right-click menu has Exit entry (two clicks), we can save one extra unnecessary click by having an exit button on the toolbar. That's all.

I'm not into any confusion or debate or to hurt anyone by pointing issues. I respect your opinion, you are the owner, and this is a free player so I won't ask anything, just suggested. My intention was to make the MPC better for all users. No need to be angry on me.

This comment is only for making my previous comment clear, I'M NOT DEBATING. I respect everyone.

Thanks for this awesome media player. It's been a great journey with this MPC player.

IsaacHub avatar May 30 '22 16:05 IsaacHub

@clsid2

https://github.com/clsid2/mpc-hc/pull/1002

I've added code to support a custom volume draw. Seems to work ok. I've started removing legacy/modern codeblocks as it's getting too confusing maintaining:

Classic volume Dark (themed) volume "Modern" volume. Toolbar based volume draw*

In particular the calculations for how to draw everything including the thumb scroller is getting convoluted so I've changed it to only support the last type of volume control.

adipose avatar Jun 01 '22 01:06 adipose

Can you make a test build?

clsid2 avatar Jun 02 '22 17:06 clsid2