* Create skeleton for the SysTray shell service object DLL. No tray icons are created yet.
* Tranks Robert Naumann for providing the icon resources, and some file templates.
svn path=/branches/shell-experiments/; revision=63732
* 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
* Use the IAugmentedShellFolder methods instead of the old constructor.
[SHELL32]
* Fix gcc compilation.
svn path=/branches/shell-experiments/; revision=63708
* Now that CMergedFolder works, try to make it more like windows.
* CMergedFolder: Declare and expose the undocumented IAugmentedShellFolder2 (all methods unimplemented yet). It will require major changes to the way I implemented it, but it will be for the best.
* CStartMenu: Make use of the real CMergedFolder in Windows 2003 (does not exist in win7).
svn path=/branches/shell-experiments/; revision=63703
* CFocusManager: Try to fix some weird behaviour.
* CMergedFolder: Downgrade some prints to TRACEs, and implement a couple methods needed by some debugging code.
* Activate merged folders by default. TODO: implement the filtering of the "Programs" submenu, and use it for the real Programs menu item.
[SHELL32]
* defcontextmenu.cpp: Make a copy of the apidl array before storing it for later, since it may be a pointer to the stack which may not be available later. Fixes the merged folders not working on clicks and context menu.
* shlmenu.cpp: While debugging, I made Shell_MergeMenus closer to WINE's.
svn path=/branches/shell-experiments/; revision=63702
* Revert debugging change that shouldn't have been commited.
* Implement rudimentary tooltip support for tray icons. Does not yet work exactly like the windows does it.
svn path=/branches/shell-experiments/; revision=63685
* Fix a typo that broke tray notify icons.
* Implement loading of Shell Service Objects. Works in win2003 but no idea if it works in ros since we don't have any SSO implemented yet ;P
svn path=/branches/shell-experiments/; revision=63684
* Handle SMSET_BOTTOM on SetShellFolder so the shell items show below the static menu.
* Downgrade some DbgPrints to TRACEs (reduces log spam).
* Add some extra debugging messages to CMergedFolder.
* Export the CMergedFolder constructor so it can be used from browseui.
[BROWSEUI]
* Use merged folders for the Favorites menu.
svn path=/branches/shell-experiments/; revision=63683
* Change the way the menu items are activated. Now the menubar activates on mouse down, and the other items activate on mouse up. Not everything works perfectly yet, but it will eventually allow proper usage of the shell menus by keeping the mouse button down. I believe this is also the way to go to avoid the "instant reopening" of the menus when trying to close them.
svn path=/branches/shell-experiments/; revision=63671
* Added IPersistFolder2 interface to CMergedFolder, per MSDN suggestion.
* Changed the way the pidl info is stored to be more clean and readable.
svn path=/branches/shell-experiments/; revision=63669
* Implement a rudimentary but mostly functional (for start menu purposes) CMergedFolder class. It's still disabled by default because clicking on an item in a merged folder appears to fail to execute it.
svn path=/branches/shell-experiments/; revision=63658
* Disregard the restricted setting and always remove the Search menu from the start menu. When Search is implemented, it can be reenabled.
svn path=/branches/shell-experiments/; revision=63639
* Implement a rudimentary "Help and Support" start menu item by launching the default browser with http://reactos.org/ as the URL.
svn path=/branches/shell-experiments/; revision=63638
* Notify the focus manager that we are about to open a context menu, so that it doesn't mess with the menu popup.
svn path=/branches/shell-experiments/; revision=63634
* Use a struct like the comment suggested. May not fix anything, but it's one FIXME less in ReactOS.
svn path=/branches/shell-experiments/; revision=63623
* Copy basic path parsing from explorer-new, so filebrowser.exe can load with a different folder active.
svn path=/branches/shell-experiments/; revision=63622
* Turn off spammy log.
* A small themeing tweak for the menubar.
[BROWSEUI]
* Turn off spammy log.
* A small tweak to a function.
svn path=/branches/shell-experiments/; revision=63620
[TASKMGR]
Set a proper shutdown level (with SetProcessShutdownParameters) so that explorer and taskmgr are terminated the very last when one shutdowns ReactOS.
See Windows Internals 4th page 286 (section "Shutdown") which gives the values (that I've cross-checked on Windows 2k3 too).
svn path=/branches/shell-experiments/; revision=63601
* Fix stack corruption in VS2010 builds. No idea why it doesn't crash with other compilers.
[EXPLORER-NEW]
* Fix a similar bug that does not appear to cause any issue, but is a bug regardless.
svn path=/branches/shell-experiments/; revision=63548
* Use the debugging class to track COM refcounting of the CMenuBand.
* CMenuSite: Remove an useless line.
[BROWSEUI]
* Refactor the CreateMenuBar method in an attempt to figure out a seemingly magic crash with VS2010 (not yet solved).
* Begin fixing some unused-but-set warnings.
[SHELL32]
* Fix some small bugs spotted by Victor.
svn path=/branches/shell-experiments/; revision=63546
* 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
* Plug a few menu leaks. In Windows, it brings down the leaked menus from 20 per navigation, to only 1-2. In ReactOS, from 60 to 20.
[RSHELL,SHELL32]
* Code tweaks that shouldn't change the actual behaviour.
svn path=/branches/shell-experiments/; revision=63537
* Begin fixing the process of destroying the related objects when closing the window, so that eventually the filebrowser/explorer process will properly exit cleanly when no more windows are open.
svn path=/branches/shell-experiments/; revision=63535
* The CDefView should not process the backspace key directly. It's already handled by the accelerators.
[BROWSEUI]
* Allow the docked toolbars to translate accelerators.
* CAddressEditBox: Cancel accelerators without modifiers while focused.
[RSHELL]
* Cancel accelerators while a popup is open, and ignore them otherwise.
svn path=/branches/shell-experiments/; revision=63504
* Close menu on right click too.
[BROWSEUI]
* Check/uncheck the lock toolbar item based on the lock state. The view menu does not update yet.
[SHELL32]
* Destroy the menu when the view window is destroyed.
svn path=/branches/shell-experiments/; revision=63461
* Reuse the same menu instead of recreating it every time something changes. Fixes the menus not showing, but it's not the right way to do it. A better implementation should come later.
[BROWSEUI]
* Add a german version of the toolbar strings, by Christoph von Wittich.
svn path=/branches/shell-experiments/; revision=63426
* Default to always-on-top if the registry setting is not found.
* Reload and apply settings on display change. Fixes taskbar not repositioning on resolution changes.
CORE-7330
svn path=/branches/shell-experiments/; revision=63369
* Fix the fallback for when rshell functions are not exported or rshell is not present.
* While at it, avoid unnecessary calls to LoadLibrary.
svn path=/branches/shell-experiments/; revision=63357
* Turn back some DbgPrints into TRACEs.
* Remove the desktop from the rshell exports, as it works better in ros that way, and it's only needed for debugging in windows 8.
svn path=/branches/shell-experiments/; revision=63352
* Fix handling of taskbar items.
* Filter out the desktop and taskbar from the button list.
* Fixes minimizing from the taskbar in Windows (something else is preventing it from working in ros).
[NTUSER]
* Improve filtering of windows before calling HSHELL_WINDOWCREATED.
[USER32]
* Menus are supposed to be WS_EX_TOOLWINDOW so they don't show up in the taskbar.
[ATL]
[BROWSEUI]
[SHELL32]
* Include ATL aggregation patch by Huw (Frontier) (with Amine's changes).
CORE-8175
svn path=/branches/shell-experiments/; revision=63304
CORE-8176 #resolve #comment Trunk commit r63174 should fix this issue. I merged from trunk to bring it into Shell-experiments.
svn path=/branches/shell-experiments/; revision=63175
* I forgot a cast and a couple IID_PPV_ARG uncommited.
[BROWSEUI]
* Fixed rebar flags to match windows. Adds the missing border around the toolbars.
* Fix some calculations of the rebar size.
* Fetch the icon of the current folder and assign it to the browse window.
CORE-7330
svn path=/branches/shell-experiments/; revision=63103
[SHELL32]
* Move the IID_NULL_PPV_ARG macro to the shobj_undoc header, next to the (also ros-specific) IID_PPV_ARG macro, so that it can be used elsewhere.
[SHELL32]
* Make use of IID_NULL_PPV_ARG in all the calls to GetUIObjectOf, and fix one instance of mismatched riid/pointer.
CORE-7330
svn path=/branches/shell-experiments/; revision=63044
* 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
* Fix stack overflow when pressing enter with a menu item selected. Executing with enter now works correctly.
CORE-7586
svn path=/branches/shell-experiments/; revision=62957
* Prevent the focused window from receiving keyboard events while a shell menu is open.
CORE-7586
svn path=/branches/shell-experiments/; revision=62935
* Almost working keyboard navigation on horizontal menu bar. It does not yet switch between menus when a submenu of the shell menu is currently open and you press [right].
CORE-7586
svn path=/branches/shell-experiments/; revision=62891
* Implemented horizontal keyboard navigation on the menubar. Does not yet work for the Favorites menu, which is a shell popup and not a tracked popup. Also missing the system menu in the rotation.
svn path=/branches/shell-experiments/; revision=62757
* 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
* I don't know what this may fix, but it was wrong. On the upside, now there's less spam in the log.
svn path=/branches/shell-experiments/; revision=62433
* 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