mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-12-26 05:31:07 +00:00
GtkBuilder: add GtkApplication
Add a GtkApplication (private) field to GtkBuilder
This commit is contained in:
parent
d967266b77
commit
3f0b9a7574
@ -604,6 +604,8 @@ gtk_builder_add_callback_symbols
|
||||
gtk_builder_lookup_callback_symbol
|
||||
gtk_builder_set_translation_domain
|
||||
gtk_builder_get_translation_domain
|
||||
gtk_builder_set_application
|
||||
gtk_builder_get_application
|
||||
gtk_builder_get_type_from_name
|
||||
gtk_builder_value_from_string
|
||||
gtk_builder_value_from_string_type
|
||||
|
@ -286,6 +286,7 @@ struct _GtkBuilderPrivate
|
||||
gchar *filename;
|
||||
gchar *resource_prefix;
|
||||
GType template_type;
|
||||
GtkApplication *application;
|
||||
};
|
||||
|
||||
G_DEFINE_TYPE_WITH_PRIVATE (GtkBuilder, gtk_builder, G_TYPE_OBJECT)
|
||||
@ -2514,3 +2515,63 @@ gtk_builder_new_from_string (const gchar *string,
|
||||
|
||||
return builder;
|
||||
}
|
||||
|
||||
/**
|
||||
* gtk_builder_set_application:
|
||||
* @builder: a #GtkBuilder
|
||||
* @application: a #GtkApplication
|
||||
*
|
||||
* Sets the application associated with @builder.
|
||||
*
|
||||
* You only need this function if there is more than one #GApplication
|
||||
* in your process. @application cannot be %NULL.
|
||||
*
|
||||
* Since: 3.10
|
||||
**/
|
||||
void
|
||||
gtk_builder_set_application (GtkBuilder *builder,
|
||||
GtkApplication *application)
|
||||
{
|
||||
g_return_if_fail (GTK_IS_BUILDER (builder));
|
||||
g_return_if_fail (GTK_IS_APPLICATION (application));
|
||||
|
||||
if (builder->priv->application)
|
||||
g_object_unref (builder->priv->application);
|
||||
|
||||
builder->priv->application = g_object_ref (application);
|
||||
}
|
||||
|
||||
/**
|
||||
* gtk_builder_get_application:
|
||||
* @builder: a #GtkBuilder
|
||||
*
|
||||
* Gets the #GtkApplication associated with the builder.
|
||||
*
|
||||
* The #GtkApplication is used for creating action proxies as requested
|
||||
* from XML that the builder is loading.
|
||||
*
|
||||
* By default, the builder uses the default application: the one from
|
||||
* g_application_get_default(). If you want to use another application
|
||||
* for constructing proxies, use gtk_builder_set_application().
|
||||
*
|
||||
* Returns: (transfer none): the application being used by the builder,
|
||||
* or %NULL
|
||||
*
|
||||
* Since: 3.10
|
||||
**/
|
||||
GtkApplication *
|
||||
gtk_builder_get_application (GtkBuilder *builder)
|
||||
{
|
||||
g_return_if_fail (GTK_IS_BUILDER (builder));
|
||||
|
||||
if (!builder->priv->application)
|
||||
{
|
||||
GApplication *application;
|
||||
|
||||
application = g_application_get_default ();
|
||||
if (application && GTK_IS_APPLICATION (application))
|
||||
builder->priv->application = g_object_ref (GTK_APPLICATION (application));
|
||||
}
|
||||
|
||||
return builder->priv->application;
|
||||
}
|
||||
|
@ -23,6 +23,7 @@
|
||||
#error "Only <gtk/gtk.h> can be included directly."
|
||||
#endif
|
||||
|
||||
#include <gtk/gtkapplication.h>
|
||||
#include <gtk/gtkwidget.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
@ -200,6 +201,14 @@ GDK_AVAILABLE_IN_3_10
|
||||
GCallback gtk_builder_lookup_callback_symbol (GtkBuilder *builder,
|
||||
const gchar *callback_name);
|
||||
|
||||
GDK_AVAILABLE_IN_3_10
|
||||
void gtk_builder_set_application (GtkBuilder *builder,
|
||||
GtkApplication *application);
|
||||
|
||||
GDK_AVAILABLE_IN_3_10
|
||||
GtkApplication * gtk_builder_get_application (GtkBuilder *builder);
|
||||
|
||||
|
||||
/**
|
||||
* GTK_BUILDER_WARN_INVALID_CHILD_TYPE:
|
||||
* @object: the #GtkBuildable on which the warning ocurred
|
||||
|
Loading…
Reference in New Issue
Block a user