Follow-up to #6646.
Fix wrong flag use: #6646 (comment)
JIRA issue: CORE-19494
- Delete SmallStartMenu flag (wrong) from
_TW_STUCKRECTS2.
- Rename _TW_STUCKRECTS2.SmallIcons as
SmSmallIcons.
- Use SmSmallIcons flag.
Improve customization of Start Menu.
JIRA issue: CORE-19494
- Add SmallStartMenu flag to TW_STRUCKRECTS2
structure.
- Add IDS_ADVANCED_SMALL_START_MENU
resource string.
- Update g_TaskbarSettings.sr.SmallStartMenu via
a callback function.
- Check g_TaskbarSettings.sr.SmallStartMenu
when Start Menu is updated.
Automatically adjusts the spacing of the tray icons according to the small
or large taskbar icons setting. Also, a minor bug fix to the clock spacing
when switching between taskbar icon sizes.
CORE-19380
Update the ROS-specific CompactTrayIcons registry value from a binary
yes/no to have three states. The three states are as follows:
0 (default) - Automatic. When small taskbar icons are used, the
notification area will use compact tray icon spacing. When large
taskbar icons are used, the notification area will use larger tray
icon spacing. While no version of Windows behaves this way, I believe
this is a smart default choice for ReactOS since users wanting large
taskbar icons will generally expect larger tray icon spacing, while
users with small taskbar icons may want more compact spacing.
1 - Never Compact. Regardless of the taskbar icon size setting, the
notification area will always use the larger spacing. This follows
the behavior of Windows 7 and newer versions.
2 - Always Compact. Regardless of the taskbar icon size setting, the
notification area will always use the compact spacing. This follows
the behavior of Windows Vista and older versions.
Fix a clock spacing bug that occurs when changing the taskbar size
before advancing to the next minute. The taskbar clock now adjusts
its spacing when the size of the taskbar changes.
CORE-11698, CORE-15369
Allows a user to set the icon size and show or hide the desktop button in
the taskbar using the taskbar properties menu. After applying these changes,
the taskbar updates and resizes without requiring a restart.
- This PR moves the 'Notification Area' section into its own separate tab.
This allows us to include more options for users without increasing the
size of the window. It is also very similar to the Windows Vista taskbar
properties menu.
- Some minor changes to allow the taskbar to refresh its view when the icon
size or show desktop button setting changes.
When using large taskbar icon:
- Increase the padding around system tray icons.
- Push the clock text further to the right, increasing the left padding
between the clock and notification icons.
This matches Windows 7 shell behavior.
- Correct the spacing for the clock area, in the case when bPreferDate is
enabled, only two lines are visible, and the day of the week is shorter
than the date.
CORE-11698
- Use HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\TaskbarSmallIcons
registry key to store the icon size setting for the taskbar.
- If the registry value is missing, small icons will be used by default.
- If the registry value is set to 1, it will also use small icons.
- Only if the value exists and is set to 0 it will use large icons. This allows us
to use the same registry value as Windows 7 explorer, while also keeping
the taskbar icons small in most cases, especially running the shell
on unmodified Windows Server 2003.
CORE-11698
- Add registry key to show the time and date when two lines are available
in the taskbar clock area.
- Keep old behavior when `PreferDateOverWeekday` registry key in
`HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced`
is set to 0 or not present.
When three or more lines are available, the clock will continue to show
the time, day of the week, and the date. When only one line is visible,
the clock will continue to only display the time.
CORE-19018
- Rewrite the taskbar settings and start menu settings property sheets.
- All settings in the taskbar settings property sheet can be loaded and saved properly except for the quick launch one which will be implemented later.
- Implement toggling lock, autohide and always on top. The rest will be implemented later.