Commit graph

68 commits

Author SHA1 Message Date
Amine Khaldi 5c1a8109c8 * The Shell.. for a long time we dreamed of having a compatible, properly working rewrite, but it's easier said than done. Over the years this effort has been split into tasks, and this branch was the biggest overall. Now it's time to merge it back to trunk!
* This merge is also a chance to thank every single person involved directly and indirectly in this epic work, among them: Martin Fuchs for ReactOS explorer which we are respectfully retiring now, as it served the project so well over all these years. Thomas Bluemel (Thomas Weidenmueller aka w3seek) for his brave work on the shell, mainly his explorer_new. Andrew Hill for advancing the shell bringup with some impressive work. David Quintana, Giannis Adamopoulos and Huw Campbell for working as a solid team on making this branch a huge success, allowing the shell rewrite dream to finally become a reality. Again, thank you all!
* Merging this branch is not the end.. it's the beginning of some serious bug fixing based hopefully on the Community's continuous feedback.
* Finally, here are *some* of the highlights of this branch (simply put):

[BROWSEUI] Halfplement the address bar. Mostly implement the Favorites menu. Implement handling most hotkeys that should be handled by CShellBrowser. Fix various bugs.

[EXPLORER_NEW] Convert to C++ and use several wtl-like classes to simplify it. Fix several bugs and implement misc missing features.

[FILEBROWSER] A small exe file that opens a new file browser window in its own process. Tested to work in windows. It can be used to test our browseui.dll in windows.

[FONTS] A new marlett font.

[MSGINA] Add a proper shutdown dialog that's used when the user selects shutdown from the start menu (this is how it's done in Windows).

[RSHELL] A temporary module that hosts the implementation of the following classes needed for the shell: CMenuBand, CMenuDeskBar, CMenuSite, CMergedFolder, CStartMenu. These were implemented and tested in windows and for that reason they are still there. Should be moved in shell32 in the future.

[SHELL32] Reorganize files to isolate the ones that are not yet forked from wine. Fix various problems. Simplify the implementation of some shell folders. Implement filling in the file menu in the file browser.

[STOBJECT] A shell extension responsible for misc taskbar notification icons. So far only the sound icon is implemented. Adding this is necessary as the old explorer had the sound icon built in and deprecating it needs a proper solution for these notification icons.

[WIN32K] Fix several bugs that prevented the new start menu (that was implemented and tested in Windows) from functioning properly in ReactOS, mostly due to focus issues. Fix several shell notifications to behave more like in Windows.

* Tonight! We shall feast!
* And tomorrow the US guys shall feast again, on turkey! :p

CORE-7330

svn path=/trunk/; revision=65496
2014-11-26 19:49:18 +00:00
Hermès Bélusca-Maïto 8af6d0d4da [MSGINA][SHELL32]
- Resize the logon graphics logo to windows standard size: 413x72.
- Use this very same logo for ShellAbout. Adapted from a proposition by Lee Schroeder. The real fix for this would be to do like Windows, that means, since (you can double-check) shell32 takes the picture from msgina.dll .
CORE-7940 #resolve #comment Fixed, thanks ;)

svn path=/trunk/; revision=63101
2014-05-02 02:52:15 +00:00
Amine Khaldi 4f523a3000 [SHELL32]
* Implement support for file formats' drop target shell extensions.
* Implement a shell extension for executable files.
* Implement a shell extension for lnk files.
* Change the shell notifications for moving files and folders, as they were all conflated with renaming files.
* Fix up SHChangeNotification so the desktop receives notifications when files are added to common or user desktop directories.
* Fix up SHChangeNotification such that folder pidls are not incorrectly assumed to be file pidls and displayed incorrectly.
* Implement a drop target for My Documents.
* Fix up the desktop's drop target resolution so files can be dropped on the recycle bin and my documents etc properly.
* Stub IDragSourceHelper in CLSID_DragDropHelper.
* Add a few additional shell change notifications.
* Silence a few FIXMEs to TRACEs.
* Some code clean up.
* Brought to you by Huw Campbell.
CORE-3760

svn path=/trunk/; revision=62502
2014-03-15 13:59:22 +00:00
Amine Khaldi 527f2f9057 [SHELL/EXPERIMENTS]
* Create a branch for some evul shell experiments.

svn path=/branches/shell-experiments/; revision=61927
2014-02-02 19:37:27 +00:00
Amine Khaldi bbcf00a9ed [WIN32DLLS]
* Improve resource files.
CORE-7637

