# Events

The widget emits `DirectoryTreeEvent`:

- `Toggled(PathBuf)` — the user clicked the caret on a folder.
- `Selected(PathBuf, bool, SelectionMode)` — the user selected a
  row; `bool` is `true` for directories, `false` for files, and
  the [`SelectionMode`](multi-select.md) controls how the event
  composes with any existing selection.
- `Drag(DragMsg)` — internal drag-state messages. Your app
  typically routes these straight back into `update()` without
  inspecting them. See [Drag-and-drop](drag-and-drop.md).
- `DragCompleted { sources, destination }` — a successful drop.
  Your app reacts by performing the move/copy/etc.
- `Loaded(LoadPayload)` — internal; a pending scan completed.
  Parent applications route it straight back into `update()`
  without inspecting it.
