EvView refactor or rewrite
Some general ideas:
- A11y support needs a seperated accessibility object tree which is matched to widget tree. So the general idea is to make everything a widget in EvView. So we don't need to implement the custom a11y object hierarchy.
- gtk_snapshot_render_* APIs are deprecated in recent version of GTK4. And the developers said everything can be styled by CSS should be a widget. That's another reason to make EvView a container widget with various kind of child widgets.
- After making EvView a container, we can utilize layout managers introduced in GTK4. For example, ContinuousLayout, DoublePageLayout, PresentationLayout, etc.
- We need to implement a GtkGridView like container with recycled page widgets.
- Keep in mind for touch screen support. For example, text handle.
- (Optional) Maybe we can implement EvView in Rust.