forked from microsoft/PowerToys
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
17 changed files
with
136 additions
and
167 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
#### [`dllmain.cpp`](./dllmain.cpp) | ||
Contains DLL boilerplate code and implementation of the [PowerToys interface](/src/modules/interface/). | ||
|
||
#### [`trace.cpp`](./trace.cpp) | ||
Contains code for telemetry. |
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
#### [`dllmain.cpp`](/src/modules/shortcut_guide/dllmain.cpp) | ||
Contains DLL boilerplate code. | ||
|
||
#### [`shortcut_guide.cpp`](/src/modules/shortcut_guide/shortcut_guide.cpp) | ||
Contains the module interface code. It initializes the settings values and the keyboard event listener. | ||
|
||
#### [`overlay_window.cpp`](/src/modules/shortcut_guide/overlay_window.cpp) | ||
Contains the code for loading the SVGs, creating and rendering of the overlay window. | ||
|
||
#### [`keyboard_state.cpp`](/src/modules/shortcut_guide/keyboard_state.cpp) | ||
Contains helper methods for checking the current state of the keyboard. | ||
|
||
#### [`target_state.cpp`](/src/modules/shortcut_guide/target_state.cpp) | ||
State machine that handles the keyboard events. It’s responsible for deciding when to show the overlay, when to suppress the Start menu (if the overlay is displayed long enough), etc. | ||
|
||
#### [`trace.cpp`](/src/modules/shortcut_guide/trace.cpp) | ||
Contains code for telemetry. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
# Code Organization | ||
|
||
## Rules | ||
|
||
- **Follow the pattern of what you already see in the code** | ||
- Try to package new ideas/components into libraries that have nicely defined interfaces | ||
- Package new ideas into classes or refactor existing ideas into a class as you extend | ||
|
||
## Code Overview | ||
|
||
General project organization: | ||
|
||
#### The [`doc`](/doc) folder | ||
Documentation for the project, including a [coding guide](/doc/coding) and [design docs](/doc/specs). | ||
|
||
#### The [`installer`](/installer) folder | ||
Contains the source code of the PowerToys installer. | ||
|
||
#### The [`src`](/src) folder | ||
Contains the source code of the PowerToys runner and of all of the PowerToys modules. **This is where the most of the magic happens.** | ||
|
||
#### The [`tools`](/tools) folder | ||
Various tools used by PowerToys. Includes the Visual Studio 2019 project template for new PowerToys. | ||
|
||
# Implementation details | ||
|
||
### [`Runner`](/doc/devdocs/runner.md) | ||
The PowerToys Runner contains the project for the PowerToys.exe executable. | ||
It's responsible for: | ||
- Loading the individual PowerToys modules. | ||
- Passing registered events to the PowerToys. | ||
- Showing a system tray icon to manage the PowerToys. | ||
- Bridging between the PowerToys modules and the Settings editor. | ||
|
||
![Image of the tray icon](/doc/images/runner/tray.png) | ||
|
||
### [`Interface`](/doc/devdocs/modules/interface.md) | ||
Definition of the interface used by the [`runner`](/src/runner) to manage the PowerToys. All PowerToys must implement this interface. | ||
|
||
### [`Common`](/doc/devdocs/common.md) | ||
The common lib, as the name suggests, contains code shared by multiple PowerToys components and modules, e.g. [json parsing](/src/common/json.h) and [IPC primitives](/src/common/two_way_pipe_message_ipc.h). | ||
|
||
|
||
### [`Settings`](/doc/devdocs/settings.md) | ||
WebView project for editing the PowerToys settings. | ||
|
||
The html portion of the project that is shown in the WebView is contained in [`settings-html`](/src/settings/settings-heml). | ||
Instructions on how build a new version and update this project are in the [Web project for the Settings UI](./settings-web.md). | ||
|
||
While developing, it's possible to connect the WebView to the development server running in localhost by setting the `_DEBUG_WITH_LOCALHOST` flag to `1` and following the instructions near it in `./main.cpp`. | ||
|
||
### [`Settings-web`](/doc/devdocs/settings-web.md) | ||
This project generates the web UI shown in the [PowerToys Settings](/src/editor). | ||
It's a `ReactJS` project created using [UI Fabric](https://developer.microsoft.com/en-us/fabric#/). | ||
|
||
### [`FancyZones`](/doc/devdocs/modules/fancyzones.md) | ||
The FancyZones PowerToy that allows users to create custom zones on the screen, to which the windows will snap when moved. | ||
|
||
### [`PowerRename`](/doc/devdocs/modules/powerrename.md) | ||
PowerRename is a Windows Shell Context Menu Extension for advanced bulk renaming using simple search and replace or more powerful regular expression matching. | ||
|
||
### [`Shortcut Guide`](/doc/devdocs/modules/shortcut_guide.md) | ||
The Windows Shortcut Guide, displayed when the WinKey is held for some time. | ||
|
||
### _obsolete_ [`example_powertoy`](/doc/devdocs/modules/example_powertoy.md) | ||
An example PowerToy, that demonstrates how to create new ones. Please note, that this is going to become a Visual Studio project template soon. | ||
|
||
This PowerToy serves as a sample to show how to implement the [PowerToys interface](/src/modules/interface/) when creating a PowerToy. It also showcases the currently implemented settings. | ||
|
||
#### Options | ||
This module has a setting to serve as an example for each of the currently implemented settings property: | ||
- BoolToggle property | ||
- IntSpinner property | ||
- String property | ||
- ColorPicker property | ||
- CustomAction property | ||
|
||
![Image of the Options](/doc/images/example_powertoy/settings.png) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
#### [main.cpp](./main.cpp) | ||
Contains the main executable code, initializing and managing the Window containing the WebView and communication with the main PowerToys executable. | ||
|
||
#### [StreamURIResolverFromFile.cpp](./StreamURIResolverFromFile.cpp) | ||
Defines a class implementing `IUriToStreamResolver`. Allows the WebView to navigate to filesystem files in this Win32 project. | ||
|
||
#### [settings-html/](./settings-html/) | ||
Contains the assets file from building the [Web project for the Settings UI](../settings-web). It will be loaded by the WebView. |
File renamed without changes.
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.