[SHELL32]
[BROWSEUI]
* Move undocshell.h to a shared location, and move some shared utility functions into it.
* Replace all the COM object constructor functions with generic equivalents.
* Fixes a big bunch of "problems" found by Coverity Scan, but I don't have the list of CID at the moment.
svn path=/branches/shell-experiments/; revision=64854
* Notify the parent menu popup when the deskbar is closing.
[EXPLORER-NEW]
* Set the button pressed when the start menu gets displayed.
* Set the button released when the start menu notifies it was closed.
svn path=/branches/shell-experiments/; revision=63710
* Fix gcc compilation.
[BROWSEUI/RSHELL]
* Use virtual destructors and cleanup with delete in the creator functions.
* Try to fix a bit the "close" flow, so that less circular references remain when the filebrowser windows are closed.
svn path=/branches/shell-experiments/; revision=63539
* Implement selecting the first/last item, and make the menu system choose to select the first item when opening a submenu with the keyboard.
svn path=/branches/shell-experiments/; revision=62959
* Fixed the context menu for shell items.
* Some more code style improvements.
* Moved the toggles between using system classes and rshell classes into the constructor functions, so the code is easier to read.
CORE-7586
svn path=/branches/shell-experiments/; revision=62752
* Redesigned large portions of the focus manager. All the mouse interactions seem to work now
CORE-7586.
svn path=/branches/shell-experiments/; revision=62567
* Implement WH_MSGFILTER hooking to handle the popup menus from the horizontal menubar. Switching between menu items wby moving the mouse now works, but at the moment, the non-menu popups (including the start menu) are somewhat glitchy.
CORE-7586
svn path=/branches/shell-experiments/; revision=62534
* Begin work in improving the behaviour of the horizontal mode menuband. There's still a lot of work to do, and some things are temporarily worse than before, but in other places it has improved already.
CORE-7586
svn path=/branches/shell-experiments/; revision=62520
* Fix keyboard navigation and hottracking behaviour. One glitch remains where quickly moving the mouse to a parent's toolbar item, and returning to the submenu before it closes, won't restore the parent's hot item to the one with the submenu.
svn path=/branches/shell-experiments/; revision=62509
* Fix some null dereferences.
* Fix positioning of submenus of an horizontal menu toolbar.
[BROWSEUI]
* Fix some null dereferences.
CORE-7586
svn path=/branches/shell-experiments/; revision=62492
* Workaround for the exec issue. Ros currently seems to send a bogus WM_ACTIVATE message when clicking while the window is already active. Proper fix may come later if I can figure out why this happens.
CORE-7586
svn path=/branches/shell-experiments/; revision=62475
* Load and use rshell for the menubar.
* Properly forward WM_NOTIFY and WM_COMMAND messages to the toolbars.
[RSHELL]
* Improve behaviour of horizontal menubands.
* Clicking on submenu items does not work yet.
CORE-7586
svn path=/branches/shell-experiments/; revision=62448
* SHInvokeDefaultCommand is supposed to invoke the DEFAULT command, so why was bInvokeDefault given FALSE?!
[RSHELL]
* A couple of trivial fixes.
[NTUSER/USER32]
* I missed two bits. See CORE-7966 for more info on the menu issue.
CORE-7586
svn path=/branches/shell-experiments/; revision=62420
* Improve logging in case of unexpected failures, and trace the creation of toolbar (menu) items.
CORE-7586
svn path=/branches/shell-experiments/; revision=62414
* Move dependency copying to the target script, so that the target properly depends on the source and not the other way around.
* Make all the custom constructors WINAPI.
* Add all the custom constructors to the spec file.
CORE-7596
svn path=/branches/shell-experiments/; revision=62365
* Show the start menu at the same position and alignment Windows uses.
[RSHELL]
* Use IShellFolder methods instead of SHCreateShellItem.
* Handle toolbar window events from the toolbar class.
* Improve the positioning calculations.
* TODO: How to tell the submenus of the start menu to show towards the left? For when the taskbar is ABE_RIGHT.
CORE-7596
svn path=/branches/shell-experiments/; revision=62334
* CMenuBand:
- Use a Pager control on top of the SF Toolbar, like Windows does.
- Cache the ideal size of the toolbars to reuse it next time the start menu shows.
- Draw the dropdown arrows on items with dropdowns.
- Cancel the timer and open a submenu immediately if the item is clicked.
- Draw the selected background color on the item with a popup if there is no other item being hovered.
- Add some space for the dropdown arrows in the size calculations (hardcoded).
- Simplify the size calculation and positioning.
CORE-7881
svn path=/branches/shell-experiments/; revision=62317
* CMenuDeskBar: Actually use the Popup flags to decide on the relative position of the submenus.
CORE-7886
svn path=/branches/shell-experiments/; revision=62296
* Take "DbgPrint" function from explorer-new.
* CMenuBand: Show placeholder if the band gets an empty IShellFolder. Added what I guess is a hack, to allow CMenuDeskBar to get the submenu popup from the band.
* CMenuDeskBar: Use WM_ACTIVATE and WM_ACTIVATEAPP to detect when the menu should be closed. Uses the hack above for the exception of showing a submenu.
CORE-7886
svn path=/branches/shell-experiments/; revision=62295
* CMenuBand, CMenuDeskBar: Improve the SubMenu hierarchy and OnSelect flow. Now the menu will spread a FullCancel or Execute upwards and close the whole start menu.
CORE-7881
svn path=/branches/shell-experiments/; revision=62280
* Improve the layout of the class definitions to make the important details easier to find.
* Rename private (non-COM) class methods to more appropriate names, including a prefix.
* CMenuBand: Make one submenu close before showing another one. This may not be happening in the same exact way windows does it.
CORE-7881
svn path=/branches/shell-experiments/; revision=62263
* CMenuBand: Implement rudimentary support for changing the hot item with the keyboard (up/down). The code can probable be simpler, and some corner cases need to be fixed, but it works.
* CMenuDeskBar: Attempt to redesign OnSelect to better match the windows behaviour, which is still mostly unknown.
* Make the log results more readable.
CORE-7881
svn path=/branches/shell-experiments/; revision=62262
* CMenuDeskBar: Use the submenu pointer to pass on the cancel events. Windows appears to call this with code=2 (cancellevel).
* CMenuBand: Begin implementing a focus manager for the menu windows. This class will take care of handling mouse and keyboard interactions, including closing the start menu and submenus when the user clicks outside the menu window.
CORE-7881
svn path=/branches/shell-experiments/; revision=62259
* Improve the logging system to allow using the same logger for both windows classes and rshell classes.
* Add a wrapper for CMenuSite.
* CMenuDeskBar: Reduce the log differences by keeping a cached copy of the client HWND.
* CMenuBand: Reduce the log differences by keeping a copy of the top level HWND. Will be used later.
CORE-7586
svn path=/branches/shell-experiments/; revision=62253
* Fix some more C-style casts, and misc coding style changes.
* CMenuBand: Create a skeleton of the functions that would handle SMIF_TRACKPOPUP submenus.
* CMenuDeskBar: Fix the redraw issue that prevented submenus from working as expected.
CORE-7886
svn path=/branches/shell-experiments/; revision=62248
* CMenuBand: Improve wrapper logging to get a better picture. Handle more SIDs on QueryService. Send selection messages on hot item changed and on execute.
* CMenuDeskBar: Improve wrapper logging to get a better picture. Handle more SIDs on QueryService. Begin handling more cases in OnSelect.
CORE-7881
svn path=/branches/shell-experiments/; revision=62243
* CMenuBand: Fix display of icons for the static toolbar.
* CMenuDeskBar: Fix positioning of the window not to cross the top edge.
CORE-7881
svn path=/branches/shell-experiments/; revision=62242
* Change C-style casts to static_cast where possible, and reinterpret_cast elsewhere.
* Make coding style and formatting more consistent.
svn path=/branches/shell-experiments/; revision=62239
* CMenuDeskBar: Use the proper value for style in AdjustWindowRect.
* CMenuBand: Implement submenu hot-tracking timer. Not functional yet (submenu creation not implemented).
CORE-7881
svn path=/branches/shell-experiments/; revision=62227
- CMenuDeskBar: Implement showing a shadow. Implement closing the menu when it loses focus (this only works with the stock menu band for now)
svn path=/branches/shell-experiments/; revision=62225
- CMenuBand: Fix the size of the separators by setting iBitmap to 0 (which acts as the width of the separator).
- CMenuDeskBar:
Create the window only in CMenuDeskBar::SetClient and not in SetSite.
Greatly simplify SetSite.
Make sure that WS_EX_TOPMOST isn't removed when we call SetWindowPos
Do not forward requests for the SID_SMenuPopup service to the taskbar as this causes the menu band to capture the mouse for the taskbar and not the desk bar
svn path=/branches/shell-experiments/; revision=62223
* A couple small fixes before I go to bed.
* Add to CD, so explorer_new can be run in ros, with the custom classes.
CORE-7886
svn path=/branches/shell-experiments/; revision=62156
* Add more missing code. The custom CMenuDeskBand is now able to show the contents of a CMenuSite/CMenuBand in the right size, including the banner (not yet fully functional).
* Organize the method list in CMenuSite by interface.
[EXPLORER-NEW]
* Revert the hacks from r62134.
[PSDK]
* Add IUnknown_QueryServiceExec to shlwapi_undoc.h
svn path=/branches/shell-experiments/; revision=62149
* Port the implementation of CMenuDeskBar to rshell (still disabled by default).
* Begin implementing missing features:
- Notify the band of the icon size change from SetIconSize.
svn path=/branches/shell-experiments/; revision=62138
* Remove from build while it hangs VS2013.
[EXPLORER-NEW]
* Hack it to work on Windows 7, even if an existing explorer is already running.
* Move start menu popup to its own function, for easier debugging.
* Maybe-fix a drawing issue if no theme is selected.
[RSHELL]
* Added wrapper for CMenuBand
* The cmake script should not use a hardcoded path
* Better name for the log file.
CORE-7886
svn path=/branches/shell-experiments/; revision=62134