Creates a new [classPortal]
object.
Request access to a camera.
When the request is done, callback
will be called.
You can then call [methodPortal
.access_camera_finish]
to get the results.
parent window information
options for this call
optional [classGio
.Cancellable]
a callback to call when the request is done
Finishes a camera acess request.
Returns the result as a boolean.
If the access was granted, you can then call
[methodPortal
.open_pipewire_remote_for_camera]
to obtain a pipewire remote.
a [ifaceGio
.AsyncResult]
Sends a desktop notification.
The following keys may be present in notification:
s
: a user-visible string to display as titles
: a user-visible string to display as bodyv
: a serialized icon (in the format produced by [methodGio
.Icon.serialize])s
: "low", "normal", "high" or "urgent"s
: name of an action that
will be activated when the user clicks on the notificationv
: target parameter to send along when
activating the default action.aa{sv}
: array of serialized buttonsEach serialized button is a dictionary with the following supported keys:
s
: user-visible lable for the button. Mandatorys
: name of an action that will be activated when
the user clicks on the button. Mandatoryv
: target parameter to send along when activating
the buttonActions with a prefix of "app." are assumed to be exported by the
application and will be activated via the org.freedesktop.Application
interface, others are activated by emitting the
[signalPortal:
:notification-action-invoked] signal.
It is the callers responsibility to ensure that the ID is unique among all notifications.
To withdraw a notification, use [methodPortal
.remove_notification].
unique ID for the notification
a [structGLib
.Variant] dictionary with the content of the notification
options for this call
optional [classGio
.Cancellable]
a callback to call when the request is done
Finishes the notification request.
Returns the result as a boolean.
a [ifaceGio
.AsyncResult]
Creates a binding between source_property
on source
and target_property
on target
.
Whenever the source_property
is changed the target_property
is
updated using the same value. For instance:
g_object_bind_property (action, "active", widget, "sensitive", 0);
Will result in the "sensitive" property of the widget #GObject instance to be updated with the same value of the "active" property of the action #GObject instance.
If flags
contains %G_BINDING_BIDIRECTIONAL then the binding will be mutual:
if target_property
on target
changes then the source_property
on source
will be updated as well.
The binding will automatically be removed when either the source
or the
target
instances are finalized. To remove the binding without affecting the
source
and the target
you can just call g_object_unref() on the returned
#GBinding instance.
Removing the binding by calling g_object_unref() on it must only be done if
the binding, source
and target
are only used from a single thread and it
is clear that both source
and target
outlive the binding. Especially it
is not safe to rely on this if the binding, source
or target
can be
finalized from different threads. Keep another reference to the binding and
use g_binding_unbind() instead to be on the safe side.
A #GObject can have multiple bindings.
the property on source
to bind
the target #GObject
the property on target
to bind
flags to pass to #GBinding
Creates a binding between source_property
on source
and target_property
on target,
allowing you to set the transformation functions to be used by
the binding.
This function is the language bindings friendly version of g_object_bind_property_full(), using #GClosures instead of function pointers.
the property on source
to bind
the target #GObject
the property on target
to bind
flags to pass to #GBinding
a #GClosure wrapping the transformation function from the source
to the target,
or %NULL to use the default
a #GClosure wrapping the transformation function from the target
to the source,
or %NULL to use the default
Presents a window that lets the user compose an email, with some pre-filled information.
When the request is done, callback
will be called. You can then
call [methodPortal
.compose_email_finish] to get the results.
parent window information
the email addresses to send to
the email addresses to cc
the email addresses to bcc
the subject for the email
the body for the email
an array of paths for files to attach
options for this call
optional [classGio
.Cancellable]
a callback to call when the request is done
Finishes the compose-email request.
a [ifaceGio
.AsyncResult]
Creates a session for remote desktop.
When the request is done, callback
will be called. You can then
call [methodPortal
.create_remote_desktop_session_finish] to get the results.
which kinds of input devices to ofer in the new dialog
which kinds of source to offer in the dialog
options for this call
the cursor mode of the session
optional [classGio
.Cancellable]
a callback to call when the request is done
Finishes the create-remote-desktop request, and returns a [classSession]
.
a [ifaceGio
.AsyncResult]
Creates a session for a screencast.
When the request is done, callback
will be called. You can then
call [methodPortal
.create_screencast_session_finish] to get the results.
which kinds of source to offer in the dialog
options for this call
the cursor mode of the session
the persist mode of the session
the token of a previous screencast session to restore
optional [classGio
.Cancellable]
a callback to call when the request is done
Finishes the create-screencast request, and returns a [classSession]
.
a [ifaceGio
.AsyncResult]
This function gets the contents of a .desktop file that was previously installed by the dynamic launcher portal.
The desktop_file_id
must be prefixed with the caller's app ID followed by a
"." and suffixed with ".desktop".
the .desktop file name
This function gets the icon associated with a .desktop file that was previously installed by the dynamic launcher portal.
The desktop_file_id
must be prefixed with the caller's app ID followed by a
"." and suffixed with ".desktop".
the .desktop file name
return location for icon format string, one of "png", "jpeg", "svg"
return location for icon size
This function completes installation of a launcher so that the icon and name given in previous method calls will show up in the desktop environment's menu.
The desktop_file_id
must be prefixed with the caller's app ID followed by a
"." and suffixed with ".desktop".
The desktop_entry
data need not include Icon= or Name= entries since these
will be added by the portal, and the Exec= entry will be rewritten to call
the application with e.g. "flatpak run" depending on the sandbox status of
the app.
a token acquired via a [methodPortal
.dynamic_launcher_request_install_token] or [methodPortal
.dynamic_launcher_prepare_install] call
the .desktop file name to be used
the key-file to be used for the contents of the .desktop file
Presents a dialog to the user so they can confirm they want to install a launcher to their desktop.
When the request is done, callback
will be called. You can then
call [methodPortal
.dynamic_launcher_prepare_install_finish] to get the results.
parent window information
the name for the launcher
a #GBytesIcon as returned by g_icon_serialize(). Must be a png or jpeg no larger than 512x512, or an svg
the type of the launcher
the URL if the launcher is for a web app, or %NULL
if %TRUE, the user will be able to edit the name of the launcher
if %TRUE, the user will be able to edit the icon of the launcher, if the implementation supports this
optional [classGio
.Cancellable]
a callback to call when the request is done
Finishes the prepare-install-launcher request, and returns
[structGLib
.Variant] dictionary with the following information:
Portal
.dynamic_launcher_install]
call to complete the installationa [ifaceGio
.AsyncResult]
Requests a token which can be passed to [methodPortal
.dynamic_launcher_install]
to complete installation of the launcher without user interaction.
This function only works when the caller's app ID is in the allowlist for the portal backend being used. It's intended for software centers such as GNOME Software or KDE Discover.
the name for the launcher
a #GBytesIcon as returned by g_icon_serialize(). Must be a png or jpeg no larger than 512x512, or an svg
This function uninstalls a launcher that was previously installed using the dynamic launcher portal, resulting in the .desktop file and icon being deleted.
The desktop_file_id
must be prefixed with the caller's app ID followed by a
"." and suffixed with ".desktop".
the .desktop file name
This function is intended for #GObject implementations to re-enforce a [floating][floating-ref] object reference. Doing this is seldom required: all #GInitiallyUnowneds are created with a floating reference which usually just needs to be sunken by calling g_object_ref_sink().
Increases the freeze count on object
. If the freeze count is
non-zero, the emission of "notify" signals on object
is
stopped. The signals are queued until the freeze count is decreased
to zero. Duplicate notifications are squashed so that at most one
#GObject::notify signal is emitted for each property modified while the
object is frozen.
This is necessary for accessors that modify multiple properties to prevent premature notification while the object is still being modified.
Gets a named field from the objects table of associations (see g_object_set_data()).
name of the key for that association
Gets a property of an object.
The value
can be:
In general, a copy is made of the property contents and the caller is responsible for freeing the memory by calling g_value_unset().
Note that g_object_get_property() is really intended for language bindings, g_object_get() is much more convenient for C programming.
the name of the property to get
return location for the property value
This function gets back user data pointers stored via g_object_set_qdata().
A #GQuark, naming the user data pointer
Gets information about the user.
When the request is done, callback
will be called. You can then
call [methodPortal
.get_user_information_finish] to get the results.
parent window information
a string that can be shown in the dialog to explain why the information is needed
options for this call
optional [classGio
.Cancellable]
a callback to call when the request is done
Finishes the get-user-information request.
Returns the result in the form of a [structGLib
.Variant] dictionary
containing the following fields:
s
: the user IDs
: the users real names
: the uri of an image file for the users avatar picturea [ifaceGio
.AsyncResult]
Gets n_properties
properties for an object
.
Obtained properties will be set to values
. All properties must be valid.
Warnings will be emitted and undefined behaviour may result if invalid
properties are passed in.
the names of each property to get
the values of each property to get
Returns whether any camera are present.
Checks whether object
has a [floating][floating-ref] reference.
Makes XdpPortal
start monitoring location changes.
When the location changes, the [signalPortal:
:location-updated].
signal is emitted.
Use [methodPortal
.location_monitor_stop] to stop monitoring.
Note that [classPortal]
only maintains a single location monitor
at a time. If you want to change the distance_threshold,
time_threshold
or accuracy
of the current monitor, you
first have to call [methodPortal
.location_monitor_stop] to
stop monitoring.
a [structParent]
, or NULL
distance threshold, in meters
time threshold, in seconds
desired accuracy
options for this call
optional [classGio
.Cancellable]
a callback to call when the request is done
Finishes a location-monitor request.
Returns result in the form of boolean.
a [ifaceGio
.AsyncResult]
Stops location monitoring that was started with
[methodPortal
.location_monitor_start].
Emits a "notify" signal for the property property_name
on object
.
When possible, eg. when signaling a property change from within the class that registered the property, you should use g_object_notify_by_pspec() instead.
Note that emission of the notify signal may be blocked with g_object_freeze_notify(). In this case, the signal emissions are queued and will be emitted (in reverse order) when g_object_thaw_notify() is called.
the name of a property installed on the class of object
.
Emits a "notify" signal for the property specified by pspec
on object
.
This function omits the property name lookup, hence it is faster than g_object_notify().
One way to avoid using g_object_notify() from within the class that registered the properties, and using g_object_notify_by_pspec() instead, is to store the GParamSpec used with g_object_class_install_property() inside a static array, e.g.:
enum
{
PROP_0,
PROP_FOO,
PROP_LAST
};
static GParamSpec *properties[PROP_LAST];
static void
my_object_class_init (MyObjectClass *klass)
{
properties[PROP_FOO] = g_param_spec_int ("foo", "Foo", "The foo",
0, 100,
50,
G_PARAM_READWRITE);
g_object_class_install_property (gobject_class,
PROP_FOO,
properties[PROP_FOO]);
}
and then notify a change on the "foo" property with:
g_object_notify_by_pspec (self, properties[PROP_FOO]);
the #GParamSpec of a property installed on the class of object
.
Opens the directory containing the file specified by the uri
.
which must be a file: uri pointing to a file that the application has access to.
parent window information
the URI to open
options for this call
optional [classGio
.Cancellable]
a callback to call when the request is done
Finishes the open-directory request.
Returns the result in the form of a boolean.
a [ifaceGio
.AsyncResult]
Asks the user to open one or more files.
The format for the filters
argument is a(sa(us))
.
Each item in the array specifies a single filter to offer to the user.
The first string is a user-visible name for the filter. The a(us)
specifies a list of filter strings, which can be either a glob pattern
(indicated by 0) or a mimetype (indicated by 1).
Example: [('Images', [(0, '*.ico'), (1, 'image/png')]), ('Text', [(0, '*.txt')])]
The format for the choices
argument is a(ssa(ss)s)
.
For each element, the first string is an ID that will be returned
with the response, te second string is a user-visible label. The
a(ss)
is the list of choices, each being a is an ID and a
user-visible label. The final string is the initial selection,
or ""
, to let the portal decide which choice will be initially selected.
None of the strings, except for the initial selection, should be empty.
As a special case, passing an empty array for the list of choices
indicates a boolean choice that is typically displayed as a check
button, using "true"
and "false"
as the choices.
Example: [('encoding', 'Encoding', [('utf8', 'Unicode (UTF-8)'), ('latin15', 'Western')], 'latin15'), ('reencode', 'Reencode', [], 'false')]
When the request is done, callback
will be called. You can then
call [methodPortal
.open_file_finish] to get the results.
parent window information
title for the file chooser dialog
a [structGLib
.Variant] describing file filters
a [structGLib
.Variant] describing the current file filter
a [structGLib
.Variant] describing extra widgets
options for this call
optional [classGio
.Cancellable]
a callback to call when the request is done
Finishes the open-file request
Returns the result in the form of a [structGLib
.Variant] dictionary
containing the following fields:
as
: an array of strings containing the uris of selected filesa(ss)
: an array of pairs of strings, the first string being the
ID of a combobox that was passed into this call, the second string
being the selected option.a [ifaceGio
.AsyncResult]
Opens a file descriptor to the pipewire remote where the camera nodes are available.
The file descriptor should be used to create a pw_remote object, by using pw_remote_connect_fd(). Only the camera nodes will be available from this pipewire node.
Opens uri
with an external hamdler.
parent window information
the URI to open
options for this call
optional [classGio
.Cancellable]
a callback to call when the request is done
Finishes the open-uri request.
Returns the result in the form of a boolean.
a [ifaceGio
.AsyncResult]
Lets the user pick a color from the screen.
When the request is done, callback
will be called. You can then
call [methodPortal
.pick_color_finish] to get the results.
parent window information
optional [classGio
.Cancellable]
a callback to call when the request is done
Finishes a pick-color request.
Returns the result in the form of a GVariant of the form (ddd), containing red, green and blue components in the range [0,1].
a [ifaceGio
.AsyncResult]
Presents a print dialog to the user and returns print settings and page setup.
When the request is done, callback
will be called. You can then
call [methodPortal
.prepare_print_finish] to get the results.
parent window information
tile for the print dialog
Serialized print settings
Serialized page setup
options for this call
optional [classGio
.Cancellable]
a callback to call when the request is done
Finishes the prepare-print request.
Returns a [structGLib
.Variant] dictionary with the following information:
a{sv}
: print settings as set up by the user in the print dialogPortal
.print_file] call to
avoid the print dialoga [ifaceGio
.AsyncResult]
Prints a file.
If a valid token is present in the options,
then this call will print
with the settings from the Print call that the token refers to. If
no token is present, then a print dialog will be presented to the user.
When the request is done, callback
will be called. You can then
call [methodPortal
.print_file_finish] to get the results.
parent window information
tile for the print dialog
token that was returned by a previous [methodPortal
.prepare_print] call, or 0
path of the document to print
options for this call
optional [classGio
.Cancellable]
a callback to call when the request is done
Finishes the print request.
a [ifaceGio
.AsyncResult]
Increase the reference count of object,
and possibly remove the
[floating][floating-ref] reference, if object
has a floating reference.
In other words, if the object is floating, then this call "assumes ownership" of the floating reference, converting it to a normal reference by clearing the floating flag while leaving the reference count unchanged. If the object is not floating, then this call adds a new normal reference increasing the reference count by one.
Since GLib 2.56, the type of object
will be propagated to the return type
under the same conditions as for g_object_ref().
Withdraws a desktop notification.
the ID of an notification
Requests background permissions.
When the request is done, callback
will be called. You can then
call [methodPortal
.request_background_finish] to get the results.
parent window information
reason to present to user for request
command line to autostart
options for this call
optional [classGio
.Cancellable]
a callback to call when the request is done
Finishes the request.
Returns TRUE
if successful.
a [ifaceGio
.AsyncResult]
Releases all references to other objects. This can be used to break reference cycles.
This function should only be called from object system implementations.
Asks the user for a location to save a file.
The format for the filters
argument is the same as for [methodPortal
.open_file].
The format for the choices
argument is the same as for [methodPortal
.open_file].
When the request is done, callback
will be called. You can then
call [methodPortal
.save_file_finish] to get the results.
parent window information
title for the file chooser dialog
suggested filename
suggested folder to save the file in
the current file (when saving an existing file)
a [structGLib
.Variant] describing file filters
a [structGLib
.Variant] describing the current file filter
a [structGLib
.Variant] describing extra widgets
options for this call
optional [classGio
.Cancellable]
a callback to call when the request is done
Finishes the save-file request.
Returns the result in the form of a [structGLib
.Variant] dictionary
containing the following fields:
(as)
: an array of strings containing the uri of the selected filea(ss)
: an array of pairs of strings, the first string being the
ID of a combobox that was passed into this call, the second string
being the selected option.a [ifaceGio
.AsyncResult]
Asks for a folder as a location to save one or more files.
The names of the files will be used as-is and appended to the selected folder's path in the list of returned files. If the selected folder already contains a file with one of the given names, the portal may prompt or take some other action to construct a unique file name and return that instead.
The format for the choices
argument is the same as for [methodPortal
.open_file].
When the request is done, callback
will be called. You can then
call [methodPortal
.save_file_finish] to get the results.
parent window information
title for the file chooser dialog
suggested filename
suggested folder to save the file in
An array of file names to be saved
a [structGLib
.Variant] describing extra widgets
options for this call
optional [classGio
.Cancellable]
a callback to call when the request is done
Finishes the save-files request.
Returns the result in the form of a [structGLib
.Variant] dictionary
containing the following fields:
(as)
: an array of strings containing the uri corresponding to each
file passed to the save-files request, in the same order. Note that the
file names may have changed, for example if a file with the same name in
the selected folder already exists.a(ss)
: an array of pairs of strings, the first string being the
ID of a combobox that was passed into this call, the second string
being the selected option.a [ifaceGio
.AsyncResult]
Inhibits various session status changes.
To obtain an ID that can be used to undo the inhibition, use
[methodPortal
.session_inhibit_finish] in the callback.
To remove an active inhibitor, call [methodPortal
.session_uninhibit]
with the same ID.
parent window information
user-visible reason for the inhibition
information about what to inhibit
optional [classGio
.Cancellable]
a callback to call when the request is done
Finishes the inhbit request.
Returns the ID of the inhibition as a positive integer. The ID can be passed
to [methodPortal
.session_uninhibit] to undo the inhibition.
a [ifaceGio
.AsyncResult]
This method should be called within one second of
receiving a [signalPortal:
:session-state-changed] signal
with the 'Query End' state, to acknowledge that they
have handled the state change.
Possible ways to handle the state change are either
to call [methodPortal
.session_inhibit] to prevent the
session from ending, or to save your state and get
ready for the session to end.
Makes [classPortal]
start monitoring the login session state.
When the state changes, the [signalPortal:
:session-state-changed]
signal is emitted.
Use [methodPortal
.session_monitor_stop] to stop monitoring.
a XdpParent, or NULL
options for this call
optional [classGio
.Cancellable]
a callback to call when the request is done
Finishes a session-monitor request.
Returns the result in the form of boolean.
a [ifaceGio
.AsyncResult]
Stops session state monitoring that was started with
[methodPortal
.session_monitor_start].
Removes an inhibitor that was created by a call
to [methodPortal
.session_inhibit].
unique ID for an active inhibition
Each object carries around a table of associations from strings to pointers. This function lets you set an association.
If the object already had an association with that name, the old association will be destroyed.
Internally, the key
is converted to a #GQuark using g_quark_from_string().
This means a copy of key
is kept permanently (even after object
has been
finalized) — so it is recommended to only use a small, bounded set of values
for key
in your program, to avoid the #GQuark storage growing unbounded.
name of the key
data to associate with that key
Sets a property on an object.
the name of the property to set
the value
Sets a desktop background image, given by a uri.
parent window information
the URI to use
options for this call
optional [classGio
.Cancellable]
a callback to call when the request is done
Finishes the open-uri request.
Returns the result in the form of a boolean.
a [ifaceGio
.AsyncResult]
Creates a new copy of the applications sandbox, and runs a process in, with the given arguments.
The learn when the spawned process exits, connect to the
[signalPortal:
:spawn-exited] signal.
the cwd for the new process
the argv for the new process
an array of open fds to pass to the new process, or NULL
an array of integers to map the fds
to, or NULL
. Must be the same length as fds
an array of KEY=VALUE environment settings, or NULL
flags influencing the spawn operation
paths to expose rw in the new sandbox, or NULL
paths to expose ro in the new sandbox, or NULL
optional [classGio
.Cancellable]
a callback to call when the request is done
Finishes the spawn request.
Returns the pid of the newly spawned process.
a [ifaceGio
.AsyncResult]
Sends a Unix signal to a process that has been spawned
by [methodPortal
.spawn].
the pid of the process to send a signal to
the Unix signal to send (see signal(7))
whether to send the signal to the process group of the process
Remove a specified datum from the object's data associations, without invoking the association's destroy handler.
name of the key
This function gets back user data pointers stored via
g_object_set_qdata() and removes the data
from object
without invoking its destroy() function (if any was
set).
Usually, calling this function is only required to update
user data pointers with a destroy notifier, for example:
void
object_add_to_user_list (GObject *object,
const gchar *new_string)
{
// the quark, naming the object data
GQuark quark_string_list = g_quark_from_static_string ("my-string-list");
// retrieve the old string list
GList *list = g_object_steal_qdata (object, quark_string_list);
// prepend new string
list = g_list_prepend (list, g_strdup (new_string));
// this changed 'list', so we need to set it again
g_object_set_qdata_full (object, quark_string_list, list, free_string_list);
}
static void
free_string_list (gpointer data)
{
GList *node, *list = data;
for (node = list; node; node = node->next)
g_free (node->data);
g_list_free (list);
}
Using g_object_get_qdata() in the above example, instead of g_object_steal_qdata() would have left the destroy function set, and thus the partial string list would have been freed upon g_object_set_qdata_full().
A #GQuark, naming the user data pointer
Takes a screenshot.
When the request is done, callback
will be called. You can then
call [methodPortal
.take_screenshot_finish] to get the results.
parent window information
options for this call
optional [classGio
.Cancellable]
a callback to call when the request is done
Finishes a screenshot request.
Returns the result in the form of a URI pointing to an image file.
a [ifaceGio
.AsyncResult]
Reverts the effect of a previous call to
g_object_freeze_notify(). The freeze count is decreased on object
and when it reaches zero, queued "notify" signals are emitted.
Duplicate notifications for each property are squashed so that at most one #GObject::notify signal is emitted for each property, in the reverse order in which they have been queued.
It is an error to call this function when the freeze count is zero.
Sends the file at path
to the trash can.
the path for a local file
optional [classGio
.Cancellable]
a callback to call when the request is done
Finishes the trash-file request.
Returns the result in the form of a boolean.
a [ifaceGio
.AsyncResult]
Decreases the reference count of object
. When its reference count
drops to 0, the object is finalized (i.e. its memory is freed).
If the pointer to the #GObject may be reused in future (for example, if it is an instance variable of another object), it is recommended to clear the pointer to %NULL rather than retain a dangling pointer to a potentially invalid #GObject instance. Use g_clear_object() for this.
Installs an available software update.
This should be called in response to a [signalPortal:
:update-available]
signal.
During the update installation, the [signalPortal:
:update-progress]
signal will be emitted to provide progress information.
a [structParent]
options for this call
optional [classGio
.Cancellable]
a callback to call when the request is done
Finishes an update-installation request.
Returns the result in the form of boolean.
Note that the update may not be completely installed
by the time this function is called. You need to
listen to the [signalPortal:
:update-progress] signal
to learn when the installation is complete.
a [ifaceGio
.AsyncResult]
Makes XdpPortal
start monitoring for available software updates.
When a new update is available, the [signalPortal:
:update-available].
signal is emitted.
Use [methodPortal
.update_monitor_stop] to stop monitoring.
options for this cal..
optional [classGio
.Cancellable]
a callback to call when the request is done
Finishes an update-monitor request.
Returns the result in the form of boolean.
a [ifaceGio
.AsyncResult]
Stops update monitoring that was started with
[methodPortal
.update_monitor_start].
This function essentially limits the life time of the closure
to
the life time of the object. That is, when the object is finalized,
the closure
is invalidated by calling g_closure_invalidate() on
it, in order to prevent invocations of the closure with a finalized
(nonexisting) object. Also, g_object_ref() and g_object_unref() are
added as marshal guards to the closure,
to ensure that an extra
reference count is held on object
during invocation of the
closure
. Usually, this function will be called on closures that
use this object
as closure data.
#GClosure to watch
Find the #GParamSpec with the given name for an
interface. Generally, the interface vtable passed in as g_iface
will be the default vtable from g_type_default_interface_ref(), or,
if you know the interface has already been loaded,
g_type_default_interface_peek().
any interface vtable for the interface, or the default vtable for the interface
name of a property to look up.
Add a property to an interface; this is only useful for interfaces that are added to GObject-derived types. Adding a property to an interface forces all objects classes with that interface to have a compatible property. The compatible property could be a newly created #GParamSpec, but normally g_object_class_override_property() will be used so that the object class only needs to provide an implementation and inherits the property description, default value, bounds, and so forth from the interface property.
This function is meant to be called from the interface's default
vtable initialization function (the class_init
member of
#GTypeInfo.) It must not be called after after class_init
has
been called for any object types implementing this interface.
If pspec
is a floating reference, it will be consumed.
any interface vtable for the interface, or the default vtable for the interface.
the #GParamSpec for the new property
Lists the properties of an interface.Generally, the interface
vtable passed in as g_iface
will be the default vtable from
g_type_default_interface_ref(), or, if you know the interface has
already been loaded, g_type_default_interface_peek().
any interface vtable for the interface, or the default vtable for the interface
Creates a new [classPortal]
object.
Creates a new instance of a #GObject subtype and sets its properties.
Construction parameters (see %G_PARAM_CONSTRUCT, %G_PARAM_CONSTRUCT_ONLY) which are not explicitly specified are set to their default values.
the type id of the #GObject subtype to instantiate
an array of #GParameter
Detects if running inside of a Flatpak or WebKit sandbox.
See also: [funcPortal
.running_under_sandbox].
This function tries to determine if the current process is running under a sandbox that requires the use of portals.
If you need to check error conditions see [funcPortal
.running_under_snap].
Note that these functions are all cached and will always return the same result.
Detects if you are running inside of a Snap sandbox.
See also: [funcPortal
.running_under_sandbox].
Context for portal calls.
The XdpPortal object provides the main context object for the portal operations of libportal.
Typically, an application will create a single XdpPortal object with [ctor
Portal
.new] and use it throughout its lifetime.