makepad-event-action — for Claude Code makepad-event-action, ruflow, community, for Claude Code, ide skills, handle_event, sync-crate-skills makepad --force, ## Handling Events in Widgets, Makepad, Version

v1.0.0

このスキルについて

適した場面: Ideal for AI agents that need makepad event/action skill. ローカライズされた概要: # Makepad Event/Action Skill Version: makepad-widgets (dev branch) Last Updated: 2026-01-19 Check for updates: https://crates.io/crates/makepad-widgets You are an expert at Makepad event and action handling. This AI agent skill supports Claude Code, Cursor, and Windsurf workflows.

機能

Makepad Event/Action Skill
Version: makepad-widgets (dev branch) Last Updated: 2026-01-19
Check for updates: https://crates.io/crates/makepad-widgets
You are an expert at Makepad event and action handling. Help users by:
Handling events: Mouse, keyboard, touch, lifecycle events

# 主なトピック

henryalouf henryalouf
[1]
[1]
更新日: 5/3/2026

Skill Overview

Start with fit, limitations, and setup before diving into the repository.

適した場面: Ideal for AI agents that need makepad event/action skill. ローカライズされた概要: # Makepad Event/Action Skill Version: makepad-widgets (dev branch) Last Updated: 2026-01-19 Check for updates: https://crates.io/crates/makepad-widgets You are an expert at Makepad event and action handling. This AI agent skill supports Claude Code, Cursor, and Windsurf workflows.

このスキルを使用する理由

推奨ポイント: makepad-event-action helps agents makepad event/action skill. Makepad Event/Action Skill Version: makepad-widgets (dev branch) Last Updated: 2026-01-19 Check for updates

おすすめ

適した場面: Ideal for AI agents that need makepad event/action skill.

実現可能なユースケース for makepad-event-action

ユースケース: Makepad Event/Action Skill
ユースケース: Version: makepad-widgets (dev branch) Last Updated: 2026-01-19
ユースケース: Check for updates: https://crates.io/crates/makepad-widgets

! セキュリティと制限

  • 制約事項: You need to handle input, lifecycle, or UI interaction events in Makepad.
  • 制約事項: You need to design or debug Makepad event/action flow between widgets and parents.
  • 制約事項: Before answering questions, Claude MUST:

About The Source

The section below is adapted from the upstream repository. Use it as supporting material alongside the fit, use-case, and installation summary on this page.

Labs デモ

Browser Sandbox Environment

⚡️ Ready to unleash?

Experience this Agent in a zero-setup browser environment powered by WebContainers. No installation required.

Boot Container Sandbox

FAQ とインストール手順

These questions and steps mirror the structured data on this page for better search understanding.

? よくある質問

makepad-event-action とは何ですか?

適した場面: Ideal for AI agents that need makepad event/action skill. ローカライズされた概要: # Makepad Event/Action Skill Version: makepad-widgets (dev branch) Last Updated: 2026-01-19 Check for updates: https://crates.io/crates/makepad-widgets You are an expert at Makepad event and action handling. This AI agent skill supports Claude Code, Cursor, and Windsurf workflows.

makepad-event-action はどうやって導入しますか?

次のコマンドを実行してください: npx killer-skills add henryalouf/ruflow/makepad-event-action。Cursor、Windsurf、VS Code、Claude Code など19以上のIDEで使えます。

makepad-event-action の主な用途は?

主な用途は次のとおりです: ユースケース: Makepad Event/Action Skill, ユースケース: Version: makepad-widgets (dev branch) Last Updated: 2026-01-19, ユースケース: Check for updates: https://crates.io/crates/makepad-widgets。

makepad-event-action に対応するIDEは?

このスキルは Cursor, Windsurf, VS Code, Trae, Claude Code, OpenClaw, Aider, Codex, OpenCode, Goose, Cline, Roo Code, Kiro, Augment Code, Continue, GitHub Copilot, Sourcegraph Cody, and Amazon Q Developer に対応しています。統一された導入には Killer-Skills CLI を使えます。

makepad-event-action に制限はありますか?

制約事項: You need to handle input, lifecycle, or UI interaction events in Makepad.. 制約事項: You need to design or debug Makepad event/action flow between widgets and parents.. 制約事項: Before answering questions, Claude MUST:.

このスキルの導入方法

  1. 1. ターミナルを開く

    プロジェクトディレクトリでターミナルまたはコマンドラインを開きます。

  2. 2. インストールコマンドを実行

    npx killer-skills add henryalouf/ruflow/makepad-event-action を実行してください。CLI がIDEまたはエージェントを自動検出し、スキルを設定します。

  3. 3. スキルを使い始める

    このスキルはすぐに有効になります。現在のプロジェクトで makepad-event-action をすぐ使えます。

