@Diego: The update method? If you mean doing your own Input checks, I would say so, yes.
@The-Arrival: I never liked the interface-based approach personally. From coding point of view it's more neat to not have to derive from some specific class. Much less code too -- no need to register anything either. The performance cost of relying on SendMessage in this case is negligible to the point of being invisible. The only downside is no native way of letting certain events fall through, but that can be remedied inside the desired function itself by forwarding the event to a sub-object if desired.
The full sequence of events when trying to press on something is:
- Hover(true) <-- Initially hovering over an object
- Press (true) <-- Pressed on an object
- Press (false) <-- Released the button
- Hover (true) <-- Restoring state to "hover" (won't happen if released outside the object)
- Click
I'm not sure why you'd want to overwrite this with something custom...