# Editor.BaseItemWidget

- Kind: class
- Namespace: `Editor`
- Assembly: `Sandbox.Tools`
- Inherits: [Editor.BaseScrollWidget](/api/Editor.BaseScrollWidget)

## Constructors

- [`BaseItemWidget`](/api/Editor.BaseItemWidget/.ctor)

## Properties

- [`BodyContextMenu`](/api/Editor.BaseItemWidget/BodyContextMenu): Called when right clicking on the item's parent.
- [`BodyDropTarget`](/api/Editor.BaseItemWidget/BodyDropTarget): What shall we do if they drag something in and it's not over an item?
- [`CanvasRect`](/api/Editor.BaseItemWidget/CanvasRect): The inner of LocalRect with Margin
- [`CurrentItemDragEvent`](/api/Editor.BaseItemWidget/CurrentItemDragEvent)
- [`DragDropTargetClosestThreshold`](/api/Editor.BaseItemWidget/DragDropTargetClosestThreshold): Gets or sets the maximum distance, in pixels, at which a target is considered close enough for drag-and-drop when in BodyDropTarget.Closest mode. operations.
- [`ItemActivated`](/api/Editor.BaseItemWidget/ItemActivated): Called when an item is double left clicked.
- [`ItemClicked`](/api/Editor.BaseItemWidget/ItemClicked): Called when an item is clicked.
- [`ItemContextMenu`](/api/Editor.BaseItemWidget/ItemContextMenu): Called when an item is right clicked.
- [`ItemDeselected`](/api/Editor.BaseItemWidget/ItemDeselected): Called when an item is no longer selected.
- [`ItemDrag`](/api/Editor.BaseItemWidget/ItemDrag): Called to see whether or not we can drag a specific item.
- [`ItemHoverEnter`](/api/Editor.BaseItemWidget/ItemHoverEnter): Called when an item is hovered by the user's cursor.
- [`ItemHoverLeave`](/api/Editor.BaseItemWidget/ItemHoverLeave): Called when an item is no longer hovered by the user's cursor.
- [`ItemPaint`](/api/Editor.BaseItemWidget/ItemPaint): Used to overwrite an item's style
- [`Items`](/api/Editor.BaseItemWidget/Items)
- [`ItemsDeselected`](/api/Editor.BaseItemWidget/ItemsDeselected): Multiple items have been deselected
- [`ItemSelected`](/api/Editor.BaseItemWidget/ItemSelected): Called when an item is selected.
- [`ItemsSelected`](/api/Editor.BaseItemWidget/ItemsSelected): Multiple items have been selected
- [`Margin`](/api/Editor.BaseItemWidget/Margin)
- [`MultiSelect`](/api/Editor.BaseItemWidget/MultiSelect): Whether to allow selecting multiple items at once.
- [`OnBeforeDeselection`](/api/Editor.BaseItemWidget/OnBeforeDeselection): Called before selection is changed on deselection. When multiple items are affected this will only be called once.
- [`OnBeforeSelection`](/api/Editor.BaseItemWidget/OnBeforeSelection): Called before selection is changed on selection. When multiple items are affected this will only be called once.
- [`OnSelectionChanged`](/api/Editor.BaseItemWidget/OnSelectionChanged): Called when selection has changed. When multiple items are affected this will only be called once.
- [`ProvidesDebugMode`](/api/Editor.BaseItemWidget/ProvidesDebugMode)
- [`SelectedItems`](/api/Editor.BaseItemWidget/SelectedItems): Selected items.
- [`Selection`](/api/Editor.BaseItemWidget/Selection)
- [`SelectionOverride`](/api/Editor.BaseItemWidget/SelectionOverride): Can override an item's selection here.
- [`ToggleSelect`](/api/Editor.BaseItemWidget/ToggleSelect): If set, selecting an item will not deselect all already selected items, clicking a selected item will deselect it.

## Methods

- [`AddItem`](/api/Editor.BaseItemWidget/AddItem): Add given item to this widget.
- [`AddItems`](/api/Editor.BaseItemWidget/AddItems)
- [`Clear`](/api/Editor.BaseItemWidget/Clear): Remove all items.
- [`Dirty`](/api/Editor.BaseItemWidget/Dirty)
- [`GetItemAt`](/api/Editor.BaseItemWidget/GetItemAt): Get the virtual item at this local position.
- [`IsSelected`](/api/Editor.BaseItemWidget/IsSelected): Return true if this item is selected.
- [`OnDestroyed`](/api/Editor.BaseItemWidget/OnDestroyed)
- [`OnDragDrop`](/api/Editor.BaseItemWidget/OnDragDrop)
- [`OnDragHover`](/api/Editor.BaseItemWidget/OnDragHover)
- [`OnDragLeave`](/api/Editor.BaseItemWidget/OnDragLeave)
- [`RemoveItem`](/api/Editor.BaseItemWidget/RemoveItem): Remove given item from this widget.
- [`ScrollTo`](/api/Editor.BaseItemWidget/ScrollTo): Ensure that given item is in view, scrolling to it if necessary.
- [`SelectItem`](/api/Editor.BaseItemWidget/SelectItem): Select given item.
- [`SelectItems`](/api/Editor.BaseItemWidget/SelectItems)
- [`SelectItemStartingWith`](/api/Editor.BaseItemWidget/SelectItemStartingWith)
- [`SelectMove`](/api/Editor.BaseItemWidget/SelectMove): Move the selection pointer by this many positions.
- [`SelectMoveColumn`](/api/Editor.BaseItemWidget/SelectMoveColumn)
- [`SelectMoveRow`](/api/Editor.BaseItemWidget/SelectMoveRow)
- [`SetItems`](/api/Editor.BaseItemWidget/SetItems)
- [`UnselectAll`](/api/Editor.BaseItemWidget/UnselectAll): Unselects all items that are currently selected (if any)
- [`UnselectItem`](/api/Editor.BaseItemWidget/UnselectItem): Unselect given item.
- [`UpdateIfDirty`](/api/Editor.BaseItemWidget/UpdateIfDirty)
