mirror of
https://github.com/microsoft/PowerToys
synced 2025-08-31 14:35:18 +00:00
[example_powertoy] Remove example_powertoy (#3955)
* Remove example_powertoy * Address PR comments
This commit is contained in:
@@ -67,18 +67,6 @@ The returned PowerToy should be in the disabled state. The runner will call the
|
||||
|
||||
In case of errors returns `nullptr`.
|
||||
|
||||
Sample code from [`the example PowerToy`](/src/modules/example_powertoy/dllmain.cpp):
|
||||
|
||||
```cpp
|
||||
extern "C" __declspec(dllexport) PowertoyModuleIface* __cdecl powertoy_create() {
|
||||
return new ExamplePowertoy();
|
||||
}
|
||||
|
||||
ExamplePowertoy::ExamplePowertoy() {
|
||||
init_settings();
|
||||
}
|
||||
```
|
||||
|
||||
## get_name
|
||||
|
||||
```cpp
|
||||
@@ -87,13 +75,6 @@ virtual const wchar_t* get_name()
|
||||
|
||||
Returns the name of the PowerToy, it will be cached by the runner.
|
||||
|
||||
Sample code from [`the example PowerToy`](/src/modules/example_powertoy/dllmain.cpp):
|
||||
```cpp
|
||||
virtual const wchar_t* get_name() override {
|
||||
return L"Example Powertoy";
|
||||
}
|
||||
```
|
||||
|
||||
## get_events
|
||||
|
||||
```cpp
|
||||
@@ -106,17 +87,6 @@ Returns a null-terminated table of the names of the events the PowerToy wants to
|
||||
|
||||
A nullptr can be returned to signal that the PowerToy does not want to subscribe to any event.
|
||||
|
||||
Sample code from [`the example PowerToy`](/src/modules/example_powertoy/dllmain.cpp):
|
||||
|
||||
```cpp
|
||||
virtual const wchar_t** get_events() override {
|
||||
static const wchar_t* events[] = { ll_keyboard,
|
||||
win_hook_event,
|
||||
nullptr };
|
||||
return events;
|
||||
}
|
||||
```
|
||||
|
||||
## get_config
|
||||
|
||||
```
|
||||
@@ -129,44 +99,6 @@ If `buffer` is a null pointer or the buffer size is not large enough sets the re
|
||||
|
||||
Returns true if successful.
|
||||
|
||||
Sample code from [`the example PowerToy`](/src/modules/example_powertoy/dllmain.cpp):
|
||||
|
||||
```cpp
|
||||
virtual bool get_config(wchar_t* buffer, int* buffer_size) override {
|
||||
HINSTANCE hinstance = reinterpret_cast<HINSTANCE>(&__ImageBase);
|
||||
|
||||
// Create a Settings object.
|
||||
PowerToysSettings::Settings settings(hinstance, get_name());
|
||||
settings.set_description(L"Serves as an example powertoy, with example settings.");
|
||||
|
||||
// Add an overview link to show in the Settings.
|
||||
settings.set_overview_link(L"https://github.com/microsoft/PowerToys");
|
||||
|
||||
// Add a video link to show in the Settings.
|
||||
settings.set_video_link(L"https://www.youtube.com/watch?v=d3LHo2yXKoY&t=21462");
|
||||
|
||||
// Add a bool property with a toggle editor.
|
||||
settings.add_bool_toggle(
|
||||
L"test_bool_toggle", // property name.
|
||||
L"This is what a BoolToggle property looks like", // description or resource id of the localized string.
|
||||
test_bool_prop // property value.
|
||||
);
|
||||
|
||||
// More settings
|
||||
...
|
||||
|
||||
// Add a custom action property. When using this settings type, the "call_custom_action()" method should be overridden as well.
|
||||
settings.add_custom_action(
|
||||
L"test_custom_action", // action name.
|
||||
L"This is what a CustomAction property looks like", // label above the field.
|
||||
L"Call a custom action", // button text.
|
||||
L"Press the button to call a custom action in the Example PowerToy" // display values / extended info.
|
||||
);
|
||||
|
||||
return settings.serialize_to_buffer(buffer, buffer_size);
|
||||
}
|
||||
```
|
||||
|
||||
## set_config
|
||||
|
||||
```cpp
|
||||
@@ -175,31 +107,6 @@ virtual void set_config(const wchar_t* config)
|
||||
|
||||
After the user has changed the module settings in the Settings editor, the runner calls this method to pass to the module the updated values. It's a good place to save the settings as well.
|
||||
|
||||
Sample code from [`the example PowerToy`](/src/modules/example_powertoy/dllmain.cpp):
|
||||
|
||||
```cpp
|
||||
virtual void set_config(const wchar_t* config) override {
|
||||
try {
|
||||
// Parse the PowerToysValues object from the received json string.
|
||||
PowerToysSettings::PowerToyValues _values =
|
||||
PowerToysSettings::PowerToyValues::from_json_string(config);
|
||||
|
||||
// Update the bool property.
|
||||
if (_values.is_bool_value(L"test bool_toggle")) {
|
||||
test_bool_prop = _values.get_bool_value(L"test bool_toggle");
|
||||
}
|
||||
|
||||
// More settings
|
||||
...
|
||||
|
||||
save_settings();
|
||||
}
|
||||
catch (std::exception ex) {
|
||||
// Improper JSON.
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## call_custom_action
|
||||
|
||||
```cpp
|
||||
@@ -209,31 +116,6 @@ Sample code from [`the example PowerToy`](/src/modules/example_powertoy/dllmain.
|
||||
Calls a custom action in response to the user pressing the custom action button in the Settings editor.
|
||||
This can be used to spawn custom editors defined by the PowerToy.
|
||||
|
||||
Sample code from [`the example PowerToy`](/src/modules/example_powertoy/dllmain.cpp):
|
||||
|
||||
```cpp
|
||||
virtual void call_custom_action(const wchar_t* action) override {
|
||||
try {
|
||||
// Parse the action values, including name.
|
||||
PowerToysSettings::CustomActionObject action_object =
|
||||
PowerToysSettings::CustomActionObject::from_json_string(action);
|
||||
|
||||
if (action_object.get_name() == L"test_custom_action") {
|
||||
|
||||
// Custom action code to increase and show a counter.
|
||||
++this->test_custom_action_num_calls;
|
||||
std::wstring msg(L"I have been called ");
|
||||
msg += std::to_wstring(this->test_custom_action_num_calls);
|
||||
msg += L" time(s).";
|
||||
MessageBox(NULL, msg.c_str(), L"Custom action call.", MB_OK | MB_TOPMOST);
|
||||
}
|
||||
}
|
||||
catch (std::exception ex) {
|
||||
// Improper JSON.
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## enable
|
||||
|
||||
```cpp
|
||||
@@ -242,14 +124,6 @@ Sample code from [`the example PowerToy`](/src/modules/example_powertoy/dllmain.
|
||||
|
||||
Enables the PowerToy.
|
||||
|
||||
Sample code from [`the example PowerToy`](/src/modules/example_powertoy/dllmain.cpp):
|
||||
|
||||
```cpp
|
||||
virtual void enable() {
|
||||
m_enabled = true;
|
||||
}
|
||||
```
|
||||
|
||||
## disable
|
||||
|
||||
```cpp
|
||||
@@ -258,14 +132,6 @@ Sample code from [`the example PowerToy`](/src/modules/example_powertoy/dllmain.
|
||||
|
||||
Disables the PowerToy, should free as much memory as possible.
|
||||
|
||||
Sample code from [`the example PowerToy`](/src/modules/example_powertoy/dllmain.cpp):
|
||||
|
||||
```cpp
|
||||
virtual void disable() {
|
||||
m_enabled = false;
|
||||
}
|
||||
```
|
||||
|
||||
## is_enabled
|
||||
|
||||
```cpp
|
||||
@@ -274,13 +140,6 @@ Sample code from [`the example PowerToy`](/src/modules/example_powertoy/dllmain.
|
||||
|
||||
Returns the PowerToy state.
|
||||
|
||||
Sample code from [`the example PowerToy`](/src/modules/example_powertoy/dllmain.cpp):
|
||||
|
||||
```cpp
|
||||
virtual bool is_enabled() override {
|
||||
return m_enabled;
|
||||
}
|
||||
```
|
||||
## signal_event
|
||||
|
||||
```cpp
|
||||
@@ -294,24 +153,6 @@ The data argument and return value meaning are event-specific:
|
||||
|
||||
Please note that some of the events are currently being signalled from a separate thread.
|
||||
|
||||
Sample code from [`the example PowerToy`](/src/modules/example_powertoy/dllmain.cpp):
|
||||
|
||||
```cpp
|
||||
virtual intptr_t signal_event(const wchar_t* name, intptr_t data) override {
|
||||
if (wcscmp(name, ll_keyboard) == 0) {
|
||||
auto& event = *(reinterpret_cast<LowlevelKeyboardEvent*>(data));
|
||||
// Return 1 if the keypress is to be suppressed (not forwarded to Windows),
|
||||
// otherwise return 0.
|
||||
return 0;
|
||||
} else if (wcscmp(name, win_hook_event) == 0) {
|
||||
auto& event = *(reinterpret_cast<WinHookEvent*>(data));
|
||||
// Return value is ignored
|
||||
return 0;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
```
|
||||
|
||||
## register_system_menu_helper
|
||||
|
||||
```cpp
|
||||
@@ -338,14 +179,6 @@ Item name is passed as an argument, so that module can distinguish between diffe
|
||||
```
|
||||
Destroy the PowerToy and free all memory.
|
||||
|
||||
Sample code from [`the example PowerToy`](/src/modules/example_powertoy/dllmain.cpp):
|
||||
|
||||
```cpp
|
||||
virtual void destroy() override {
|
||||
delete this;
|
||||
}
|
||||
```
|
||||
|
||||
## Powertoys system menu helper interface
|
||||
|
||||
Interface for helper class responsible for handling all system menu related actions.
|
||||
@@ -393,15 +226,15 @@ Process action taken on specific system menu item.
|
||||
|
||||
# Code organization
|
||||
|
||||
### [`powertoy_module_interface.h`](/src/modules/example_powertoy/powertoy_module_interface.h)
|
||||
### [`powertoy_module_interface.h`](/src/modules/interface/powertoy_module_interface.h)
|
||||
Contains the PowerToys interface definition.
|
||||
|
||||
### [`powertoy_system_menu.h`](/src/modules/example_powertoy/powertoy_system_module.h)
|
||||
### [`powertoy_system_menu.h`](/src/modules/interface/powertoy_system_module.h)
|
||||
Contains the PowerToys system menu helper interface definition.
|
||||
|
||||
### [`lowlevel_keyboard_event_data.h`](/src/modules/example_powertoy/lowlevel_keyboard_event_data.h)
|
||||
### [`lowlevel_keyboard_event_data.h`](/src/modules/interface/lowlevel_keyboard_event_data.h)
|
||||
Contains the `LowlevelKeyboardEvent` structure that's passed to `signal_event` for `ll_keyboard` events.
|
||||
|
||||
### [`win_hook_event_data.h`](/src/modules/example_powertoy/win_hook_event_data.h)
|
||||
### [`win_hook_event_data.h`](/src/modules/interface/win_hook_event_data.h)
|
||||
Contains the `WinHookEvent` structure that's passed to `signal_event` for `win_hook_event` events.
|
||||
|
||||
|
Reference in New Issue
Block a user