* Fix keyboard navigation on vertical popup menus. Navigating through the menubar does not work yet.
CORE-7586
svn path=/branches/shell-experiments/; revision=62753
* 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
* Code cleanups and formatting.
* Remove the logging wrappers. If I need them again I'll bring them back.
* Try to fix a few "glitches" in the hot-tracking.
svn path=/branches/shell-experiments/; revision=62693
* Some code improvements, refactoring, and commenting.
* Using alternative method of handling hot-tracking, which does not break in win2003.
CORE-7586
svn path=/branches/shell-experiments/; revision=62681
* Improvements on the focus manager. The menus work better, but still not fully. Commiting for backup/history purposes.
CORE-7586
svn path=/branches/shell-experiments/; revision=62601
* Redesigned large portions of the focus manager. All the mouse interactions seem to work now
CORE-7586.
svn path=/branches/shell-experiments/; revision=62567
* Improve behaviour when hovering and clicking on the menubar. It's still somewhat glitchy though.
CORE-7586
svn path=/branches/shell-experiments/; revision=62539
* Improve mouse navigation of the menubar.
* Fix the menus.
* Fix the case for system includes (hopefully fixes).
CORE-7586
svn path=/branches/shell-experiments/; revision=62537
* 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 the hot tracking on the filebrowser menubar. Still does not handle switching menus while hovering, though.
CORE-7586
svn path=/branches/shell-experiments/; revision=62514
* 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
* SHGetImageList should not return a duplicated ImageList. In Windows the pointers returned by Shell_GetImageLists match the pointers returned by SHGetImageList for SHIL_SMALL and SHIL_LARGE.
[RSHELL]
* Remove two obsolete debug prints.
svn path=/branches/shell-experiments/; revision=62483
* 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
* Fix reusing the same toolbar when SetMenu is called multiple times.
* Avoid some null dereferences.
[BROWSEUI]
* Temporarily (?) disable the logo band.
The browser window's "coolbar" and menubar now display and work properly in both Windows and ReactOS.
CORE-7586
svn path=/branches/shell-experiments/; revision=62472
* Give TrackPopupMenuEx the top-level window. Need to figure out how Windows does this, it probably does not simply use the top-level window that way.
* Give TrackPopupMenuEx better flags and a better exclude rect.
CORE-7586
svn path=/branches/shell-experiments/; revision=62469
* Rename the output to explorer_old
[EXPLORER-NEW]
* Rename the output to explorer
* Launch a browseui window when explorer is run with an existing shell process.
Shell-experiments will now be running the new shell by default.
This allows me to test the shell classes under more accurate conditions, so I was using it locally for a while.
I decided to commit because of two reasons:
1. It was making me temporarily revert some changes done to some files when I wanted to commit, and
2. It lets everyone see the results of the shell-experiments project without having to mess with the task manager.
Keep in mind that, as the branch name implies, it STILL is an experiment.
CORE-7586
svn path=/branches/shell-experiments/; revision=62449
* 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
* CMenuSite: Reworked the code to avoid SHIsSameObject, since newer versions of windows do not implement that function. The code should be equivalent, and does less unnecessary calls to QueryInterface.
CORE-7879
svn path=/branches/shell-experiments/; revision=62432
* CMenuSFToolbar: Keep the m_shellFolder pointer in a CComPtr, so that it doesn't get deleted and possibly reused for something else.
CORE-7586
svn path=/branches/shell-experiments/; revision=62429
* 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
* I was telling AddButton that all the items were the last, except the last. Now the submenus display properly. Some of them at least. Others get an exception, it seems.
CORE-7881
svn path=/branches/shell-experiments/; revision=62416
* 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 the copying back where it belongs. CMake may generate the dependencies the wrong way around (explorer-new should depend on rshell), but at least the copying works as expected, even if I always have to "build solution".
* Allow toggling between TBSTYLE_EX_VERTICAL and the manual TBSTATE_WRAP setting by (un)definiting TBSTYLE_EX_VERTICAL.
CORE-7881
svn path=/branches/shell-experiments/; revision=62412
* Improve encapsulation of the CMenuToolbarBase by avoiding unnecessary usages of the window handle from the derived classes.
CORE-7881
svn path=/branches/shell-experiments/; revision=62411
* CMenuToolbarBase: Use TBSTATE_BREAK on every button instead of TBSTYLE_EX_VERTICAL. This allows the vertical alignment to work on ros, although the separators are neither sized nor drawn correctly, and the arrow alignment is wrong.
NOTE: It's still not functional. Second level submenus don't show up, and clicking on items does nothing.
CORE-7881
svn path=/branches/shell-experiments/; revision=62382
* 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
* Add a new logging wrapper to record calls from the start menu back to the explorer site.
CORE-7586
svn path=/branches/shell-experiments/; revision=62335
* 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
* Some menu style improvements.
* Some code style improvements.
* Added a skeleton CMergedFolder, as a base towards showing items from both the user and the common start menus. It does not work yet.
CORE-7586
svn path=/branches/shell-experiments/; revision=62330
* CStartMenu: Update the icon resource IDs to the IDs with the smaller images. This causes the images not to show. Need help figuring out why.
* Misc changes.
CORE-7586
svn path=/branches/shell-experiments/; revision=62328
* CMenuBand: Fix the keyboard navigation a bit. Still not fully working yet.
* Show submenus a bit closer to the arrow, as Windows does.
CORE-7881
svn path=/branches/shell-experiments/; revision=62323
* 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
* Revert change from r62307. Will do a proper merge instead.
[RSHELL]
* CMenuBand: Use SHGetImageList instead of Shell_GetImageLists.
* CMenuBand: Remove minwidth in the size calculation.
svn path=/branches/shell-experiments/; revision=62308
* CMenuBand: Send timer notifications for all items, so we can hide a previous submenu when the user hovers an item without submenu.
* CMenuBand: Avoid a stack overflow in some versions of windows by relying on the stored value instead of asking for it in the middle of a changed event.
CORE-7881
svn path=/branches/shell-experiments/; revision=62303
* 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