# Sandbox.Component.IPressable

A component that can be pressed. Like a button. This could be by 
a player USE'ing it, or by a player walking on it, or by an NPC.
A call to Press should ALWAYS call release afterwards. Generally
this is done by the player, where holding E presses the button, and
releasing E stops pressing it. You need to handle edge cases where
the player dies while holding etc.

- Kind: interface
- Assembly: `Sandbox.Engine`
- Modifiers: abstract

## Methods

- [`Blur`](/api/Sandbox.Component.IPressable/Blur): A player has stopped looking at this
- [`CanPress`](/api/Sandbox.Component.IPressable/CanPress): Return true if the press is possible right now
- [`GetTooltip`](/api/Sandbox.Component.IPressable/GetTooltip): Get a tooltip to show when looking at this pressable
- [`Hover`](/api/Sandbox.Component.IPressable/Hover): A player has started looking at this
- [`Look`](/api/Sandbox.Component.IPressable/Look): A player is still looking at this. Called every frame.
- [`Press`](/api/Sandbox.Component.IPressable/Press): Pressed. Returns true on success, else false. If it returns true then you should call Release when the press finishes. Not everything expects it, but some stuff will.
- [`Pressing`](/api/Sandbox.Component.IPressable/Pressing): Still being pressed. Return true to allow the press to continue, false cancel the press
- [`Release`](/api/Sandbox.Component.IPressable/Release): To be called when the press finishes. You should only call this after a successful press - ie when Press hass returned true.
