gplugin/gplugin

Make GPluginManager a final type

2021-10-12, Gary Kramlich
a1b0fd07c7f1
Make GPluginManager a final type

* Use g_signal_new_class_handler to handle the accumulator based signals
* Remove the optional struct offset for the non accumulator based signals
* This all fixes the warnings from vapigen as well

Testing Done:
Ran the unit tests, gplugin-query, and gplugin-gtk3-viewer without issue.

Reviewed at https://reviews.imfreedom.org/r/1028/
Title: Perl5 Plugins
Slug: perl5
## Perl5 Plugins
> You **MUST** have the Perl5 loader plugin installed and working as well as
> the gobject-introspection package for GPlugin installed to use Perl5 plugins.
### Example Perl5 Plugin
Like all plugins in GPlugin, Perl5 plugins must also implement the
`gplugin_query`, `gplugin_load`, and `glugin_unload` functions.
The following is a basic Perl5 plugin.
```perl
use strict;
use Glib::Object::Introspection;
Glib::Object::Introspection->setup(basename => "GPlugin", version => "1.0", package=> "GPlugin");
sub gplugin_query {
return GPlugin::PluginInfo->new(
id => "gplugin/perl5-basic-plugin",
abi_version => 0x01020304,
name => "basic plugin",
authors => ("author1"),
category => "test",
version => "version",
license_id => "license",
summary => "summary",
website => "website",
description => "description",
);
}
sub gplugin_load {
return 0;
}
sub gplugin_unload {
return 0;
}
```