svn path=/trunk/; revision=61131
2013-11-28 22:18:05 +00:00
Giannis Adamopoulos 9ec75c65fb [shell32]
- Stub CMenuDeskBar class

svn path=/trunk/; revision=59950
2013-09-01 16:52:36 +00:00
Giannis Adamopoulos 088f141485 [shell32]
- Stub CMenuBand class

svn path=/trunk/; revision=59561
2013-07-23 10:53:06 +00:00
Giannis Adamopoulos a90ffcf21e [shell32]
- Add the accelerators table that will be used for the shell view control
- Rewrite CDefView::OpenSelectedItems and CDefView::OnContextMenu. 
- Rewrite accelerators handling for the shell view. Instead of handling them manually in CDefView::OnNotify, we now translate it properly in CDefView::TranslateAccelerator and forward the result WM_COMMAND message to the IContextMenu2 using a new method called CDefView::OnExplorerCommand.
- Now we don't do call ShellExecute or use clipboard function right in CDefView and this also is the first step to properly handle opening or exploring a folder (which is needed for explorer_new)

svn path=/trunk/; revision=59541
2013-07-20 16:23:54 +00:00
Rafal Harabien e69c077ca9 [SHELL32]
- Give numeric identifiers to all dialogs
- Add file copy dialog to languages files where it was lacking
- Remove unused admin tools icon duplicate

svn path=/trunk/; revision=54997
2012-01-17 21:28:17 +00:00
Rafal Harabien 4715b94b0c [SHELL32]
- Add "Description" string to resources. Don't show application file extension in Description field (for applications without version info). Patch by Edijs Kolesnikovis (#6819)
- Implement associated application icon loading in File Properties dialog
- Implement "Change" button in File Properties dialog

svn path=/trunk/; revision=54927
2012-01-12 21:43:46 +00:00
Rafal Harabien bc92eceb86 [SHELL32]
- Add CLSID_ShellFileDefExt, CLSID_ShellDrvDefExt, CLSID_ShellNetDefExt GUIDs
- Move File Properties default pages to CFileDefExt

svn path=/trunk/; revision=54908
2012-01-11 20:20:01 +00:00
Rafal Harabien 64760a47a1 [SHELL32]
- Don't check exe files for Open With application
- If application is invalid display proper text
- Properly handle application parameters and quotes when parsing application command. Patch by EDIJS, improved by me.
See issue #6770 for more details.

svn path=/trunk/; revision=54906
2012-01-10 19:57:53 +00:00
Rafal Harabien 898071bb08 [SHELL32]
- Rewrite Open With menu and dialog
- Load all applications
- Use treeview with Recommended and Other programs
- Don't allow duplicates
- Load registry keys in proper way

svn path=/trunk/; revision=54844
2012-01-05 18:31:18 +00:00
Rafal Harabien e145474ee5 [SHELL32]
- Move "Open With" context menu handler registration to shell32
- Improve Polish translation

svn path=/trunk/; revision=54696
2011-12-19 11:37:46 +00:00
Rafal Harabien 6f7115b541 [SHELL32]
- Display file size in bytes in file properties dialog
- Don't use ULONGLONG if ULONG is enough
- Change LARGE_INTEGER to ULARGE_INTEGER where it makes sense
- Fix calculation of file size in CountFolderAndFiles
- WM_GETTEXT receives size in bytes (not characters count)
- Use Get(Set)DlgItemTextW instead of SendDlgItemMessageW
Patch by Carlo Bramix. Improvements by me.
See issue #6294 for more details.

svn path=/trunk/; revision=54529
2011-11-28 21:54:45 +00:00
Rafal Harabien f88bacce5d [SHELL32]
- Use string IDs from rgs files
- Improve Polish translation

svn path=/trunk/; revision=54527
2011-11-28 11:21:15 +00:00
Amine Khaldi 3bb734fcf3 [SHELL32]
* Reintegrate the c++ shell32 branch. Exemplary team-work.. kudos !
* Better code quality, more tests run with less failures... and more.
* Dedicated to everyone who helped ;)

svn path=/trunk/; revision=53653
2011-09-09 10:55:09 +00:00
Ged Murphy 4019caae75 This really needs to go in a branch. It needs heavy testing and can't coincide with the current shell32 due to PSDK interface changes
svn path=/branches/shell32_new-bringup/; revision=51893
2011-05-24 18:40:34 +00:00
Gabriel Ilardi c10792a4a1 [shell32]
Folder options:
- Load text from language file.
- Fill in the extension and description.
Patch by Edijs Kolesnikovics <terminedijs at yahoo dot com>
- Fix an Italian string.
See issue #6208 for more details.

