diff --git a/src/commands/create.ts b/src/commands/create.ts
index a9f6d5d..af63087 100644
--- a/src/commands/create.ts
+++ b/src/commands/create.ts
@@ -228,6 +228,7 @@ async function renderTemplate(destination: string, pluginInfo: PluginInfo): Prom
await Promise.allSettled([
template.copy(".vscode"),
template.copy(`${TEMPLATE_PLUGIN_UUID}.sdPlugin/imgs`, `${pluginInfo.uuid}.sdPlugin/imgs`),
+ template.copy(`${TEMPLATE_PLUGIN_UUID}.sdPlugin/ui`, `${pluginInfo.uuid}.sdPlugin/ui`),
template.copy(`${TEMPLATE_PLUGIN_UUID}.sdPlugin/manifest.json.ejs`, `${pluginInfo.uuid}.sdPlugin/manifest.json`),
template.copy("src"),
template.copy("_.gitignore", ".gitignore"),
diff --git a/template/com.elgato.template.sdPlugin/manifest.json.ejs b/template/com.elgato.template.sdPlugin/manifest.json.ejs
index fac4a53..61206a8 100644
--- a/template/com.elgato.template.sdPlugin/manifest.json.ejs
+++ b/template/com.elgato.template.sdPlugin/manifest.json.ejs
@@ -8,6 +8,7 @@
"UUID": "<%- uuid %>.increment",
"Icon": "imgs/actions/counter/icon",
"Tooltip": "Displays a count, which increments by one on press.",
+ "PropertyInspectorPath": "ui/increment-counter.html",
"Controllers": [
"Keypad"
],
diff --git a/template/com.elgato.template.sdPlugin/ui/increment-counter.html b/template/com.elgato.template.sdPlugin/ui/increment-counter.html
new file mode 100644
index 0000000..e0d65ee
--- /dev/null
+++ b/template/com.elgato.template.sdPlugin/ui/increment-counter.html
@@ -0,0 +1,19 @@
+
+
+
+
+ Increment Counter Settings
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/template/src/actions/increment-counter.ts.ejs b/template/src/actions/increment-counter.ts.ejs
index b16c1e9..18ae495 100644
--- a/template/src/actions/increment-counter.ts.ejs
+++ b/template/src/actions/increment-counter.ts.ejs
@@ -6,7 +6,7 @@ import { action, KeyDownEvent, SingletonAction, WillAppearEvent } from "@elgato/
@action({ UUID: "<%- uuid %>.increment" })
export class IncrementCounter extends SingletonAction {
/**
- * The {@link SingletonAction.onWillAppear} event is useful for setting the visual representation of an action when it become visible. This could be due to the Stream Deck first
+ * The {@link SingletonAction.onWillAppear} event is useful for setting the visual representation of an action when it becomes visible. This could be due to the Stream Deck first
* starting up, or the user navigating between pages / folders etc.. There is also an inverse of this event in the form of {@link streamDeck.client.onWillDisappear}. In this example,
* we're setting the title to the "count" that is incremented in {@link IncrementCounter.onKeyDown}.
*/
@@ -21,13 +21,14 @@ export class IncrementCounter extends SingletonAction {
* settings using `setSettings` and `getSettings`.
*/
async onKeyDown(ev: KeyDownEvent): Promise {
- // Determine the current count from the settings.
- let count = ev.payload.settings.count ?? 0;
- count++;
+ // Update the count from the settings.
+ const { settings } = ev.payload;
+ settings.incrementBy ??= 1;
+ settings.count = (settings.count ?? 0) + settings.incrementBy;
// Update the current count in the action's settings, and change the title.
- await ev.action.setSettings({ count });
- await ev.action.setTitle(`${count}`);
+ await ev.action.setSettings(settings);
+ await ev.action.setTitle(`${settings.count}`);
}
}
@@ -35,5 +36,6 @@ export class IncrementCounter extends SingletonAction {
* Settings for {@link IncrementCounter}.
*/
type CounterSettings = {
- count: number;
+ count?: number;
+ incrementBy?: number;
};