User:Petr-akhlamov/Shell

From ReactOS Wiki
< User:Petr-akhlamov
Revision as of 19:38, 30 November 2017 by Petr-akhlamov (talk | contribs) (Обработка аргументов командной строки)
Jump to: navigation, search

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:

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

Taskbar

Taskbar settings

The notification area

Shell service objects

Address bar

Menu bar

Missing

Реализация пунктов подменю

Folder properties
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.

Other classes

CMergedFolder

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

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