! Source Notes

This page is still useful for installation and source reference. Before using it, compare the fit, limitations, and upstream repository notes above.

Upstream Repository Material

The section below is adapted from the upstream repository. Use it as supporting material alongside the fit, use-case, and installation summary on this page.

Upstream Source

makepad-event-action

Install makepad-event-action, an AI agent skill for AI agent workflows and automation. Explore features, use cases, limitations, and setup guidance.

SKILL.md
Readonly
Upstream Repository Material
The section below is adapted from the upstream repository. Use it as supporting material alongside the fit, use-case, and installation summary on this page.
Upstream Source

Makepad Event/Action Skill

Version: makepad-widgets (dev branch) | Last Updated: 2026-01-19

Check for updates: https://crates.io/crates/makepad-widgets

You are an expert at Makepad event and action handling. Help users by:

  • Handling events: Mouse, keyboard, touch, lifecycle events
  • Creating actions: Widget-to-parent communication
  • Event flow: Understanding event propagation

When to Use

  • You need to handle input, lifecycle, or UI interaction events in Makepad.
  • The task involves handle_event, Event variants, Hit processing, or widget action propagation.
  • You need to design or debug Makepad event/action flow between widgets and parents.

Documentation

Refer to the local files for detailed documentation:

  • ./references/event-system.md - Event enum and handling
  • ./references/action-system.md - Action trait and patterns

IMPORTANT: Documentation Completeness Check

Before answering questions, Claude MUST:

  1. Read the relevant reference file(s) listed above
  2. If file read fails or file is empty:
    • Inform user: "本地文档不完整,建议运行 /sync-crate-skills makepad --force 更新文档"
    • Still answer based on SKILL.md patterns + built-in knowledge
  3. If reference file exists, incorporate its content into the answer

Event Enum (Key Variants)

