gum-tool-dialogs

Document Gum's DialogService and DeleteOptionsWindow dialog systems for standardized creation and management.

597|79|Updated Mar 11, 2015
One-click install
npx skills add https://github.com/vchelaru/Gum --skill gum-tool-dialogs
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: gum-tool-dialogs
Source: https://github.com/vchelaru/Gum/tree/main/.claude/skills/gum-tool-dialogs
Command: npx skills add https://github.com/vchelaru/Gum --skill gum-tool-dialogs

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Reference guide for Gum's dialog/popup systems. Load this when working on dialog windows, DialogService, DialogWindow, DeleteOptionsWindow, dialog scrolling, dialog layout, or adding new dialog types.

Core Features & Use Cases

  • Two Separate Systems: DialogService (MVVM) handles message popups, confirmations, text input, choice selection, plugin management, and import dialogs; DeleteOptionsWindow is standalone for delete confirmations with plugin-injected options.
  • Flow and behavior: DialogService creates a DialogWindow, sets its DataContext to a view model, uses a DialogTemplateSelector to resolve the view, and binds attached properties from the view to the Dialog control after load.
  • Key concepts: View resolution (mapping FooViewModel to FooView), window sizing (SizeToContent then manual), and attached properties like DialogTitle, DialogActions, DialogAuxiliaryActions, Dialog.ScrollContent.
  • Standalone DeleteOptionsWindow: Code-behind with a MainStackPanel that plugins can modify; separate from DialogService; not MVVM.
  • Common pitfalls: Do not modify DialogWindow to affect the delete dialog; ensure you know which system shows the dialog; dialog scrolling issues and the need to adjust ScrollContent.

Quick Start

Consult this guide when implementing or debugging Gum's dialog systems to ensure consistent DialogService and DeleteOptionsWindow behavior.

Frequently Asked Questions about gum-tool-dialogs

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create a new dialog window in Gum using MVVM?

Gum's DialogService creates a DialogWindow, sets its DataContext to a view model, and uses a DialogTemplateSelector to resolve the view. Attached properties like DialogTitle and DialogActions bind from the view to the Dialog control after load.

Why does my Gum delete dialog not change when I modify DialogWindow?

The delete dialog does not change because DeleteOptionsWindow is a standalone system with code-behind, separate from the MVVM DialogService. Modifying DialogWindow will not affect the standalone delete confirmation workflow.

How does view resolution work for Gum popup systems?

View resolution in Gum popup systems maps a view model to its corresponding view automatically. The DialogService uses a DialogTemplateSelector to resolve the view, ensuring the correct UI is rendered for the given dialog view model.

How do I fix dialog scrolling issues in Gum?

To fix dialog scrolling issues in Gum, you need to adjust the Dialog.ScrollContent attached property. This property controls the scrolling behavior of the dialog content within the DialogWindow.

Can plugins inject options into the Gum DeleteOptionsWindow?

Yes, plugins can inject options into the Gum DeleteOptionsWindow. The window contains a MainStackPanel in its code-behind that plugins can modify directly, separate from the MVVM DialogService flow.

What is the correct window sizing approach for Gum dialogs?

Gum dialogs use SizeToContent for initial window sizing, then switch to manual sizing. This approach ensures the dialog window fits its content initially before allowing manual size adjustments.