Commit graph

31 commits

Author SHA1 Message Date
Katayama Hirofumi MZ bb297bc351
[BROWSEUI] Use STDMETHOD macro and keyword override (#6569)
For simplicity and short typing.
JIRA issue: CORE-19469
- Replace "virtual HRESULT 
  STDMETHODCALLTYPE m"
  with "STDMETHOD(m)"
  (m is a method name).
- Replace "virtual t
  STDMETHODCALLTYPE m"
  with "STDMETHOD_(t, m)"
 (t is a type. m is a method name).
- Use "override" keyword as possible.
2024-03-05 00:53:11 +09:00
Katayama Hirofumi MZ 281f7c4e38
[BROWSEUI] Implement 'Add to Favorites' (#6543)
Implement Explorer's "Add to Favorites" feature.
JIRA issue: CORE-16857
- Add CreateShortcut helper function.
- Add CShellBrowser::OnAddToFavorites.
2024-02-27 19:55:57 +09:00
Hermès Bélusca-Maïto 46ab34662d
[BROWSEUI] Some parenthesizing clarification around "xxx & YYY" expressions in conditionals 2023-10-28 17:56:55 +02:00
Carl J. Bialorucki f744bb2994
[BROWSEUI] More settings and window refresh (#5584)
Adds the option to set the address edit box to use the display name or the full path. Also refreshes the window title and edit box in all open explorer windows when changing these settings using the folder options dialog.

## PROPOSED CHANGES ##
- Create a new CabinetStateSettings type that inherits from the CABINETSTATE type. This allows us to add additional cabinet state settings not exposed in the CABINETSTATE type as well as adding a Load() method to easily populate the cabinet state settings.

- Add a global cabinet state settings object. While most settings in browseui are stored independently in each shellbrowser window, cabinet state settings are global and apply to every shellbrowser window. This can be confirmed on Windows Server 2003 and Windows 7.

- When receiving the WM_SETTINGCHANGE window message from the folder options dialog, refresh the title of the window and the text in the address edit box. This is the same behavior as Windows Server 2003 and Windows 7.
Add a DWORD registry value to HKCU\...\Explorer\CabinetState\FullPathAddress to allow users to toggle this setting on or off in our folder options.

CORE-9277
2023-10-02 22:43:00 +02:00
Katayama Hirofumi MZ 4814dfea01
[BROWSEUI][SDK] Half-implement CShellBrowser::GetPropertyBag (#5635)
- Implement CShellBrowser::GetPropertyBag
  a little by using SHGetViewStatePropertyBag.
- Add SHGetPathFromIDListWrapW prototype to
<shlwapi_undoc.h>.
CORE-9283
2023-09-03 12:09:55 +09:00
Katayama Hirofumi MZ ff63d06406
[BROWSEUI] Support mouse back and forward buttons (#5623)
Add WM_APPCOMMAND handling to the
shell browser. CORE-16776
2023-08-28 00:12:47 +09:00
Carl J. Bialorucki 43b3dc2034
[BROWSEUI] Refactor settings and sync them between windows (#5496)
This works similarly to how our shell stores its settings from a software design standpoint.

- Add settings.cpp file and ShellSettings structure to load and save settings.
- Add a registry value to hivedef.inf for the locked toolbar state.
  This prevents a bug where the associated registry key cannot be opened or saved to.
- Add new BWM_SETTINGCHANGE window message to refresh the UI on setting changes
  and send it to every open window when saving settings to the registry.
- Add new BWM_GETSETTINGSPTR window message to share the shellbrowser settings
  structure pointer with child windows and toolbars.
2023-08-17 12:14:41 +03:00
Carl J. Bialorucki d70e798977
[BROWSEUI] Use details view by default (#5452) CORE-18904
* Detail view by default, except in special folders
* Added hack/fixme disclaimer
2023-07-28 21:20:00 +02:00
Carl J. Bialorucki 6d37456542
[BROWSEUI] Add an option to use full folder path in the window title (#5468)
- Set `HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CabinetState\FullPath` to 0 by default.
  Adding this registry value also enables the "Display the full path in the title bar" option in our folder options window.
- Query the same registry key when the file explorer is started to determine whether to use the full path or the display name in the window title.

CORE-19046 CORE-18904
2023-07-22 17:50:39 +03:00
Carl J. Bialorucki bfadb22da1
[BROWSEUI] Respect status bar display state in Folders/Search panes (#5445)
- Use proper window styles when creating status bar window.
- Specify WS_VISIBLE style only when status bar display is enabled.
- Use ::CreateWindowExW() with a global namespace scope operator.
- Fix some magic constants.

CORE-19027
2023-07-17 01:14:33 +03:00
Carl J. Bialorucki 209439a5ae
[BROWSEUI] Add status bar view state persistence (#5366)
- Use `HKCU\Software\Microsoft\Internet Explorer\Main\StatusBarOther` registry key for the setting persistence.
- Set its value to 1 when the status bar is visible, and to 0 when the status bar is hidden.
- Query it when the file browser is initialized to set the correct view state for the status bar.
- Set the default state of the status bar to hidden if the registry key does not exist, matching the behavior of Windows Server 2003.

CORE-19010
2023-06-29 18:50:43 +03:00
Mark Jansen cd2d284142
[EXPLORER][BROWSEUI][SHELL32][NETSHELL] Fix wrong usage of CComPtr 2022-10-02 00:38:23 +02: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 ca087b6a18 [BROWSEUI] Update the current directory before creating a view
This way, when the view asks for a directory _during creation_ it
does not get either an old, or an invalid directory
CORE-17270
2020-10-04 19:34:20 +02:00
Mark Jansen 7b17d8d900 [BROWSEUI] Remove refactoring leftovers 2020-10-04 19:34:20 +02:00
Hermès Bélusca-Maïto 15bc263b07
[MSPAINT] Shorten the license string that is displayed in ShellAbout() dialog. CORE-12356
[MPLAY32][REGEDIT][TASKMGR][WORDPAD][BROWSEUI]
Use NULL for empty handles / string pointers in ShellAbout() calls.
2020-01-24 23:40:32 +01:00
Hermès Bélusca-Maïto a946146efc
[BROWSEUI] Remove unneeded header, addendum to d967b5aa. 2019-12-29 16:23:37 +01:00
Hermès Bélusca-Maïto d967b5aa25
[BROWSEUI] Remove useless RegenerateUserEnvironment() call.
[SHELL32]  Call RegenerateUserEnvironment() in WM_SETTINGCHANGE handler **ONLY** when lParam points to the L"Environment" string.
CORE-15147
2019-12-29 16:14:26 +01:00
Brock Mammen 4212f4b175 [SHELLFIND] Add CSearchBar 2019-09-15 19:46:36 +03:00
Jared Smudde 7e18b6d0eb
[BROWSEUI] Enable the Disconnect Network Drive menu item. (#1522)
CORE-13516, CORE-13518
2019-04-24 04:28:05 +02:00
Katayama Hirofumi MZ f222e89d86 [SHELL32] Localize caption of Folder Options
CORE-15247
2018-12-14 19:56:44 +09:00
Giannis Adamopoulos 62c33fbf69 [BROWSEUI] CShellBrowser: Don't pass any parameters to Initialize. Let users use the BrowseObject method instead. 2018-11-27 10:33:57 +02:00
Giannis Adamopoulos a2bd9b44a9 [BROWSEUI] Simplify toggling the search band
In windows the toolbar itself creates the search shell extension. In ros we send a command to the CShellBrowser to let it handle it itself. Use the same command for showing and hiding it.
2018-10-27 15:08:28 +03:00
Giannis Adamopoulos a0c5cafce5 [BROWSEUI] Implement toggling the folders and search band with the toolbar and make their buttons appear pressed when they are shown.
CBaseBarSite: Ask the CBaseBar to close itself when the x button is pressed.
CBaseBar: Hide the bar and inform its site that it is closing when it gets the close command.
CShellBrowser: Cache the guid of the current vertical bar and use it to report correct command status to the toolbar.
Also implement toggling the Folders, Favorites, History and search commands.
CInternetToolbar: Query the Folders and Search command status from the site so that they can be properly be shown as pressed.
2018-10-27 15:08:24 +03:00
Katayama Hirofumi MZ a882ec7a02 [SHELL32][EXPLORER] Update system-wide environment variables (#663)
- Implement shell32 RegenerateUserEnvironment() function and use it.
- CShellBrowser and CDesktopBrowser implements WM_SETTINGCHANGE actions.

CORE-1459, CORE-14397
2018-07-08 16:32:42 +02:00
Katayama Hirofumi MZ 6e6c46a832 [BROWSEUI] Re-enable the "Folder Options" menu item (#630)
It was originally disabled in r71192 (8b77c254).
CORE-11141
2018-06-24 20:02:36 +02:00
Timo Kreuzer d281d14fd1 [REACTOS] Fix a number of Get/SetWindowsLong*Ptr* issues and use GWLP_* instead of GWL_* where appropriate. 2018-02-19 22:36:36 +01:00
Mark Jansen e5f9029826
[BROWSEUI] Do not clear a CComPtr with memset. 2018-01-13 20:57:04 +01:00
Giannis Adamopoulos d163627319 [BROWSEUI] Move _ILIsDesktop to a shared header to avoid having 3 instances of it 2017-12-07 23:26:30 +02:00
Amine Khaldi 5cb0615147 [BROWSEUI][DEVMGR][EXPLORER][NTGDI][NTOBJSHEX][NTVDM][SETUPAPI] Remove/comment out some unused variables. CORE-11799 (#94) 2017-10-28 15:04:18 +01: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/dll/win32/browseui/shellbrowser.cpp (Browse further)