svn path=/trunk/; revision=51586
2011-05-05 12:06:34 +00:00
Rafal Harabien d8e1c6609b [MPLAY32]
* Move "Play" string from shell32. It will be used in audio files context menu in explorer

[SHIMGVW]
* Move "Preview" string from shell32. It will be used in image files context menu in explorer
* Add Polish translation

[SHELL32]
* Remove "Play" and "Preview" translations - they shouldn't be in shell32
* Add "explore" translation for folder context menu

svn path=/trunk/; revision=51423
2011-04-22 11:51:08 +00:00
Rafal Harabien fcd25281d9 [SHELL32]
Sync RunFileDlg to wine. It was crashing for one char input.
Add "All files (*.*)" filter to RunDlg and OpenWith dialogs. 
Improved polish translation.
Translators: please localize rest...

svn path=/trunk/; revision=51127
2011-03-23 16:22:38 +00:00
Johannes Anderwald 42c28cc44f [SHELL32]
- Start implementing file copy / move / delete dialog
- Not yet enabled

svn path=/trunk/; revision=47043
2010-04-26 19:50:11 +00:00
Johannes Anderwald dd0a9f5d5f [SHELL32]
- Rewrite enumerating folder options file type dialog

svn path=/trunk/; revision=47031
2010-04-26 10:38:15 +00:00
Gregor Schneider 7988cc7cad [SHELL32]
- Add a confirmation dialog for logoff operation
- English and German translation included
See issue #1494 for more details.

svn path=/trunk/; revision=46722
2010-04-04 18:37:39 +00:00
Johannes Anderwald 8c36300c0b - Allow creating a copy of a file residing in the same directory
- Free the correct the buffer 
- Romanian language needs to be updated
See issue #4846 for more details.

svn path=/trunk/; revision=43070
2009-09-18 00:48:47 +00:00
Johannes Anderwald c8b09007ed - Call OpenWith dialog when no file association is found
- Partial wine syncAlexandre Julliard <julliard@winehq.org>
shell32: Add implementation of WOWShellExecute.
The callback is probably not fully compatible, but apps are not
supposed to use that function anyway.
Vincent Povirk <madewokherd+8cd9@gmail.com>
shell32: Add a message for opening files with no association.
Marcus Meissner <marcus@jet.franken.de>
shell32: Fixed potential buffer overwrite in execute_from_key (Coverity).
Vincent Povirk <vincent@codeweavers.com>
shell32: Use the NO_UI flag in ShellExecute.
In my testing on Windows, I wasn't able to make ShellExecute display
any error dialogs.
Paul Chitescu <paulc@voip.null.ro>
shell32.dll: Return SE_ERR_FNF if file not found before checking for associations.

svn path=/trunk/; revision=40666
2009-04-23 12:39:11 +00:00
Dmitry Chapyshev 6766e1615f - More fixes for icons in shell32
svn path=/trunk/; revision=39011
2009-01-22 13:00:14 +00:00
Dmitry Chapyshev 06794682ef - Add more defines for icons
- Update icon for "Administration tools"

svn path=/trunk/; revision=39009
2009-01-22 11:27:28 +00:00
Dmitry Chapyshev bae14e1987 - Update some icons (shell32)
- Add defines for icons (shell32)
- Add icon for .reg files (regedit)
- Some fixes for hivecls_arm.inf and hivecls_i386.inf

svn path=/trunk/; revision=38949
2009-01-19 18:36:03 +00:00
Johannes Anderwald 9a1009363b - Revert 35686
- NetworkConnections is implemented in netshell.dll

svn path=/trunk/; revision=35688
2008-08-26 22:35:44 +00:00
Johannes Anderwald d7a196cf95 - Start implementing Network Connections Shell Folder
- Rename cpanelfolder to shfldr_cpanel
- Implement _ILIsNetConnect, ILCreateNetConnect

svn path=/trunk/; revision=35686
2008-08-26 21:29:55 +00:00
Johannes Anderwald 07d2758056 shell32 update (1/2)
- Use precompiled headers for shell32
- Use __inline for MSVC compability
- Fix api definitions of SHCreateStdEnumFmtEtc, GetFileNameFromBrowse, SHCreateDirectory, SHCreateDirectoryExA, SHCreateDirectoryExW, Dad_AutoScroll, CDefFolderMenu_Create2, SHChangeNotifyRegister
- msvc now compiles nearly all of shell32 (with WDK headers)

