Exactly one month ago, I released MPUI 1.1.4. The first bug reports came in only one day after the release, so I planned that 1.1.5 shall be a bugfix release some days later. For reasons I can’t remember, I missed this date. This may be in part due to the fact that my TODO list grew, no, it exploded because of countless suggestions I received. In addition, there were the preparations for the CLT that left almost no time for other stuff.
In the time that was left, I started to implement the lesser features (as in »requiring the least time to implement«) on my list. If I hadn’t decided to draw the line today, development of 1.1.5 would have continued forever, I guess.
The menu trick
The most important change (besides the bugfixes, of course) was the abolishment of the main menu. Yes, that’s right – there’s no main menu in MPUI any longer. The thing that looks like a menu bar in the MPUI window now is actually a tool bar whose buttons have no icons and are associated with the old submenus. The reason for doing this is a strange graphical glitch caused by the VCL (Delphi’s class library, the Visual Component Library): If XP theming is activated, parts of the menu bar are drawn in the wrong color. This drove some users mad, so I wanted to change it. My first try was Delphi 2005 that has a fixed VCL. Unfortunately, it had some other problems: Checked items in the menus were indistinguishable from unchecked ones. So I decided to use another workaround for the problem.
A nice side effect of the new menu system is the better handling of keyboard shortcuts. When I tried to move the single-keystroke shortcuts (F, O, T and so on) into the menu items (it looked better this way), I forgot that these shortcuts affect the whole application, including edit boxes, for example. (This is the way
TranslateMessage from the Win32 API works.) That’s why it was impossible to type certain characters in the MPlayer options box in MPUI 1.1.4. The accelerator keys of the fake menus are not automatically translated by Windows, so this problem went away.