rust
1pub enum Event { 2 // Lifecycle 3 Startup, 4 Shutdown, 5 Foreground, 6 Background, 7 Resume, 8 Pause, 9 10 // Drawing 11 Draw(DrawEvent), 12 LiveEdit, 13 14 // Window 15 WindowGotFocus(WindowId), 16 WindowLostFocus(WindowId), 17 WindowGeomChange(WindowGeomChangeEvent), 18 WindowClosed(WindowClosedEvent), 19 20 // Mouse 21 MouseDown(MouseDownEvent), 22 MouseMove(MouseMoveEvent), 23 MouseUp(MouseUpEvent), 24 Scroll(ScrollEvent), 25 26 // Touch 27 TouchUpdate(TouchUpdateEvent), 28 29 // Keyboard 30 KeyDown(KeyEvent), 31 KeyUp(KeyEvent), 32 TextInput(TextInputEvent), 33 TextCopy(TextClipboardEvent), 34 35 // Timer 36 Timer(TimerEvent), 37 NextFrame(NextFrameEvent), 38 39 // Network 40 HttpResponse(HttpResponse), 41 42 // Widget Actions 43 Actions(ActionsBuf), 44}

Handling Events in Widgets

rust
1impl Widget for MyWidget { 2 fn handle_event(&mut self, cx: &mut Cx, event: &Event, scope: &mut Scope) { 3 // Check if event hits this widget's area 4 match event.hits(cx, self.area()) { 5 Hit::FingerDown(fe) => { 6 // Mouse/touch down on this widget 7 cx.action(MyWidgetAction::Pressed); 8 } 9 Hit::FingerUp(fe) => { 10 if fe.is_over { 11 // Released while still over widget = click 12 cx.action(MyWidgetAction::Clicked); 13 } 14 } 15 Hit::FingerHoverIn(_) => { 16 self.animator_play(cx, id!(hover.on)); 17 } 18 Hit::FingerHoverOut(_) => { 19 self.animator_play(cx, id!(hover.off)); 20 } 21 Hit::KeyDown(ke) => { 22 if ke.key_code == KeyCode::Return { 23 cx.action(MyWidgetAction::Submitted); 24 } 25 } 26 _ => {} 27 } 28 } 29}

Hit Enum

rust
1pub enum Hit { 2 // Finger/Mouse 3 FingerDown(FingerDownEvent), 4 FingerUp(FingerUpEvent), 5 FingerMove(FingerMoveEvent), 6 FingerHoverIn(FingerHoverEvent), 7 FingerHoverOver(FingerHoverEvent), 8 FingerHoverOut(FingerHoverEvent), 9 FingerLongPress(FingerLongPressEvent), 10 11 // Keyboard 12 KeyDown(KeyEvent), 13 KeyUp(KeyEvent), 14 KeyFocus, 15 KeyFocusLost, 16 TextInput(TextInputEvent), 17 TextCopy, 18 19 // Nothing 20 Nothing, 21}

Action System

Defining Actions

rust
1#[derive(Clone, Debug, DefaultNone)] 2pub enum ButtonAction { 3 None, 4 Clicked, 5 Pressed, 6 Released, 7} 8 9// DefaultNone derives Default returning None variant

Emitting Actions

rust
1// From main thread (in handle_event) 2cx.action(ButtonAction::Clicked); 3 4// From any thread (thread-safe) 5Cx::post_action(MyAction::DataLoaded(data));

Handling Actions

rust
1fn handle_event(&mut self, cx: &mut Cx, event: &Event, scope: &mut Scope) { 2 // Handle child widget actions 3 let actions = cx.capture_actions(|cx| { 4 self.button.handle_event(cx, event, scope); 5 }); 6 7 // Check for specific action 8 if self.button(id!(my_button)).clicked(&actions) { 9 // Button was clicked 10 } 11 12 // Or iterate actions 13 for action in actions.iter() { 14 if let Some(ButtonAction::Clicked) = action.downcast_ref() { 15 // Handle click 16 } 17 } 18}

Widget Action Helpers

rust
1// Common widget action checks 2impl ButtonRef { 3 fn clicked(&self, actions: &ActionsBuf) -> bool; 4 fn pressed(&self, actions: &ActionsBuf) -> bool; 5 fn released(&self, actions: &ActionsBuf) -> bool; 6} 7 8impl TextInputRef { 9 fn changed(&self, actions: &ActionsBuf) -> Option<String>; 10 fn returned(&self, actions: &ActionsBuf) -> Option<String>; 11}

Event Flow

  1. Event arrives from platform layer
  2. Root widget receives event first
  3. Propagates down to children via handle_event
  4. Widgets emit actions via cx.action()
  5. Parent captures actions via cx.capture_actions()
  6. App handles remaining actions

Timer and NextFrame

rust
1// Start a timer 2let timer = cx.start_timer(1.0); // 1 second 3 4// In handle_event 5if let Event::Timer(te) = event { 6 if te.timer_id == self.timer { 7 // Timer fired 8 } 9} 10 11// Request next frame callback 12let next_frame = cx.new_next_frame(); 13 14// In handle_event 15if let Event::NextFrame(ne) = event { 16 if ne.frame_id == self.next_frame { 17 // Next frame arrived 18 } 19}

When Answering Questions

  1. Use event.hits(cx, area) to check if event targets a widget
  2. Actions flow UP from child to parent (unlike events which flow DOWN)
  3. Use cx.capture_actions() to intercept child actions
  4. Cx::post_action() is thread-safe for async operations
  5. DefaultNone derive macro auto-implements Default for enums

関連スキル

Looking for an alternative to makepad-event-action or another community skill for your workflow? Explore these related open-source skills.

すべて表示

openclaw-release-maintainer

Logo of openclaw
openclaw

ローカライズされた概要: 🦞 # OpenClaw Release Maintainer Use this skill for release and publish-time workflow. It covers ai, assistant, crustacean workflows. This AI agent skill supports Claude Code, Cursor, and Windsurf workflows.

333.8k
0
AI

widget-generator

Logo of f
f

ローカライズされた概要: Generate customizable widget plugins for the prompts.chat feed system # Widget Generator Skill This skill guides creation of widget plugins for prompts.chat. It covers ai, artificial-intelligence, awesome-list workflows. This AI agent skill supports Claude Code, Cursor, and Windsurf

149.6k
0
AI

flags

Logo of vercel
vercel

ローカライズされた概要: The React Framework # Feature Flags Use this skill when adding or changing framework feature flags in Next.js internals. It covers blog, browser, compiler workflows. This AI agent skill supports Claude Code, Cursor, and Windsurf workflows.

138.4k
0
ブラウザ

pr-review

Logo of pytorch
pytorch

ローカライズされた概要: Usage Modes No Argument If the user invokes /pr-review with no arguments, do not perform a review. It covers autograd, deep-learning, gpu workflows. This AI agent skill supports Claude Code, Cursor, and Windsurf workflows.

98.6k
0
開発者