svn path=/trunk/; revision=35674
2008-08-26 15:50:23 +00:00
Johannes Anderwald 2546d4ddc6 - add 3 resource strings
svn path=/trunk/; revision=35437
2008-08-18 22:24:45 +00:00
Dmitry Chapyshev 5b1adcd907 - Add icons for Folder Options (not work yet)
svn path=/trunk/; revision=35350
2008-08-15 10:03:19 +00:00
Johannes Anderwald 19897c21e2 * Implement administrative tools shell folder
svn path=/trunk/; revision=35327
2008-08-14 08:41:59 +00:00
Johannes Anderwald 0ae6a9811c * Implement SHFormatDrive using fmifs api (format drive dialog in explorer)
svn path=/trunk/; revision=35319
2008-08-13 21:29:29 +00:00
Johannes Anderwald 782a7d5ea7 - add 2 resource strings
- rewrite recyclebin item handling
- partly implement recycle bin item context menu
- rewrite Trash_CanTrashFile to support volume serial numbers
- recycle bin shows now correct deleted file details for files

svn path=/trunk/; revision=35204
2008-08-09 01:48:18 +00:00
Johannes Anderwald 66105f44ec * register printer shell folder
* move printer column descriptors to resource files
* fix enumeration of printers


svn path=/trunk/; revision=35201
2008-08-08 21:50:24 +00:00
Johannes Anderwald e107b6f77d - add 3 resource strings
svn path=/trunk/; revision=35197
2008-08-08 19:48:38 +00:00
Johannes Anderwald 4ec67d948c * implement retrieving column names for nethood & font shell folder
* make column names mui aware

svn path=/trunk/; revision=35157
2008-08-07 08:55:34 +00:00
Johannes Anderwald 31fcd8ee63 * halfplement fonts shell folder
* fix registration of nethood shell folder and printer shell folder
- displaying is if'd out currently

svn path=/trunk/; revision=35153
2008-08-07 01:02:34 +00:00
Johannes Anderwald 578b10c107 - create a resource string for "create link"
- implement a custom context menu for the control panel items
- action "create link is not yet implemented

svn path=/trunk/; revision=35096
2008-08-04 13:43:10 +00:00
Johannes Anderwald 60db6af48b - implement folder property dialog
- sync chinese resource files

svn path=/trunk/; revision=34929
2008-07-29 16:52:39 +00:00
Johannes Anderwald 718de23271 - allow translation of static shell verbs such as open/edit/find/play/preview/print/runas used in context menu items
svn path=/trunk/; revision=34319
2008-07-06 06:26:00 +00:00
Johannes Anderwald bf27f86d38 - remove duplicate properties entry in recycle bin context menu shell extension
- make string "empty recycle bin" translatable
- bug 3289

svn path=/trunk/; revision=34125
2008-06-27 08:53:55 +00:00
Johannes Anderwald fd3d710d4d - fix a bug introduced in rev 32966
- add file description resource strings for various file types
- For future: New file types should have a progid key with a value name "FriendlyTypeName" which define where to load MUI string resource from

svn path=/trunk/; revision=32973
2008-04-15 09:08:41 +00:00
Johannes Anderwald f7f80466e3 - use FriendlyTypeName key for retrieving the specialized file description
- retrieve string for CLSID_ControlPanel
- translate folder string in browser
- fix displaying file description type
- display FileExt-File for file extension w/o file description, i.e. XML-File

svn path=/trunk/; revision=32966
2008-04-14 20:55:14 +00:00
Johannes Anderwald 9601e9d478 - use a list box for the OpenWithDialog
- implement SHOpenWithDialog api
- refactor item loading code
- display app icon and description for each entry
- use comctl32 mru apis for handling OpenWithList entries
- highlight selected entry on focus

svn path=/trunk/; revision=32905
2008-04-10 12:29:08 +00:00
Johannes Anderwald ede86166e7 - implement PickIconDlg
- fix bug a shellink property dialog

svn path=/trunk/; revision=32879
2008-04-06 04:30:43 +00:00
Johannes Anderwald a3873d71cc - initialize bitbucket properties dialog
- fix resources
- partly implement THRASH_CanTrashFile

svn path=/trunk/; revision=32699
2008-03-16 14:55:04 +00:00