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: https://crates.io/crates/makepad-widgets

최적의 용도

적합한 상황: Ideal for AI agents that need makepad event/action skill.

실행 가능한 사용 사례 for makepad-event-action

사용 사례: Applying Makepad Event/Action Skill
사용 사례: Applying Version: makepad-widgets (dev branch) Last Updated: 2026-01-19
사용 사례: Applying 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 comes 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은 어디에 쓰이나요?

주요 활용 사례는 다음과 같습니다: 사용 사례: Applying Makepad Event/Action Skill, 사용 사례: Applying Version: makepad-widgets (dev branch) Last Updated: 2026-01-19, 사용 사례: Applying 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 comes 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 comes 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
인공지능

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
인공지능

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
개발자