Ranges are allowed to be any integral type or a double, and `GVariant` doesn't
allow accessing an integer from a differently-sized integer, so we need tests
for all versions.
Testing Done:
Opened plugin viewer and confirmed that all settings were added.
Reviewed at https://reviews.imfreedom.org/r/2152/
Title: Native Plugins
Slug: native
## Native Plugins
Writing Native plugins is pretty simple, but since it's C/C++ it's a bit more
complicated.
There are currently no C++ bindings and no intention to write them, but the C
API is still usable from C++.
```c
#include<gplugin.h>
#include<gplugin-native.h>
/* This function is called by the native plugin loader to get information about
* the plugin. It returns a #GPluginPluginInfo instance that describes the
* plugin. If anything goes wrong during this function, @error should be set
* via g_set_error() and %NULL should be returned. It must match the
* signature of GPluginNativePluginQueryFunc, and it will be passed to
* GPLUGIN_NATIVE_PLUGIN_DECLARE which will export it properly.
*/
staticGPluginPluginInfo*
gplugin_native_basic_plugin_query(GError**error){
/* Authors is a list of authors who worked on the plugin. Generally
* these are in the "Name Surname <user@domain.com>" format.
*/
constgchar*constauthors[]={
"Author O <author@example.com>",
NULL
};
/* gplugin_plugin_info_new only requires that the id be set, and the
* rest are here for demonstration purposes.
*/
returngplugin_plugin_info_new(
"gplugin/native-basic-plugin",
GPLUGIN_NATIVE_PLUGIN_ABI_VERSION,
"name","name",
"version","version",
"summary","summary",
"description","description",
"authors",authors,
"website","website",
NULL);
}
/* This function is called by the native plugin loader when the plugin should
* be loaded. It should do any setup that the plugin requires and return %TRUE
* if everything was successful. If not, it should set @error with
* g_set_error() and return %FALSE. This function needs to match the
* signature of GPluginNativePluginLoadFunc, and it will be passed to
* GPLUGIN_NATIVE_PLUGIN_DECLARE which will export it properly.