Expand description
This crate is a part of rat-salsa.
§Rat-Reloc(ate)
This crate defines the trait RelocatableState
§Why?
Many widgets in rat-widget store one or more areas for mouse interaction.
And there are widgets that render other widgets to a temp Buffer and later dump parts of it to the main render Buffer. And then all the stored areas in the widget-state are wrong.
The RelocatableState trait gives the widgets that use such temp Buffers a hook to correct for any movement and clipping that has happened.
§Why so complicated?
- This doesn’t affect normal rendering of a widget, it’s just and afterthought.
- The widget doesn’t need to know what other widgets exist, it just has to provide the function to relocate its areas after rendering.
Macros§
- impl_
relocatable_ state - Create the implementation of RelocatableState for the given list of struct members.
Traits§
- Relocatable
State - Widgets can be rendered to a temporary Buffer that will be dumped to the main render Buffer at a later point.
Functions§
- relocate_
area - Shift the area by offset and clip it.
- relocate_
areas - Shift the area by offset and clip it.
- relocate_
dark_ offset - Clipping might introduce another offset by cutting away part of an area that a widgets internal offset refers to.
- relocate_
pos_ tuple - Shift the position by offset and clip it. Returns None if the position is clipped.
- relocate_
position - Shift the position by offset and clip it. Returns None if the position is clipped.
- relocate_
positions - Shift the position by offset and clip it. Clipped positions are replaced with (0,0) for this function.