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.
This PR allows the setting of
vfunc
functions. These are "virtual functions" that will usually be called as the default callback for example, a signal or a method. By allowing setting, we effectively allow subclassing them.This pattern can be used, for example, to allow adding a default handler for a
GtkApplication
using the following pattern:You can see that this is similar to adding a
connect
handler. This is like setting a function. For example, when we set theactivate
vfunc, it's as if we're setting the function that executes when the function is executed.There is also a pattern typical in GJS that allows overriding vfuncs directly, but I still need to implement that.
This PR will also help implement
GtkBuilderScope
'svfunc_create_closure
, which is used to make sure callbacks from GtkBuilder template files (XML) are correctly attached to the JS-side callbacks. I will include the code in a future PR (probably #20)I also need to log a warning or error if a vfunc cannot be set.