core: Introduce a new CogView class #570
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Add a new
CogView
class, which extendsWebKitWebView
to avoid needing to specify the view backend for each instantiated view. Instead, the creation is delegated to the current CogPlatform, in one of the following two ways:Overriding a new
get_view_type
vfunc, which returns theGType
of aCogView
subclass specific to the platform plug-in. The custom view class needs to implement acreate_backend
vfunc that creates the view backend to use.Letting the core library use its fallback
CogView
subclass, which relies on the platform'sget_view_backend
vfunc. This matches the existing behaviour.This way platform plug-ins can opt-in to the new behaviour by implementing their own
CogView
subclass, and unchanged plug-ins will continue working during the transition.