Difference between revisions of "User:Petr-akhlamov/Shell"

From ReactOS Wiki
Jump to: navigation, search
(CMergedFolder)
(Shdocvw)
(41 intermediate revisions by the same user not shown)
Line 47: Line 47:
 
Implementing:
 
Implementing:
 
*copy to/move to ({{JIRA|11132}})
 
*copy to/move to ({{JIRA|11132}})
 +
 +
===Shdocvw===
 +
Shdocvw.dll - library, which contains the user interface portions of both Internet Explorer and the file system. In this context, the file system is the Windows Explorer accessory that you use to look at Windows folders and files. The "SHDocVw.dll" library is a COM object, it is not managed.
 +
*[http://www.geoffchappell.com/studies/windows/ie/shdocvw/api/index.htm?tx=17,48 SHDOCVW Functions List]
 +
*[http://github.com/reactos/reactos/blob/master/dll/win32/shdocvw/shdocvw_main.c Implemented functions]
  
 
===Dynamic Data Exchange===
 
===Dynamic Data Exchange===
Line 55: Line 60:
  
 
===Sidebar===
 
===Sidebar===
===Обработка аргументов командной строки===
+
03.12.2014 implementation of CExplorerBand class was started , which needed for sidebar. Gigaherz was add this class for research sidebar implementation in Windows.
 +
 
 +
05.02.2016 patch (<s>{{JIRA|10838}}</s>) with initial implementation of classes BaseBar и CBaseBarSite was published .
 +
 
 +
19.02.2016 Sylvain Deverre started work on sidebar in github-repo.
 +
 
 +
30.05.2016 Results of his work was add to trunk.
 +
 
 +
01.06.2016 Sidebar was implemented.
 +
 
 +
26.07.2016 In the sidebar was implements expand the tree view to the current folder when a new folder is browser and showing the context menu on right click.
 +
 
 +
02.08.2016 In the sidebar was implemented displaying of disk name.
 +
 
 +
01.02.2017 In the sidebar was implemented rudimentary support for drag icons.
 +
 
 +
===Command line parameters===
 +
08.09.2014 base of parser of [http://support.microsoft.com/en-us/help/152457/windows-explorer-command-line-options command line parameters] was writes.
 +
 
 +
The report <s>{{JIRA|12163}}</s> was closed 07.11.2016.
 +
 
 +
Now, explorer supports next parameters:
 +
*/separate
 +
*/e
 +
*/select
 +
 
 
===Desktop===
 
===Desktop===
 +
05.02.2017 in the trunk [http://github.com/reactos/reactos/commit/2ee2be0a07df3fa381065cf6471dea4b82af6c52 was implemented] auto update of desktop after change his content.
 +
====Hide desktop icons====
 +
*[http://yadi.sk/d/mF_j0Mj73QGnZw reg-files] for parameters changing
 +
*{{JIRA|8427}}
 +
 
===Taskbar===
 
===Taskbar===
 +
15.05.2014 work on taskbar was started.
 +
[[File:Taskbar.png|center]]
 +
As of 31.07.2017:
 +
*windows list is displaying
 +
*you can windows minimize/restore with left-click
 +
*you can call windows action-list with right-click
 +
*taskbar autohide is implemented
 +
*taskbar size changing to certain step
 +
 
====Taskbar settings====
 
====Taskbar settings====
 +
14.07.2017 Robert Naumann [http://github.com/reactos/reactos/commit/8bf97b3a3d6b2ad90a8f276d603bc6cf12461bb8 was started] implementation of taskbar settings saving/loading. ({{JIRA|11498}})
 +
 +
01.11.2017 in revision [http://github.com/reactos/reactos/commit/2ed535da8ab490b53bb496f3ac25fd1fd03f4965 2ed535d] (0.4.8-dev-46) Giannis implemented some taskbar settings (lock, keep on top of other windows, auto-hide, show clock, show seconds). Other will implemented later.
 +
 
===The notification area===
 
===The notification area===
 +
The notification area was implemented 5 июля 2014 г. Now:
 +
*in the tray displayed apps icons
 +
*you can app minimize/restore with left-click
 +
*you can call app action-list with right-click
 +
*hiding of inactive icons is not implemented
 
====Shell service objects====
 
====Shell service objects====
 +
Shell service objects - component, which implement in the tray icons of sound, battery, safely remove and others. His implementation was started 23.07.2014.
 +
 +
17.08.2014 basic functions was implemented.
 +
 +
=====Next work=====
 +
23-24.03.2017 Eric Kohl implemented:
 +
*[http://github.com/reactos/reactos/commit/a9265410de5160cdf06bb6f43956321e37bb9dca r74225] - Implement code to show and hide the power and volume icons in the notification area aka systray.
 +
*[http://github.com/reactos/reactos/commit/3bce3e3e487cc421a886362cc3a5b355a8a4babf r74226] - Show and hide the power systray icon.
 +
**[http://github.com/reactos/reactos/commit/587b5a7dcc0392bff0a1d96213cba0fc3479e695 r74228] - Implement the power schemes popup menu.
 +
*[http://github.com/reactos/reactos/commit/2a258f8902e23def0b654840aa70e37ab690ee68 r74227] - Show and hide the volume systray icon.
 +
 
===Address bar===
 
===Address bar===
 +
04.05.2014 work on address bar was started.
 +
[[File:Shell-adress.png|center]]
 +
As of 25.08.2016:
 +
*implemented:
 +
**current path displaying
 +
**icon
 +
**recognition support
 +
**system folder name are displayed instead GUID/CLSID
 +
**address is entered with Enter pressed
 +
**addressbar autoresizing
 +
**addressbar combobox
 +
[[File:Shell adresslist.png|center]]
 +
====CLSID====
 +
*[http://www.autohotkey.com/docs/misc/CLSID-List.htm Info]
 +
{| class="wikitable" style="float:right;"
 +
|-
 +
! Color and value
 +
|-
 +
| style="background:salmon;"| Not function
 +
|-
 +
| style="background:#a0e75a;"| Implemented
 +
|-
 +
| style="background:#FF8000;"| Missing in Windows XP
 +
|}
 +
About unimplemented CLSIDs:
 +
*Network Computers - in Windows XP opens "search results of computers"
 +
*Scheduled Tasks - opens the relevant folder
 +
Other CLSIDs are missing in NT5.
 +
 +
{| class="mw-collapsible mw-collapsed wikitable" style="float:center; margin-left:2em"
 +
!CLSID
 +
|-
 +
| style="background:#a0e75a;"|Administrative Tools
 +
|-
 +
| style="background:#FF8000;"|Briefcase
 +
|-
 +
| style="background:#a0e75a;"|Control Panel
 +
|-
 +
| style="background:#a0e75a;"|Fonts
 +
|-
 +
| style="background:#FF8000;"|History
 +
|-
 +
| style="background:#FF8000;"|Inbox
 +
|-
 +
| style="background:#FF8000;"|MS Network
 +
|-
 +
| style="background:#a0e75a;"|My Computer
 +
|-
 +
| style="background:#a0e75a;"|My Documents
 +
|-
 +
| style="background:#a0e75a;"|My Network Places
 +
|-
 +
| style="background:salmon;"|Network Computers
 +
|-
 +
| style="background:#a0e75a;"|Network Connections
 +
|-
 +
| style="background:#a0e75a;"|Printers and Faxes
 +
|-
 +
| style="background:#FF8000;"|Programs Folder
 +
|-
 +
| style="background:#a0e75a;"|Recycle Bin
 +
|-
 +
| style="background:#FF8000;"|Scanners and Cameras
 +
|-
 +
| style="background:salmon;"|Scheduled Tasks
 +
|-
 +
| style="background:#FF8000;"|Start Menu Folder
 +
|-
 +
| style="background:#FF8000;"|Temporary Internet Files
 +
|-
 +
| style="background:#FF8000;"|Web Folders
 +
|}
 +
 
===Menu bar===
 
===Menu bar===
 +
Unimplemented items are displayed as inactive. It works with keyboard control.
 
====Missing====
 
====Missing====
====Реализация пунктов подменю====
+
*{{JIRA|11467}} - ReactOS logo in menu band
=====Folder properties=====
+
 
 +
====Menu items implementation====
 +
{| class="wikitable" style="float:right;"
 +
|-
 +
! Color and value
 +
|-
 +
| style="background:salmon;"| Not function
 +
|-
 +
| style="background:#a0e75a;"| Implemented
 +
|}
 +
 
 +
{| class="mw-collapsible mw-collapsed wikitable" style="float:center; margin-left:2em"
 +
!colspan="2"|Menu
 +
|-
 +
! rowspan="1"| File
 +
| style="background:#a0e75a;"|Close
 +
|-
 +
! rowspan="9"|Edit
 +
|style="background:salmon;"|Undo
 +
|-
 +
| style="background:#a0e75a;"|Cut
 +
|-
 +
| style="background:#a0e75a;"|Copy
 +
|-
 +
| style="background:#a0e75a;"|Paste
 +
|-
 +
| style="background:#a0e75a;"|Paste Shortcut
 +
|-
 +
| style="background:salmon;"|Copy To Folder...
 +
|-
 +
| style="background:salmon;"|Move To Folder...
 +
|-
 +
| style="background:#a0e75a;"|Select All
 +
|-
 +
| style="background:#a0e75a;"|Invert Selection
 +
|-
 +
! rowspan="6"|View
 +
| style="background:salmon;"|Toolbars
 +
|-
 +
| style="background:#a0e75a;"|Status Bar
 +
|-
 +
| style="background:salmon;"|Explorer Bar
 +
|-
 +
| style="background:#a0e75a;"|''Icon sizes''
 +
|-
 +
| style="background:#a0e75a;"|Go to
 +
|-
 +
| style="background:#a0e75a;"|Refresh
 +
|-
 +
! rowspan="2"|Favorites
 +
|style="background:salmon;"|Add to Favorites
 +
|-
 +
| style="background:#a0e75a;"|Organize Favorites
 +
|-
 +
! rowspan="4"|Tools
 +
|style="background:salmon;"|Map Network Drive
 +
|-
 +
|style="background:salmon;"|Disconnect Network Drive
 +
|-
 +
|style="background:salmon;"|Synchronize
 +
|-
 +
|style="background:salmon;"|Folder Options
 +
|-
 +
! rowspan="2"| Help
 +
| style="background:#a0e75a;"|About ReactOS
 +
|-
 +
|}
 +
=====Folder options=====
 +
[[File:Folder-options.png|270px|center]]
 +
*<del>{{JIRA|10837}}</del> - Unable to launch Folder Options due to missing class
 +
*{{JIRA|11141}} - FolderOptions are unimplemented
 +
*{{JIRA|10800}} - Improvements to Folder Options
 +
*{{JIRA|1246}} - Changing or creating new file associations in Folder options is missing
 +
*<del>{{JIRA|12540}}</del> - Implement TreeView of Folder Options
 +
*{{JIRA|12906}} - Folder Options: File Types: Implement
 +
 
 +
05.02.2017 folder properties dialog was implemented in [http://github.com/reactos/reactos/commit/029cc4a9a1594eaf2358af2512e624162b7694e2 r73703] with all available settings.
  
 
=====Copy to / Move to=====
 
=====Copy to / Move to=====
Line 111: Line 325:
  
 
====Improve support for shell extensions====
 
====Improve support for shell extensions====
*{{JIRA|13695}}
+
*<s>{{JIRA|13695}}</s>
  
 
====Taskbar extensions====
 
====Taskbar extensions====
Line 117: Line 331:
  
 
18.08.2017 USB-ejecter extension [http://code.reactos.org/changelog/reactos?cs=75611 was added] to trunk.
 
18.08.2017 USB-ejecter extension [http://code.reactos.org/changelog/reactos?cs=75611 was added] to trunk.
*{{JIRA|13841}} - implementation of eject CD/DVD/USB
+
*<s>{{JIRA|13841}}</s> - implementation of eject CD/DVD/USB
 
=====QuickLaunch panel=====
 
=====QuickLaunch panel=====
 
20.10.2017 [http://github.com/reactos/reactos/commit/37e6151b40178a2cbea3fc17999eaa35d328666c was implemented] quick launch panel extension.  
 
20.10.2017 [http://github.com/reactos/reactos/commit/37e6151b40178a2cbea3fc17999eaa35d328666c was implemented] quick launch panel extension.  
Line 129: Line 343:
 
===Sort arrows===
 
===Sort arrows===
 
13.07.2017 in the shell [http://code.reactos.org/changelog/reactos?cs=75325 was implemented] [http://jira.reactos.org/browse/CORE-11776 sort arrows] in the list.
 
13.07.2017 in the shell [http://code.reactos.org/changelog/reactos?cs=75325 was implemented] [http://jira.reactos.org/browse/CORE-11776 sort arrows] in the list.
 +
 +
===HotKeys===
 +
*[http://www.helpwithpcs.com/software/keyboard_shortcuts_windows_xp.php Info]
 +
{| class="wikitable" style="float:right;"
 +
|-
 +
! Color and value
 +
|-
 +
| style="background:salmon;"| Not function
 +
|-
 +
| style="background:#a0e75a;"| Implemented
 +
|-
 +
| style="background:#FCED8D;"| Not tested
 +
|-
 +
| style="background:#FF8000;"| Missing in Windows XP (or only in programs)
 +
|}
 +
 +
{| class="mw-collapsible mw-collapsed wikitable" style="float:center; margin-left:2em"
 +
!colspan="2"|Hotkeys
 +
|-
 +
! rowspan="?"| CTRL
 +
|-
 +
| style="background:#a0e75a;"|CTRL + A
 +
|-
 +
| style="background:#a0e75a;"|CTRL + C
 +
|-
 +
| style="background:salmon;"|CTRL + F
 +
|-
 +
| style="background:#FF8000;"|CTRL + G
 +
|-
 +
| style="background:#FF8000;"|CTRL + N
 +
|-
 +
| style="background:#FF8000;"|CTRL + O
 +
|-
 +
| style="background:#FF8000;"|CTRL + P
 +
|-
 +
| style="background:#FF8000;"|CTRL + S
 +
|-
 +
| style="background:#a0e75a;"|CTRL + V
 +
|-
 +
| style="background:#a0e75a;"|CTRL + X
 +
|-
 +
|style="background:#FCED8D;" |CTRL + Z
 +
|-
 +
| style="background:#FF8000;"|CTRL + F4
 +
|-
 +
|style="background:#FCED8D;" |CTRL + while dragging an item
 +
|-
 +
| style="background:#a0e75a;"|CTRL + SHIFT with arrow keys
 +
|-
 +
| style="background:salmon;"|CTRL + ESC
 +
|-
 +
| style="background:#FF8000;"|CTRL + F6
 +
|-
 +
! rowspan="?"| ALT
 +
|-
 +
| style="background:#a0e75a;"|ALT+ENTER
 +
|-
 +
| style="background:#a0e75a;"|ALT+F4
 +
|-
 +
| style="background:#a0e75a;"|ALT+SPACEBAR
 +
|-
 +
| style="background:#a0e75a;"|ALT+TAB
 +
|-
 +
| style="background:#FF8000;"|ALT+ESC
 +
|-
 +
! rowspan="?"| FUN
 +
|-
 +
|-
 +
|style="background:#FCED8D;" |F1
 +
|-
 +
| style="background:#a0e75a;"|F2
 +
|-
 +
|style="background:#FCED8D;" |F3
 +
|-
 +
| style="background:salmon;"|F4
 +
|-
 +
| style="background:#a0e75a;"|F5
 +
|-
 +
|style="background:#FCED8D;" |F6
 +
|-
 +
|style="background:#FCED8D;" |F10
 +
|-
 +
! rowspan="?"| WIN
 +
|-
 +
| style="background:#a0e75a;"|Windows Logo
 +
|-
 +
|style="background:#FCED8D;" |Windows Logo+BREAK
 +
|-
 +
| style="background:salmon;"|Windows Logo+D
 +
|-
 +
| style="background:salmon;"|Windows Logo+M
 +
|-
 +
| style="background:salmon;"|Windows Logo+SHIFT+M
 +
|-
 +
| style="background:#a0e75a;"|Windows Logo+E
 +
|-
 +
|style="background:#FCED8D;" |Windows Logo+F
 +
|-
 +
|style="background:#FCED8D;" |CTRL+Windows Logo+F
 +
|-
 +
|style="background:#FCED8D;" |Windows Logo+F1
 +
|-
 +
|style="background:#FCED8D;" |Windows Logo+ L
 +
|-
 +
| style="background:#a0e75a;"|Windows Logo+R
 +
|-
 +
|style="background:#FCED8D;" |Windows Logo+U
 +
|-
 +
! rowspan="?"| dialogue
 +
|-
 +
| style="background:#a0e75a;"|TAB
 +
|-
 +
| style="background:#a0e75a;"|SHIFT+TAB
 +
|-
 +
| style="background:salmon;"|CTRL+TAB
 +
|-
 +
| style="background:salmon;"|CTRL+SHIFT+TAB
 +
|-
 +
|style="background:#FCED8D;" |ALT+Underlined letter
 +
|-
 +
| style="background:#a0e75a;"|ENTER
 +
|-
 +
| style="background:#a0e75a;"|SPACEBAR
 +
|-
 +
|style="background:#FCED8D;" |F1
 +
|-
 +
| style="background:#a0e75a;"|F4
 +
|-
 +
| style="background:#a0e75a;"|Arrow keys
 +
|-
 +
| style="background:salmon;"|BACKSPACE
 +
|-
 +
! rowspan="?"| Explorer
 +
|-
 +
| style="background:#a0e75a;"|END
 +
|-
 +
| style="background:#a0e75a;"|HOME
 +
|-
 +
| style="background:#a0e75a;"|NUM LOCK+Asterisk sign (*)
 +
|-
 +
| style="background:#a0e75a;"|NUM LOCK+Plus sign (+)
 +
|-
 +
| style="background:#a0e75a;"|NUM LOCK+Minus sign (-)
 +
|-
 +
| style="background:#a0e75a;"|LEFT ARROW
 +
|-
 +
| style="background:#a0e75a;"|RIGHT ARROW
 +
|}
  
 
==Other classes==
 
==Other classes==
 
===CMergedFolder===
 
===CMergedFolder===
 +
The CMergedFolder class structure is set of classes, whose primary purpose of the merged folder is the ability to aggregate the contents of multiple shell folders into one virtual folder that includes items from all of the sources, and also merges the child items of the same name into one virtual item.
 +
 +
Implementation was started 28.06.2014 and finished 13.07.2014.
 +
 +
It used in:
 
====Programs====
 
====Programs====
 
CMergedFolder allows displayed in the start menu the shortcuts from two folders:
 
CMergedFolder allows displayed in the start menu the shortcuts from two folders:
Line 142: Line 509:
  
 
===CFocusManager===
 
===CFocusManager===
 +
<...>
 +
 
===CShellDispatch===
 
===CShellDispatch===
 +
CShellDispatch implements objects of [http://msdn.microsoft.com/en-us/library/windows/desktop/gg537707(v=vs.85).aspx IShellDispatch] v1-6. Since ReactOS seeks to compatibility with Win2k3, then in her will implemented v1-4. ({{JIRA|6892}})
 +
 +
The IShellDispatch 2 is planned to taken from Wine, converted it to C++, added to ReactOS and finalized.
 +
 +
Also, in shldisp.idl are missing IShellDispatch3 and IShellDispatch4 (and v5 and v6, but they not include in W2k3). They and tests, which will be written later, will send to Wine.
 +
 +
First commits was in rr71116 and 71117.
 +
 +
*{{JIRA|12955}} - implementation:
 +
**''ShellExecute'' - performs a specified operation on a specified file[http://msdn.microsoft.com/en-us/library/windows/desktop/bb774148(v=vs.85).aspx]
 +
**''IsServiceRunning'' - returns a value that indicates whether a particular service is running.[http://msdn.microsoft.com/en-us/library/windows/desktop/bb774142(v=vs.85).aspx]
 +
*''ShutdownWindows'' was implemented 02.04.2017 in r74268 - show shutdown dialog[http://msdn.microsoft.com/en-us/library/windows/desktop/gg537727(v=vs.85).aspx]
 +
 
===PaintMenuBar===
 
===PaintMenuBar===
 
31.03.2017 Giannis [http://github.com/reactos/reactos/commit/cf6d69d369b6661fc359621996873b18259b77fb was added] the prototype of function [http://documentation.devexpress.com/#windowsforms/DevExpressXtraBarsPopupMenu_PaintMenuBartopic PaintMenuBar], which draw gradient and text on the side of menu (for example Start).
 
31.03.2017 Giannis [http://github.com/reactos/reactos/commit/cf6d69d369b6661fc359621996873b18259b77fb was added] the prototype of function [http://documentation.devexpress.com/#windowsforms/DevExpressXtraBarsPopupMenu_PaintMenuBartopic PaintMenuBar], which draw gradient and text on the side of menu (for example Start).
Line 150: Line 532:
  
 
==Themes in new explorer==
 
==Themes in new explorer==
*27.08.2017 - was fixed support of alpha-channels in the themes ({{JIRA|13464}}, [http://code.reactos.org/changelog/reactos?cs=75688 r75688])
+
*27.08.2017 - was fixed support of alpha-channels in the themes (<s>{{JIRA|13464}}</s>, [http://code.reactos.org/changelog/reactos?cs=75688 r75688])
  
 
==Settings via registry==
 
==Settings via registry==
Line 160: Line 542:
 
*ListviewShadow - shadows at icons text on the desktop
 
*ListviewShadow - shadows at icons text on the desktop
 
*StartMenuLogoff - "Logoff" item in the Start
 
*StartMenuLogoff - "Logoff" item in the Start
 +
 +
==Links==
 +
*[http://docs.google.com/document/d/1O0RXqmm4bZWxrorFBitJvRgJZUrmvD20SG3TZuuP8BA ShellTODO List by Gigaherz]

Revision as of 18:32, 9 December 2017

About Shell

(on russian)

Progress

  • 13.07.2014 - CMergedFolder was completed
  • 24.08.2014 - hotkeys Ctrl+C, Ctrl+X, Ctrl+V was implemented.
  • 28.09.2014 - IPC was implemented

Shell32 components scheme

Shellclasses 2.png

Unimplemented features

  • DDE

Reports in the bugtracker

  • shell/explorer issues (CORE-5620)
  • Major unimplemented features of the shell (CORE-9277)
  • shell32: rewrite shell folders implementation (CORE-7585)
  • shell32: shell icon cache and icon extractors need to be rewritten (CORE-7563)

Reorganization of shell resources

As part of its work (CORE-10030) Robert Naumann:

  • reworked the property dialogs, maked them nicer, add missing resources and remove unneded ones
  • Changed the start menu Icon from an icon to a bitmap resource
  • Fixed existing and add missing icons
  • reorganized the resource folder structure

Components

Browseui.dll

As of 13.07.2017:

  • content of current folder are displayed
  • icon is displayed in the header
  • buttons are displayed
  • buttons are have icons
  • list mode have sort arrows

Button implementations

The buttons in the file browser toolbar can be subdivided into 4 groups:

  • The navigation buttons, with history back/forward and “up”,
  • The sidebar buttons, with “folders” and “search”,
  • The file operations, with “copy to”, “move to”, “delete” and “undo”, and lastly
  • The view mode, which shows a dropdown to select the listview style.

Works:

  • navigation
  • view mode
  • folders

Implementing:

Shdocvw

Shdocvw.dll - library, which contains the user interface portions of both Internet Explorer and the file system. In this context, the file system is the Windows Explorer accessory that you use to look at Windows folders and files. The "SHDocVw.dll" library is a COM object, it is not managed.

Dynamic Data Exchange

IPC

IPC mechanism used by browseui to open new windows in the existing process. This function was implemented 28.09.2014[1].

Sidebar

03.12.2014 implementation of CExplorerBand class was started , which needed for sidebar. Gigaherz was add this class for research sidebar implementation in Windows.

05.02.2016 patch (CORE-10838) with initial implementation of classes BaseBar и CBaseBarSite was published .

19.02.2016 Sylvain Deverre started work on sidebar in github-repo.

30.05.2016 Results of his work was add to trunk.

01.06.2016 Sidebar was implemented.

26.07.2016 In the sidebar was implements expand the tree view to the current folder when a new folder is browser and showing the context menu on right click.

02.08.2016 In the sidebar was implemented displaying of disk name.

01.02.2017 In the sidebar was implemented rudimentary support for drag icons.

Command line parameters

08.09.2014 base of parser of command line parameters was writes.

The report CORE-12163 was closed 07.11.2016.

Now, explorer supports next parameters:

  • /separate
  • /e
  • /select

Desktop

05.02.2017 in the trunk was implemented auto update of desktop after change his content.

Hide desktop icons

Taskbar

15.05.2014 work on taskbar was started.

Taskbar.png

As of 31.07.2017:

  • windows list is displaying
  • you can windows minimize/restore with left-click
  • you can call windows action-list with right-click
  • taskbar autohide is implemented
  • taskbar size changing to certain step

Taskbar settings

14.07.2017 Robert Naumann was started implementation of taskbar settings saving/loading. (CORE-11498)

01.11.2017 in revision 2ed535d (0.4.8-dev-46) Giannis implemented some taskbar settings (lock, keep on top of other windows, auto-hide, show clock, show seconds). Other will implemented later.

The notification area

The notification area was implemented 5 июля 2014 г. Now:

  • in the tray displayed apps icons
  • you can app minimize/restore with left-click
  • you can call app action-list with right-click
  • hiding of inactive icons is not implemented

Shell service objects

Shell service objects - component, which implement in the tray icons of sound, battery, safely remove and others. His implementation was started 23.07.2014.

17.08.2014 basic functions was implemented.

Next work

23-24.03.2017 Eric Kohl implemented:

  • r74225 - Implement code to show and hide the power and volume icons in the notification area aka systray.
  • r74226 - Show and hide the power systray icon.
    • r74228 - Implement the power schemes popup menu.
  • r74227 - Show and hide the volume systray icon.

Address bar

04.05.2014 work on address bar was started.

Shell-adress.png

As of 25.08.2016:

  • implemented:
    • current path displaying
    • icon
    • recognition support
    • system folder name are displayed instead GUID/CLSID
    • address is entered with Enter pressed
    • addressbar autoresizing
    • addressbar combobox
Shell adresslist.png

CLSID

Color and value
Not function
Implemented
Missing in Windows XP

About unimplemented CLSIDs:

  • Network Computers - in Windows XP opens "search results of computers"
  • Scheduled Tasks - opens the relevant folder

Other CLSIDs are missing in NT5.

CLSID
Administrative Tools
Briefcase
Control Panel
Fonts
History
Inbox
MS Network
My Computer
My Documents
My Network Places
Network Computers
Network Connections
Printers and Faxes
Programs Folder
Recycle Bin
Scanners and Cameras
Scheduled Tasks
Start Menu Folder
Temporary Internet Files
Web Folders

Menu bar

Unimplemented items are displayed as inactive. It works with keyboard control.

Missing

Menu items implementation

Color and value
Not function
Implemented
Menu
File Close
Edit Undo
Cut
Copy
Paste
Paste Shortcut
Copy To Folder...
Move To Folder...
Select All
Invert Selection
View Toolbars
Status Bar
Explorer Bar
Icon sizes
Go to
Refresh
Favorites Add to Favorites
Organize Favorites
Tools Map Network Drive
Disconnect Network Drive
Synchronize
Folder Options
Help About ReactOS
Folder options
Folder-options.png
  • CORE-10837 - Unable to launch Folder Options due to missing class
  • CORE-11141 - FolderOptions are unimplemented
  • CORE-10800 - Improvements to Folder Options
  • CORE-1246 - Changing or creating new file associations in Folder options is missing
  • CORE-12540 - Implement TreeView of Folder Options
  • CORE-12906 - Folder Options: File Types: Implement

05.02.2017 folder properties dialog was implemented in r73703 with all available settings.

Copy to / Move to

18.04.2016 Barrett Karish was publish patch with implementation of this function.

Connect/disconnect network drive

03.07.2017 Jared Smudde started implementation of netplwiz.dll library, which perform this function.

"Start"

Start setting

Classicconf.png
  • 21.11.2015 in r69992 was started implementation of setting dialog of classic start menu
  • 22.11.2015 in r70001 was implemented buttons:
    • Add > open shortcut wizard
    • Advancad > open %username%/Start menu
    • Clear > Clears %username%/Recent

Shutdown dialog

Shell-poweroff.png

29.09.2014 in shell-experiments was applied patch with new shutdown dialog.

Additional features

Copy dialog

Copydialog.png

Work on copy dialog was started in november 2014. (CORE-4476)

  • 23-feb-2015 it was implemented, but without animation
  • 23-apr-2015 was implemented animation

Show of hidden files

Implementation of this feature was start 17.02.2015 and finished 14.03.2015. (CORE-9207)

Shell extensions

Browser of registry и NT-objects

15.03.2015 was implemented replace for explorer registry and NT-objects from old explorer as shell-extensions. CORE-9244

Reg new.png NTObj new.png

Virtual desktops

Maybe, this function will implemented as shell extension.

Improve support for shell extensions

Taskbar extensions

They was implemented on GSoC. (quick start panel, battery state, and usb-ejecter)

18.08.2017 USB-ejecter extension was added to trunk.

QuickLaunch panel

20.10.2017 was implemented quick launch panel extension.

For filling panel need to add shortcuts to folder C:\Documents and Settings\%username%\Application Data\Microsoft\Internet Explorer\Quick Launch.

Also, you can create user bar.

The panel is created on the right. You can't move it. Shortcuts runs. You can show/hide text, title, close panel. You can do reduce the panel, but hidden icons don't restored. Bug: you can't without errors swap quickstart panel and taskbar.

Sort arrows

13.07.2017 in the shell was implemented sort arrows in the list.

HotKeys

Color and value
Not function
Implemented
Not tested
Missing in Windows XP (or only in programs)
Hotkeys
CTRL
CTRL + A
CTRL + C
CTRL + F
CTRL + G
CTRL + N
CTRL + O
CTRL + P
CTRL + S
CTRL + V
CTRL + X
CTRL + Z
CTRL + F4
CTRL + while dragging an item
CTRL + SHIFT with arrow keys
CTRL + ESC
CTRL + F6
ALT
ALT+ENTER
ALT+F4
ALT+SPACEBAR
ALT+TAB
ALT+ESC
FUN
F1
F2
F3
F4
F5
F6
F10
WIN
Windows Logo
Windows Logo+BREAK
Windows Logo+D
Windows Logo+M
Windows Logo+SHIFT+M
Windows Logo+E
Windows Logo+F
CTRL+Windows Logo+F
Windows Logo+F1
Windows Logo+ L
Windows Logo+R
Windows Logo+U
dialogue
TAB
SHIFT+TAB
CTRL+TAB
CTRL+SHIFT+TAB
ALT+Underlined letter
ENTER
SPACEBAR
F1
F4
Arrow keys
BACKSPACE
Explorer
END
HOME
NUM LOCK+Asterisk sign (*)
NUM LOCK+Plus sign (+)
NUM LOCK+Minus sign (-)
LEFT ARROW
RIGHT ARROW

Other classes

CMergedFolder

The CMergedFolder class structure is set of classes, whose primary purpose of the merged folder is the ability to aggregate the contents of multiple shell folders into one virtual folder that includes items from all of the sources, and also merges the child items of the same name into one virtual item.

Implementation was started 28.06.2014 and finished 13.07.2014.

It used in:

Programs

CMergedFolder allows displayed in the start menu the shortcuts from two folders:

  • "Programs" (content of %userprofile%/Start menu/Programs and All Users/Start menu/Programs).
  • "Start menu" (content of %userprofile%/Start menu and All Users/Start menu)

Favourites

Favourites displayed shortcuts from %userprofile%/Favourites.

Recent documents

Recent documents in the Start, with using CMergedFolder show files from %userprofile%/Recent.

CFocusManager

<...>

CShellDispatch

CShellDispatch implements objects of IShellDispatch v1-6. Since ReactOS seeks to compatibility with Win2k3, then in her will implemented v1-4. (CORE-6892)

The IShellDispatch 2 is planned to taken from Wine, converted it to C++, added to ReactOS and finalized.

Also, in shldisp.idl are missing IShellDispatch3 and IShellDispatch4 (and v5 and v6, but they not include in W2k3). They and tests, which will be written later, will send to Wine.

First commits was in rr71116 and 71117.

  • CORE-12955 - implementation:
    • ShellExecute - performs a specified operation on a specified file[2]
    • IsServiceRunning - returns a value that indicates whether a particular service is running.[3]
  • ShutdownWindows was implemented 02.04.2017 in r74268 - show shutdown dialog[4]

PaintMenuBar

31.03.2017 Giannis was added the prototype of function PaintMenuBar, which draw gradient and text on the side of menu (for example Start).

DirectUI

Task pane CORE-11401 - will not implemented

Themes in new explorer

  • 27.08.2017 - was fixed support of alpha-channels in the themes (CORE-13464, r75688)

Settings via registry

You can change some parameters in registry.

HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\

  • Hidden - show hidden folders and files
  • HideFileExt - hide files extensions
  • ListviewShadow - shadows at icons text on the desktop
  • StartMenuLogoff - "Logoff" item in the Start

Links