Commit graph

31 commits

Author SHA1 Message Date
Ethan Rodensky
70d7009ad9 [EXPLORER] Improve appearance of Show Desktop button (#5744)
While functional, Katayama's show desktop button left much to be desired
in the realm of appearances. This commit brings improvements for it:

- When using the classic theme, the Show Desktop button now appears
  more faithful to its Microsoft counterpart, emblazoned with an icon,
  and encased in a border only when hovered or pressed.
- With a visual style applied, the button behaves in one of two ways:
  - If present, the Show Desktop button now properly uses the relevant
    information from the visual style, just like on Windows 7.
  - Otherwise, the Show Desktop button uses an icon akin to when the
    classic theme is used, but with the button background's appearance
    repurposed from the taskbar toolbar buttons, which are guaranteed to
    exist in any Windows XP or Vista visual style you can find out there.

ReactOS's own Lautus and Mizu visual styles will be updated in the
following commits to utilize these features, while Lunar and Modern visual
styles left untouched to display Show Desktop button with icon instead.

CORE-15369
2024-07-24 11:08:36 +03:00
Whindmar Saksit
738c8fc27c
[EXPLORER] Execute RunOnce[Ex] before desktop is created (#7143)
CORE-19501
2024-07-17 12:42:22 +02:00
Katayama Hirofumi MZ
17b0623cf8
[EXPLORER] Start menu: Fix Small Icons flag (#6651)
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.
2024-03-22 21:15:22 +09:00
Katayama Hirofumi MZ
ad748b0b3b
[EXPLORER][SHELL32] Smaller Start Menu (#6646)
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.
2024-03-20 07:32:52 +09:00
Katayama Hirofumi MZ
8bd071a51e
[EXPLORER][SHELL32] Fix and improve Start Menu customization (#6596)
Correct the details of Start Menu customization.
JIRA issue: CORE-16956
- Hide the setting item if the item is restricted.
- Don't change restriction in Explorer.
- Fix Start Menu settings for restriction and registry.
- Fix and simplify code.
2024-03-11 20:18:07 +09:00
Katayama Hirofumi MZ
5daab33c59
[EXPLORER][SHELL32][SDK] Show/hide 'Run' menu item (#6592)
Improve Start Menu customization.
JIRA issue: CORE-16956
- Add SHSettingsChanged prototype to
  <undocshell.h>.
- Add SetRestriction helper function.
- Implement showing/hiding Run menu
  item of Start Menu.
2024-03-11 10:54:12 +09:00
Katayama Hirofumi MZ
d1ac33a9bd
[EXPLORER][SHELL32] Strengthen Start Menu Customize Part 1 (#6544)
Strengthen customization of Start menu.
JIRA issue: CORE-16956
- Modify IDD_CLASSICSTART_CUSTOMIZE dialog.
- Add some resource strings to shell32.dll.
- Add some helper functions.
- Disable Clear button if necessary.
- Add "Display Favorites" and "Display Log Off"
  items into IDC_CLASSICSTART_SETTINGS treeview
  control.
- Implement two items' action.
- Recreate the start menu if WM_SETTINGCHANGE
  message received.
2024-02-27 20:41:43 +09:00
Carl J. Bialorucki
77653462a9
[EXPLORER] Notification area icon improvements (#6169)
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.
2023-12-23 21:21:12 +01:00
Hermès Bélusca-Maïto
6cdaad13bd
Add missing OEMRESOURCE for using the OBM_, OIC_, OCR_ defines from winuser.h
Fix build by commit 072965eb0 for modules:
EXPLORER, COMCTL32, IERNONCE, URLMON, USER32_(API|WINE)TESTS

Note that some of these modules (from Wine) already have the OEMRESOURCE
defined; however, only in one of their files. But we have added
precompiled headers for them where we have included either windows.h
or winuser.h in them, without OEMRESOURCE. The result is, that when
compiling these modules with PCH support, the OEMRESOURCE define was
_not_ satisfied and thus, compile errors arose.

Fix this by adding #define OEMRESOURCE before the windows headers also
in the precompiled headers we have added for these modules.
2023-11-22 17:02:45 +01:00
Carl J. Bialorucki
28ae9fb738
[EXPLORER] Set icon size and show or hide desktop button from taskbar properties (#5510)
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.
2023-08-10 17:06:55 +02:00
Carl J. Bialorucki
5b40f6f353
[EXPLORER] Add support for Windows 7 style system tray icon spacing (#5489)
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
2023-08-04 14:20:19 +03:00
Carl J. Bialorucki
0e8cf6ffd5
[EXPLORER] Large taskbar icon support (#5465)
- 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
2023-07-22 18:24:28 +03:00
Carl J. Bialorucki
19c8574ec8
[EXPLORER] Show time and date when two lines are available in the taskbar clock area (#5410)
- 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
2023-07-09 01:04:45 +03:00
Katayama Hirofumi MZ
e6bced7a35
[EXPLORER][RUNDLL32] Restore minimized non-task windows (#5228)
The minimized non-task windows were not usable due to the bugs. In some situations, the system will restore the minimized non-task windows.
- Add IsTaskWnd helper function.
- Add SendPulseToTray function to send a pulse to the tray window.
- At some shell hook handlings, send a pulse to the tray window.
- Add IgnorePulse flag to control the timing of restoring.
- Add a timer to reset IgnorePulse flag.
- If the pulse has come and IgnorePulse flag is false, then restore the minimized non-task windows.
- Modify the rundll32 window procedure.
- Use WINDOWPLACEMENT to restore the minimized windows.
CORE-13895, CORE-18350
2023-05-03 07:39:05 +09:00
Mark Jansen
55343f04b0
[MSPAINT][EXPLORER][SHELL32] Enable ATL asserts in CMake
CORE-17505

In MSVC builds they would not work reliably when enabled in the precompiled header
2022-09-10 17:27:50 +02:00
Katayama Hirofumi MZ
d958950217
[EXPLORER] Enable _DEBUG and fix assertion failures (#4306)
- Enable _DEBUG if debugging.
- Fix assertion failures.
CORE-18013
2022-01-24 10:26:13 +09:00
Hermès Bélusca-Maïto
a6bf77e7b9
[SDK:REACTOS] Move our ROS-specific header-only UI libraries into a "ui" sub-folder. (#4205) 2022-01-06 02:17:25 +01:00
Hermès Bélusca-Maïto
9393fc320e
[FORMATTING] Remove trailing whitespace. Addendum to 34593d93.
Excluded: 3rd-party code (incl. wine) and most of the win32ss.
2021-09-13 03:52:22 +02:00
Mark Jansen
f9e50f5471 [ATL] Add GET_X_LPARAM and GET_Y_LPARAM to atlwin.h
Remove all local definitions
2019-01-15 14:34:53 +02:00
Mark Jansen
6940d9fdf0
[EXPLORER] Add TWM_GETTASKSWITCH, which seems to be used on windows
to get a handle to the task switch control.
This can then be used to send messages to it, like hiding/showing buttons
CORE-15424
2018-12-17 20:38:38 +01:00
Giannis Adamopoulos
84fa20ec8b [EXPLORER]
-Rename StartMenuBtnCtxMenuCreator to CStartMenuBtnCtxMenu_CreateInstance.
-Rename CreateStartMenuSite to CStartMenuSite_CreateInstance.
-Remove a couple of definitions that were not used.
2018-11-27 10:33:42 +02:00
Katayama Hirofumi MZ
75b09f3f88 [EXPLORER][SHELL32][USER32] Implement 'Show the Desktop' action of Task Bar (#668)
The keyboard shortcuts Win+D and Win+M are also enabled.

- Implement IShellDispatch4::ToggleDesktop().
- Implement some commands in CTrayWindow.
- Add "sdk/include/reactos/traycmd.h" for tray commands.
- Fix task window switching.
- Improve the user32!SwitchToThisWindow() function and use it.

CORE-14318, CORE-13157
See also: CORE-14806 and CORE-8723
2018-07-13 10:34:42 +02:00
Hermès Bélusca-Maïto
12de9654b0
[EXPLORER] Simplify the current-shell-is-explorer check when trying to start the auto-start programs, by using the existing code. 2018-06-22 16:34:16 +02:00
Katayama Hirofumi MZ
0a8cd95cad [USERINIT][EXPLORER] Fix auto startup of Start Menu (#594)
- Remove code for Start-Menu auto-startup items from userinit and put it where it belongs: in explorer.

CORE-10839
2018-06-22 16:02:25 +02:00
Giannis Adamopoulos
5a1984c998 [EXPLORER] CTaskSwitchWnd: Implement getting the setting for grouping tasks. This doesn't work yet but the setting does get stored in m_IsGroupingEnabled. TSWM_ENABLEGROUPING is not needed. 2018-01-28 20:24:02 +02:00
Giannis Adamopoulos
455bce68b5 [EXPLORER] -Make CSysPagerWnd, CTaskSwitchWnd, CTrayClockWnd and CTrayNotifyWnd proper com objects so that their lifetime is managed properly. 2018-01-28 18:35:16 +02:00
Giannis Adamopoulos
7f35908ad2 [EXPLORER] CTrayNotifyWnd: Simplify how it interacts with its parent and children. Clean up. 2018-01-27 19:41:09 +02:00
David Quintana
3d75cc0814 [EXPLORER] Split up the notification area into a few more manageable pieces. 2018-01-24 14:41:31 +01:00
gedmurphy
d66c6890f7 Initial implementation of a watcher for the systray (notification area) that removes icons if the owning process dies/terminates without removing it 2018-01-20 18:38:42 +00:00
Giannis Adamopoulos
2ed535da8a [EXPLORER] -Rewrite taskbar settings routines and dialog
- 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.
2017-11-01 01:04:39 +02:00
Colin Finck
c2c66aff7d Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
Renamed from reactos/base/shell/explorer/precomp.h (Browse further)