Lines Matching full:application
48 * @short_description: Core application class
51 * A #GApplication is the foundation of an application. It wraps some
53 * foundation for higher-level application classes such as
58 * a "use count" for the primary application instance. The use count can
60 * it drops to zero, the application exits. Higher-level classes such as
61 * #GtkApplication employ the use count to ensure that the application
66 * providing a unique application ID. If given, only one application
69 * desktop login. When your application is launched again, its
78 * application is not expected to manually register itself and check
81 * application instance, possibly connecting signal handlers, then
83 * internally. If the application is the primary instance then the
84 * startup signal is emitted and the mainloop runs. If the application
89 * If used, the expected form of an application identifier is the same as
94 * For details on valid application identifiers, see g_application_id_is_valid().
96 * On Linux, the application identifier is claimed as a well-known bus name
98 * application is scoped to the current session. It also means that your
99 * application may provide additional services (through registration of other
105 * attempts to acquire the bus name of your application (which happens in
112 * g_action_group_activate_action() on the application, it is always
120 * - via 'Activate' (i.e. just starting the application)
128 * The #GApplication::startup signal lets you handle the application
132 * application, GApplication passes some ‘platform data’ from the
198 * count of the application drops to zero (and after any inactivity
204 * @dbus_register: invoked locally during registration, if the application is
206 * bus, that need to exist before the application tries to own the bus name.
211 * @dbus_unregister: invoked locally during unregistration, if the application
311 GApplication *application; member
327 G_APPLICATION_GET_CLASS (exported->application) in G_DEFINE_TYPE_WITH_CODE()
328 ->before_emit (exported->application, platform_data); in G_DEFINE_TYPE_WITH_CODE()
332 G_APPLICATION_GET_CLASS (exported->application) in G_DEFINE_TYPE_WITH_CODE()
333 ->after_emit (exported->application, platform_data); in G_DEFINE_TYPE_WITH_CODE()
344 G_APPLICATION_GET_CLASS (exported->application) in g_application_exported_actions_change_action_state_full()
345 ->before_emit (exported->application, platform_data); in g_application_exported_actions_change_action_state_full()
349 G_APPLICATION_GET_CLASS (exported->application) in g_application_exported_actions_change_action_state_full()
350 ->after_emit (exported->application, platform_data); in g_application_exported_actions_change_action_state_full()
371 g_application_exported_actions_new (GApplication *application) in g_application_exported_actions_new() argument
376 actions->application = application; in g_application_exported_actions_new()
412 g_application_pack_option_entries (GApplication *application, in g_application_pack_option_entries() argument
418 g_hash_table_iter_init (&iter, application->priv->packed_options); in g_application_pack_option_entries()
476 g_application_parse_command_line (GApplication *application, in g_application_parse_command_line() argument
493 g_return_val_if_fail (!application->priv->options_parsed, NULL); in g_application_parse_command_line()
495 context = g_option_context_new (application->priv->parameter_string); in g_application_parse_command_line()
496 g_option_context_set_summary (context, application->priv->summary); in g_application_parse_command_line()
497 g_option_context_set_description (context, application->priv->description); in g_application_parse_command_line()
505 /* If the application has not registered local options and it has in g_application_parse_command_line()
513 …if (application->priv->main_options == NULL && (application->priv->flags & G_APPLICATION_HANDLES_C… in g_application_parse_command_line()
520 if (application->priv->main_options) in g_application_parse_command_line()
523 g_option_context_set_main_group (context, application->priv->main_options); in g_application_parse_command_line()
524 application->priv->main_options = NULL; in g_application_parse_command_line()
530 while (application->priv->option_groups) in g_application_parse_command_line()
532 g_option_context_add_group (context, application->priv->option_groups->data); in g_application_parse_command_line()
533 application->priv->option_groups = g_slist_delete_link (application->priv->option_groups, in g_application_parse_command_line()
534 application->priv->option_groups); in g_application_parse_command_line()
541 if ((application->priv->flags & (G_APPLICATION_IS_SERVICE | G_APPLICATION_IS_LAUNCHER)) == 0) in g_application_parse_command_line()
552 /* Allow overriding the ID if the application allows it */ in g_application_parse_command_line()
553 if (application->priv->flags & G_APPLICATION_CAN_OVERRIDE_APP_ID) in g_application_parse_command_line()
557 N_("Override the application’s ID"), NULL }, in g_application_parse_command_line()
564 /* Allow replacing if the application allows it */ in g_application_parse_command_line()
565 if (application->priv->flags & G_APPLICATION_ALLOW_REPLACEMENT) in g_application_parse_command_line()
582 application->priv->flags |= G_APPLICATION_IS_SERVICE; in g_application_parse_command_line()
586 g_application_set_application_id (application, app_id); in g_application_parse_command_line()
590 application->priv->flags |= G_APPLICATION_REPLACE; in g_application_parse_command_line()
593 if (application->priv->packed_options) in g_application_parse_command_line()
595 g_application_pack_option_entries (application, dict); in g_application_parse_command_line()
596 g_hash_table_unref (application->priv->packed_options); in g_application_parse_command_line()
597 application->priv->packed_options = NULL; in g_application_parse_command_line()
602 application->priv->options_parsed = TRUE; in g_application_parse_command_line()
611 add_packed_option (GApplication *application, in add_packed_option() argument
644 if (!application->priv->packed_options) in add_packed_option()
645 …application->priv->packed_options = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, free_o… in add_packed_option()
647 g_hash_table_insert (application->priv->packed_options, in add_packed_option()
654 * @application: a #GApplication
658 * Adds main option entries to be handled by @application.
664 * point, the application can inspect the values pointed to by @arg_data
716 g_application_add_main_option_entries (GApplication *application, in g_application_add_main_option_entries() argument
721 g_return_if_fail (G_IS_APPLICATION (application)); in g_application_add_main_option_entries()
724 if (!application->priv->main_options) in g_application_add_main_option_entries()
726 application->priv->main_options = g_option_group_new (NULL, NULL, NULL, NULL, NULL); in g_application_add_main_option_entries()
727 g_option_group_set_translation_domain (application->priv->main_options, NULL); in g_application_add_main_option_entries()
736 add_packed_option (application, &my_entries[0]); in g_application_add_main_option_entries()
738 g_option_group_add_entries (application->priv->main_options, my_entries); in g_application_add_main_option_entries()
744 * @application: the #GApplication
753 * Add an option to be handled by @application.
770 g_application_add_main_option (GApplication *application, in g_application_add_main_option() argument
784 g_return_if_fail (G_IS_APPLICATION (application)); in g_application_add_main_option()
789 …application->priv->option_strings = g_slist_prepend (application->priv->option_strings, dup_string… in g_application_add_main_option()
792 …application->priv->option_strings = g_slist_prepend (application->priv->option_strings, dup_string… in g_application_add_main_option()
795 …application->priv->option_strings = g_slist_prepend (application->priv->option_strings, dup_string… in g_application_add_main_option()
797 g_application_add_main_option_entries (application, my_entry); in g_application_add_main_option()
802 * @application: the #GApplication
805 * Adds a #GOptionGroup to the commandline handling of @application.
818 * application, the existing instance may already have been running for
822 * in the case that the instance of the application being run is the
834 g_application_add_option_group (GApplication *application, in g_application_add_option_group() argument
837 g_return_if_fail (G_IS_APPLICATION (application)); in g_application_add_option_group()
840 application->priv->option_groups = g_slist_prepend (application->priv->option_groups, group); in g_application_add_option_group()
845 * @application: the #GApplication
849 * Sets the parameter string to be used by the commandline handling of @application.
852 * when the internal #GOptionContext of @application is created.
859 g_application_set_option_context_parameter_string (GApplication *application, in g_application_set_option_context_parameter_string() argument
862 g_return_if_fail (G_IS_APPLICATION (application)); in g_application_set_option_context_parameter_string()
864 g_free (application->priv->parameter_string); in g_application_set_option_context_parameter_string()
865 application->priv->parameter_string = g_strdup (parameter_string); in g_application_set_option_context_parameter_string()
870 * @application: the #GApplication
874 * Adds a summary to the @application option context.
881 g_application_set_option_context_summary (GApplication *application, in g_application_set_option_context_summary() argument
884 g_return_if_fail (G_IS_APPLICATION (application)); in g_application_set_option_context_summary()
886 g_free (application->priv->summary); in g_application_set_option_context_summary()
887 application->priv->summary = g_strdup (summary); in g_application_set_option_context_summary()
892 * @application: the #GApplication
896 * Adds a description to the @application option context.
903 g_application_set_option_context_description (GApplication *application, in g_application_set_option_context_description() argument
906 g_return_if_fail (G_IS_APPLICATION (application)); in g_application_set_option_context_description()
908 g_free (application->priv->description); in g_application_set_option_context_description()
909 application->priv->description = g_strdup (description); in g_application_set_option_context_description()
916 g_application_real_before_emit (GApplication *application, in g_application_real_before_emit() argument
922 g_application_real_after_emit (GApplication *application, in g_application_real_after_emit() argument
928 g_application_real_startup (GApplication *application) in g_application_real_startup() argument
930 application->priv->did_startup = TRUE; in g_application_real_startup()
934 g_application_real_shutdown (GApplication *application) in g_application_real_shutdown() argument
936 application->priv->did_shutdown = TRUE; in g_application_real_shutdown()
940 g_application_real_activate (GApplication *application) in g_application_real_activate() argument
942 if (!g_signal_has_handler_pending (application, in g_application_real_activate()
945 G_APPLICATION_GET_CLASS (application)->activate == g_application_real_activate) in g_application_real_activate()
952 g_warning ("Your application does not implement " in g_application_real_activate()
960 g_application_real_open (GApplication *application, in g_application_real_open() argument
965 if (!g_signal_has_handler_pending (application, in g_application_real_open()
968 G_APPLICATION_GET_CLASS (application)->open == g_application_real_open) in g_application_real_open()
975 g_warning ("Your application claims to support opening files " in g_application_real_open()
983 g_application_real_command_line (GApplication *application, in g_application_real_command_line() argument
986 if (!g_signal_has_handler_pending (application, in g_application_real_command_line()
989 G_APPLICATION_GET_CLASS (application)->command_line == g_application_real_command_line) in g_application_real_command_line()
996 g_warning ("Your application claims to support custom command line " in g_application_real_command_line()
1007 g_application_real_handle_local_options (GApplication *application, in g_application_real_handle_local_options() argument
1014 get_platform_data (GApplication *application, in get_platform_data() argument
1029 if (application->priv->flags & G_APPLICATION_SEND_ENVIRONMENT) in get_platform_data()
1044 G_APPLICATION_GET_CLASS (application)-> in get_platform_data()
1045 add_platform_data (application, builder); in get_platform_data()
1054 g_application_call_command_line (GApplication *application, in g_application_call_command_line() argument
1059 if (application->priv->is_remote) in g_application_call_command_line()
1063 platform_data = get_platform_data (application, options); in g_application_call_command_line()
1064 …*exit_status = g_application_impl_command_line (application->priv->impl, arguments, platform_data); in g_application_call_command_line()
1076 … g_signal_emit (application, g_application_signals[SIGNAL_COMMAND_LINE], 0, cmdline, exit_status); in g_application_call_command_line()
1082 g_application_real_local_command_line (GApplication *application, in g_application_real_local_command_line() argument
1090 options = g_application_parse_command_line (application, arguments, &error); in g_application_real_local_command_line()
1099 …g_signal_emit (application, g_application_signals[SIGNAL_HANDLE_LOCAL_OPTIONS], 0, options, exit_s… in g_application_real_local_command_line()
1107 if (!g_application_register (application, NULL, &error)) in g_application_real_local_command_line()
1118 if (application->priv->flags & G_APPLICATION_IS_SERVICE) in g_application_real_local_command_line()
1123 application->priv->flags &= ~G_APPLICATION_IS_SERVICE; in g_application_real_local_command_line()
1129 else if (application->priv->flags & G_APPLICATION_HANDLES_COMMAND_LINE) in g_application_real_local_command_line()
1131 g_application_call_command_line (application, in g_application_real_local_command_line()
1140 g_application_activate (application); in g_application_real_local_command_line()
1146 if (~application->priv->flags & G_APPLICATION_HANDLES_OPEN) in g_application_real_local_command_line()
1148 g_critical ("This application can not open files."); in g_application_real_local_command_line()
1163 g_application_open (application, files, n_files, ""); in g_application_real_local_command_line()
1180 g_application_real_add_platform_data (GApplication *application, in g_application_real_add_platform_data() argument
1186 g_application_real_dbus_register (GApplication *application, in g_application_real_dbus_register() argument
1195 g_application_real_dbus_unregister (GApplication *application, in g_application_real_dbus_unregister() argument
1202 g_application_real_name_lost (GApplication *application) in g_application_real_name_lost() argument
1204 g_application_quit (application); in g_application_real_name_lost()
1215 GApplication *application = G_APPLICATION (object); in g_application_set_property() local
1220 g_application_set_application_id (application, in g_application_set_property()
1225 g_application_set_flags (application, g_value_get_flags (value)); in g_application_set_property()
1229 g_application_set_resource_base_path (application, g_value_get_string (value)); in g_application_set_property()
1233 g_application_set_inactivity_timeout (application, in g_application_set_property()
1238 g_clear_object (&application->priv->actions); in g_application_set_property()
1239 application->priv->actions = g_value_dup_object (value); in g_application_set_property()
1249 * @application: a #GApplication
1258 * mix use of this API with use of #GActionMap on the same @application
1264 g_application_set_action_group (GApplication *application, in g_application_set_action_group() argument
1267 g_return_if_fail (G_IS_APPLICATION (application)); in g_application_set_action_group()
1268 g_return_if_fail (!application->priv->is_registered); in g_application_set_action_group()
1270 if (application->priv->actions != NULL) in g_application_set_action_group()
1271 g_object_unref (application->priv->actions); in g_application_set_action_group()
1273 application->priv->actions = action_group; in g_application_set_action_group()
1275 if (application->priv->actions != NULL) in g_application_set_action_group()
1276 g_object_ref (application->priv->actions); in g_application_set_action_group()
1285 GApplication *application = G_APPLICATION (object); in g_application_get_property() local
1291 g_application_get_application_id (application)); in g_application_get_property()
1296 g_application_get_flags (application)); in g_application_get_property()
1300 g_value_set_string (value, g_application_get_resource_base_path (application)); in g_application_get_property()
1305 g_application_get_is_registered (application)); in g_application_get_property()
1310 g_application_get_is_remote (application)); in g_application_get_property()
1315 g_application_get_inactivity_timeout (application)); in g_application_get_property()
1319 g_value_set_boolean (value, g_application_get_is_busy (application)); in g_application_get_property()
1330 GApplication *application = G_APPLICATION (object); in g_application_constructed() local
1333 g_application_set_default (application); in g_application_constructed()
1336 g_assert (application->priv->resource_path == NULL); in g_application_constructed()
1338 if (application->priv->id != NULL) in g_application_constructed()
1342 application->priv->resource_path = g_strconcat ("/", application->priv->id, NULL); in g_application_constructed()
1344 for (i = 1; application->priv->resource_path[i]; i++) in g_application_constructed()
1345 if (application->priv->resource_path[i] == '.') in g_application_constructed()
1346 application->priv->resource_path[i] = '/'; in g_application_constructed()
1353 GApplication *application = G_APPLICATION (object); in g_application_dispose() local
1355 if (application->priv->impl != NULL && in g_application_dispose()
1356 G_APPLICATION_GET_CLASS (application)->dbus_unregister != g_application_real_dbus_unregister) in g_application_dispose()
1362 g_warning ("Your application did not unregister from D-Bus before destruction. " in g_application_dispose()
1375 GApplication *application = G_APPLICATION (object); in g_application_finalize() local
1377 if (application->priv->inactivity_timeout_id) in g_application_finalize()
1378 g_source_remove (application->priv->inactivity_timeout_id); in g_application_finalize()
1380 g_slist_free_full (application->priv->option_groups, (GDestroyNotify) g_option_group_unref); in g_application_finalize()
1381 if (application->priv->main_options) in g_application_finalize()
1382 g_option_group_unref (application->priv->main_options); in g_application_finalize()
1383 if (application->priv->packed_options) in g_application_finalize()
1384 g_hash_table_unref (application->priv->packed_options); in g_application_finalize()
1386 g_free (application->priv->parameter_string); in g_application_finalize()
1387 g_free (application->priv->summary); in g_application_finalize()
1388 g_free (application->priv->description); in g_application_finalize()
1390 g_slist_free_full (application->priv->option_strings, g_free); in g_application_finalize()
1392 if (application->priv->impl) in g_application_finalize()
1393 g_application_impl_destroy (application->priv->impl); in g_application_finalize()
1394 g_free (application->priv->id); in g_application_finalize()
1396 if (g_application_get_default () == application) in g_application_finalize()
1399 if (application->priv->actions) in g_application_finalize()
1400 g_object_unref (application->priv->actions); in g_application_finalize()
1402 g_clear_object (&application->priv->remote_actions); in g_application_finalize()
1404 if (application->priv->notifications) in g_application_finalize()
1405 g_object_unref (application->priv->notifications); in g_application_finalize()
1407 g_free (application->priv->resource_path); in g_application_finalize()
1414 g_application_init (GApplication *application) in g_application_init() argument
1416 application->priv = g_application_get_instance_private (application); in g_application_init()
1418 application->priv->actions = g_application_exported_actions_new (application); in g_application_init()
1420 /* application->priv->actions is the one and only ref on the group, so when in g_application_init()
1423 g_signal_connect_swapped (application->priv->actions, "action-added", in g_application_init()
1424 G_CALLBACK (g_action_group_action_added), application); in g_application_init()
1425 g_signal_connect_swapped (application->priv->actions, "action-enabled-changed", in g_application_init()
1426 G_CALLBACK (g_action_group_action_enabled_changed), application); in g_application_init()
1427 g_signal_connect_swapped (application->priv->actions, "action-state-changed", in g_application_init()
1428 G_CALLBACK (g_action_group_action_state_changed), application); in g_application_init()
1429 g_signal_connect_swapped (application->priv->actions, "action-removed", in g_application_init()
1430 G_CALLBACK (g_action_group_action_removed), application); in g_application_init()
1473 g_param_spec_string ("application-id", in g_application_class_init()
1474 P_("Application identifier"), in g_application_class_init()
1475 P_("The unique identifier for the application"), in g_application_class_init()
1481 P_("Application flags"), in g_application_class_init()
1482 P_("Flags specifying the behaviour of the application"), in g_application_class_init()
1489 P_("The base resource path for the application"), in g_application_class_init()
1501 P_("If this application instance is remote"), in g_application_class_init()
1514 P_("The group of actions that the application exports"), in g_application_class_init()
1521 * Whether the application is currently marked as busy through in g_application_class_init()
1529 P_("If this application is currently marked busy"), in g_application_class_init()
1534 * @application: the application in g_application_class_init()
1546 * @application: the application in g_application_class_init()
1558 * @application: the application in g_application_class_init()
1571 * @application: the application in g_application_class_init()
1591 * @application: the application in g_application_class_init()
1614 * @application: the application in g_application_class_init()
1629 * In the event that the application is marked in g_application_class_init()
1639 * the application is activated by g_application_activate(). One or in g_application_class_init()
1645 * the application first. You should probably not call in g_application_class_init()
1678 * @application: the application in g_application_class_init()
1681 * when a new instance has taken over. This can only happen if the application in g_application_class_init()
1701 /* Application ID validity {{{1 */
1705 * @application_id: a potential application identifier
1707 * Checks if @application_id is a valid application identifier.
1712 * Application identifiers follow the same format as
1714 * For convenience, the restrictions on application identifiers are
1717 * - Application identifiers are composed of 1 or more elements separated by a
1721 * with `-` discouraged in new application identifiers. Each element must not
1724 * - Application identifiers must contain at least one `.` (period) character
1727 * - Application identifiers must not begin with a `.` (period) character.
1729 * - Application identifiers must not exceed 255 characters.
1731 * Note that the hyphen (`-`) character is allowed in application identifiers,
1734 * [Flatpak application IDs](http://docs.flatpak.org/en/latest/introduction.html#identifiers),
1737 * and the convention that an application's "main" interface and object path
1738 * resemble its application identifier and bus name. To avoid situations that
1739 * require special-case handling, it is recommended that new application
1742 * Like D-Bus interface names, application identifiers should start with the
1744 * it is conventional for the rest of the application identifier to consist of
1750 * For example, if the owner of 7-zip.org used an application identifier for an
1751 * archiving application, it might be named `org._7_zip.Archiver`.
1765 * @application_id: (nullable): the application id
1766 * @flags: the application flags
1770 * If non-%NULL, the application id must be valid. See
1773 * If no application ID is given then some features of #GApplication
1774 * (most notably application uniqueness) will be disabled.
1785 "application-id", application_id, in g_application_new()
1790 /* Simple get/set: application id, flags, inactivity timeout {{{1 */
1793 * @application: a #GApplication
1795 * Gets the unique identifier for @application.
1797 * Returns: (nullable): the identifier for @application, owned by @application
1802 g_application_get_application_id (GApplication *application) in g_application_get_application_id() argument
1804 g_return_val_if_fail (G_IS_APPLICATION (application), NULL); in g_application_get_application_id()
1806 return application->priv->id; in g_application_get_application_id()
1811 * @application: a #GApplication
1812 * @application_id: (nullable): the identifier for @application
1814 * Sets the unique identifier for @application.
1816 * The application id can only be modified if @application has not yet
1819 * If non-%NULL, the application id must be valid. See
1825 g_application_set_application_id (GApplication *application, in g_application_set_application_id() argument
1828 g_return_if_fail (G_IS_APPLICATION (application)); in g_application_set_application_id()
1830 if (g_strcmp0 (application->priv->id, application_id) != 0) in g_application_set_application_id()
1833 g_return_if_fail (!application->priv->is_registered); in g_application_set_application_id()
1835 g_free (application->priv->id); in g_application_set_application_id()
1836 application->priv->id = g_strdup (application_id); in g_application_set_application_id()
1838 g_object_notify (G_OBJECT (application), "application-id"); in g_application_set_application_id()
1844 * @application: a #GApplication
1846 * Gets the flags for @application.
1850 * Returns: the flags for @application
1855 g_application_get_flags (GApplication *application) in g_application_get_flags() argument
1857 g_return_val_if_fail (G_IS_APPLICATION (application), 0); in g_application_get_flags()
1859 return application->priv->flags; in g_application_get_flags()
1864 * @application: a #GApplication
1865 * @flags: the flags for @application
1867 * Sets the flags for @application.
1869 * The flags can only be modified if @application has not yet been
1877 g_application_set_flags (GApplication *application, in g_application_set_flags() argument
1880 g_return_if_fail (G_IS_APPLICATION (application)); in g_application_set_flags()
1882 if (application->priv->flags != flags) in g_application_set_flags()
1884 g_return_if_fail (!application->priv->is_registered); in g_application_set_flags()
1886 application->priv->flags = flags; in g_application_set_flags()
1888 g_object_notify (G_OBJECT (application), "flags"); in g_application_set_flags()
1894 * @application: a #GApplication
1896 * Gets the resource base path of @application.
1905 g_application_get_resource_base_path (GApplication *application) in g_application_get_resource_base_path() argument
1907 g_return_val_if_fail (G_IS_APPLICATION (application), NULL); in g_application_get_resource_base_path()
1909 return application->priv->resource_path; in g_application_get_resource_base_path()
1914 * @application: a #GApplication
1917 * Sets (or unsets) the base resource path of @application.
1919 * The path is used to automatically load various [application
1924 * By default, the resource base path is determined from the application
1927 * the application ID after that point will not have an impact on the
1930 * As an example, if the application has an ID of "org.example.app" then
1933 * then Gtk will then search for the menus of the application at
1937 * application.
1942 * Changing the resource base path once the application is running is
1954 g_application_set_resource_base_path (GApplication *application, in g_application_set_resource_base_path() argument
1957 g_return_if_fail (G_IS_APPLICATION (application)); in g_application_set_resource_base_path()
1960 if (g_strcmp0 (application->priv->resource_path, resource_path) != 0) in g_application_set_resource_base_path()
1962 g_free (application->priv->resource_path); in g_application_set_resource_base_path()
1964 application->priv->resource_path = g_strdup (resource_path); in g_application_set_resource_base_path()
1966 g_object_notify (G_OBJECT (application), "resource-base-path"); in g_application_set_resource_base_path()
1972 * @application: a #GApplication
1974 * Gets the current inactivity timeout for the application.
1977 * g_application_release() before the application stops running.
1984 g_application_get_inactivity_timeout (GApplication *application) in g_application_get_inactivity_timeout() argument
1986 g_return_val_if_fail (G_IS_APPLICATION (application), 0); in g_application_get_inactivity_timeout()
1988 return application->priv->inactivity_timeout; in g_application_get_inactivity_timeout()
1993 * @application: a #GApplication
1996 * Sets the current inactivity timeout for the application.
1999 * g_application_release() before the application stops running.
2008 g_application_set_inactivity_timeout (GApplication *application, in g_application_set_inactivity_timeout() argument
2011 g_return_if_fail (G_IS_APPLICATION (application)); in g_application_set_inactivity_timeout()
2013 if (application->priv->inactivity_timeout != inactivity_timeout) in g_application_set_inactivity_timeout()
2015 application->priv->inactivity_timeout = inactivity_timeout; in g_application_set_inactivity_timeout()
2017 g_object_notify (G_OBJECT (application), "inactivity-timeout"); in g_application_set_inactivity_timeout()
2023 * @application: a #GApplication
2025 * Checks if @application is registered.
2027 * An application is registered if g_application_register() has been
2030 * Returns: %TRUE if @application is registered
2035 g_application_get_is_registered (GApplication *application) in g_application_get_is_registered() argument
2037 g_return_val_if_fail (G_IS_APPLICATION (application), FALSE); in g_application_get_is_registered()
2039 return application->priv->is_registered; in g_application_get_is_registered()
2044 * @application: a #GApplication
2046 * Checks if @application is remote.
2048 * If @application is remote then it means that another instance of
2049 * application already exists (the 'primary' instance). Calls to
2050 * perform actions on @application will result in the actions being
2057 * Returns: %TRUE if @application is remote
2062 g_application_get_is_remote (GApplication *application) in g_application_get_is_remote() argument
2064 g_return_val_if_fail (G_IS_APPLICATION (application), FALSE); in g_application_get_is_remote()
2065 g_return_val_if_fail (application->priv->is_registered, FALSE); in g_application_get_is_remote()
2067 return application->priv->is_remote; in g_application_get_is_remote()
2072 * @application: a #GApplication
2074 * Gets the #GDBusConnection being used by the application, or %NULL.
2079 * application.
2085 * This function must not be called before the application has been
2093 g_application_get_dbus_connection (GApplication *application) in g_application_get_dbus_connection() argument
2095 g_return_val_if_fail (G_IS_APPLICATION (application), FALSE); in g_application_get_dbus_connection()
2096 g_return_val_if_fail (application->priv->is_registered, FALSE); in g_application_get_dbus_connection()
2098 return g_application_impl_get_dbus_connection (application->priv->impl); in g_application_get_dbus_connection()
2103 * @application: a #GApplication
2105 * Gets the D-Bus object path being used by the application, or %NULL.
2109 * application is the primary instance then there is an object published
2110 * at this path. If the application is not the primary instance then
2117 * This function must not be called before the application has been
2125 g_application_get_dbus_object_path (GApplication *application) in g_application_get_dbus_object_path() argument
2127 g_return_val_if_fail (G_IS_APPLICATION (application), FALSE); in g_application_get_dbus_object_path()
2128 g_return_val_if_fail (application->priv->is_registered, FALSE); in g_application_get_dbus_object_path()
2130 return g_application_impl_get_dbus_object_path (application->priv->impl); in g_application_get_dbus_object_path()
2137 * @application: a #GApplication
2141 * Attempts registration of the application.
2143 * This is the point at which the application discovers if it is the
2146 * application identifier as a unique bus name on the session bus using
2149 * If there is no application ID or if %G_APPLICATION_NON_UNIQUE was
2157 * If the application has already been registered then %TRUE is
2161 * and @application is the primary instance (including the non-unique
2169 * instance is or is not the primary instance of the application. See
2177 g_application_register (GApplication *application, in g_application_register() argument
2181 g_return_val_if_fail (G_IS_APPLICATION (application), FALSE); in g_application_register()
2183 if (!application->priv->is_registered) in g_application_register()
2185 if (application->priv->id == NULL) in g_application_register()
2186 application->priv->flags |= G_APPLICATION_NON_UNIQUE; in g_application_register()
2188 application->priv->impl = in g_application_register()
2189 g_application_impl_register (application, application->priv->id, in g_application_register()
2190 application->priv->flags, in g_application_register()
2191 application->priv->actions, in g_application_register()
2192 &application->priv->remote_actions, in g_application_register()
2195 if (application->priv->impl == NULL) in g_application_register()
2198 application->priv->is_remote = application->priv->remote_actions != NULL; in g_application_register()
2199 application->priv->is_registered = TRUE; in g_application_register()
2201 g_object_notify (G_OBJECT (application), "is-registered"); in g_application_register()
2203 if (!application->priv->is_remote) in g_application_register()
2205 g_signal_emit (application, g_application_signals[SIGNAL_STARTUP], 0); in g_application_register()
2207 if (!application->priv->did_startup) in g_application_register()
2210 G_OBJECT_TYPE_NAME (application)); in g_application_register()
2220 * @application: a #GApplication
2222 * Increases the use count of @application.
2224 * Use this function to indicate that the application has a reason to
2231 g_application_hold (GApplication *application) in g_application_hold() argument
2233 g_return_if_fail (G_IS_APPLICATION (application)); in g_application_hold()
2235 if (application->priv->inactivity_timeout_id) in g_application_hold()
2237 g_source_remove (application->priv->inactivity_timeout_id); in g_application_hold()
2238 application->priv->inactivity_timeout_id = 0; in g_application_hold()
2241 application->priv->use_count++; in g_application_hold()
2247 GApplication *application = G_APPLICATION (data); in inactivity_timeout_expired() local
2249 application->priv->inactivity_timeout_id = 0; in inactivity_timeout_expired()
2257 * @application: a #GApplication
2259 * Decrease the use count of @application.
2261 * When the use count reaches zero, the application will stop running.
2267 g_application_release (GApplication *application) in g_application_release() argument
2269 g_return_if_fail (G_IS_APPLICATION (application)); in g_application_release()
2270 g_return_if_fail (application->priv->use_count > 0); in g_application_release()
2272 application->priv->use_count--; in g_application_release()
2274 if (application->priv->use_count == 0 && application->priv->inactivity_timeout) in g_application_release()
2275 application->priv->inactivity_timeout_id = g_timeout_add (application->priv->inactivity_timeout, in g_application_release()
2276 … inactivity_timeout_expired, application); in g_application_release()
2282 * @application: a #GApplication
2284 * Activates the application.
2289 * The application must be registered before calling this function.
2294 g_application_activate (GApplication *application) in g_application_activate() argument
2296 g_return_if_fail (G_IS_APPLICATION (application)); in g_application_activate()
2297 g_return_if_fail (application->priv->is_registered); in g_application_activate()
2299 if (application->priv->is_remote) in g_application_activate()
2300 g_application_impl_activate (application->priv->impl, in g_application_activate()
2301 get_platform_data (application, NULL)); in g_application_activate()
2304 g_signal_emit (application, g_application_signals[SIGNAL_ACTIVATE], 0); in g_application_activate()
2309 * @application: a #GApplication
2326 * The application must be registered before calling this function
2332 g_application_open (GApplication *application, in g_application_open() argument
2337 g_return_if_fail (G_IS_APPLICATION (application)); in g_application_open()
2338 g_return_if_fail (application->priv->flags & in g_application_open()
2340 g_return_if_fail (application->priv->is_registered); in g_application_open()
2342 if (application->priv->is_remote) in g_application_open()
2343 g_application_impl_open (application->priv->impl, in g_application_open()
2345 get_platform_data (application, NULL)); in g_application_open()
2348 g_signal_emit (application, g_application_signals[SIGNAL_OPEN], in g_application_open()
2355 * @application: a #GApplication
2360 * Runs the application.
2374 * application can inspect the values of its #GOptionEntrys.
2388 * If there are no files listed, the application is activated via the
2401 * If, after the above is done, the use count of the application is zero
2409 * if the use count falls to zero the application will exit immediately,
2417 * for the duration that the application is running.
2426 * solution whereby running an application directly from the commandline
2441 g_application_run (GApplication *application, in g_application_run() argument
2450 g_return_val_if_fail (G_IS_APPLICATION (application), 1); in g_application_run()
2452 g_return_val_if_fail (!application->priv->must_quit_now, 1); in g_application_run()
2467 * would expect, causing the program to fail with "This application can not open files." in g_application_run()
2489 * when opening the application using Launch Services. In order in g_application_run()
2529 if (!G_APPLICATION_GET_CLASS (application) in g_application_run()
2530 ->local_command_line (application, &arguments, &status)) in g_application_run()
2534 if (!g_application_register (application, NULL, &error)) in g_application_run()
2541 g_application_call_command_line (application, (const gchar **) arguments, NULL, &status); in g_application_run()
2546 if (application->priv->flags & G_APPLICATION_IS_SERVICE && in g_application_run()
2547 application->priv->is_registered && in g_application_run()
2548 !application->priv->use_count && in g_application_run()
2549 !application->priv->inactivity_timeout_id) in g_application_run()
2551 application->priv->inactivity_timeout_id = in g_application_run()
2552 g_timeout_add (10000, inactivity_timeout_expired, application); in g_application_run()
2555 while (application->priv->use_count || application->priv->inactivity_timeout_id) in g_application_run()
2557 if (application->priv->must_quit_now) in g_application_run()
2564 if (application->priv->is_registered && !application->priv->is_remote) in g_application_run()
2566 g_signal_emit (application, g_application_signals[SIGNAL_SHUTDOWN], 0); in g_application_run()
2568 if (!application->priv->did_shutdown) in g_application_run()
2571 G_OBJECT_TYPE_NAME (application)); in g_application_run()
2574 if (application->priv->impl) in g_application_run()
2576 g_application_impl_flush (application->priv->impl); in g_application_run()
2577 g_application_impl_destroy (application->priv->impl); in g_application_run()
2578 application->priv->impl = NULL; in g_application_run()
2583 if (!application->priv->must_quit_now) in g_application_run()
2595 GApplication *application = G_APPLICATION (action_group); in g_application_list_actions() local
2597 g_return_val_if_fail (application->priv->is_registered, NULL); in g_application_list_actions()
2599 if (application->priv->remote_actions != NULL) in g_application_list_actions()
2600 return g_action_group_list_actions (G_ACTION_GROUP (application->priv->remote_actions)); in g_application_list_actions()
2602 else if (application->priv->actions != NULL) in g_application_list_actions()
2603 return g_action_group_list_actions (application->priv->actions); in g_application_list_actions()
2619 GApplication *application = G_APPLICATION (group); in g_application_query_action() local
2621 g_return_val_if_fail (application->priv->is_registered, FALSE); in g_application_query_action()
2623 if (application->priv->remote_actions != NULL) in g_application_query_action()
2624 return g_action_group_query_action (G_ACTION_GROUP (application->priv->remote_actions), in g_application_query_action()
2632 if (application->priv->actions != NULL) in g_application_query_action()
2633 return g_action_group_query_action (application->priv->actions, in g_application_query_action()
2649 GApplication *application = G_APPLICATION (action_group); in g_application_change_action_state() local
2651 g_return_if_fail (application->priv->is_remote || in g_application_change_action_state()
2652 application->priv->actions != NULL); in g_application_change_action_state()
2653 g_return_if_fail (application->priv->is_registered); in g_application_change_action_state()
2655 if (application->priv->remote_actions) in g_application_change_action_state()
2656 g_remote_action_group_change_action_state_full (application->priv->remote_actions, in g_application_change_action_state()
2657 … action_name, value, get_platform_data (application, NULL)); in g_application_change_action_state()
2660 g_action_group_change_action_state (application->priv->actions, action_name, value); in g_application_change_action_state()
2668 GApplication *application = G_APPLICATION (action_group); in g_application_activate_action() local
2670 g_return_if_fail (application->priv->is_remote || in g_application_activate_action()
2671 application->priv->actions != NULL); in g_application_activate_action()
2672 g_return_if_fail (application->priv->is_registered); in g_application_activate_action()
2674 if (application->priv->remote_actions) in g_application_activate_action()
2675 g_remote_action_group_activate_action_full (application->priv->remote_actions, in g_application_activate_action()
2676 … action_name, parameter, get_platform_data (application, NULL)); in g_application_activate_action()
2679 g_action_group_activate_action (application->priv->actions, action_name, parameter); in g_application_activate_action()
2686 GApplication *application = G_APPLICATION (action_map); in g_application_lookup_action() local
2688 g_return_val_if_fail (G_IS_ACTION_MAP (application->priv->actions), NULL); in g_application_lookup_action()
2690 return g_action_map_lookup_action (G_ACTION_MAP (application->priv->actions), action_name); in g_application_lookup_action()
2697 GApplication *application = G_APPLICATION (action_map); in g_application_add_action() local
2699 g_return_if_fail (G_IS_ACTION_MAP (application->priv->actions)); in g_application_add_action()
2701 g_action_map_add_action (G_ACTION_MAP (application->priv->actions), action); in g_application_add_action()
2708 GApplication *application = G_APPLICATION (action_map); in g_application_remove_action() local
2710 g_return_if_fail (G_IS_ACTION_MAP (application->priv->actions)); in g_application_remove_action()
2712 g_action_map_remove_action (G_ACTION_MAP (application->priv->actions), action_name); in g_application_remove_action()
2732 /* Default Application {{{1 */
2745 * If there is no default application then %NULL is returned.
2747 * Returns: (nullable) (transfer none): the default application for this process, or %NULL
2759 * @application: (nullable): the application to set as default, or %NULL
2761 * Sets or unsets the default application for the process, as returned
2764 * This function does not take its own reference on @application. If
2765 * @application is destroyed then the default application will revert
2771 g_application_set_default (GApplication *application) in g_application_set_default() argument
2773 default_app = application; in g_application_set_default()
2778 * @application: a #GApplication
2780 * Immediately quits the application.
2786 * Take care if your code has called g_application_hold() on the application and
2797 g_application_quit (GApplication *application) in g_application_quit() argument
2799 g_return_if_fail (G_IS_APPLICATION (application)); in g_application_quit()
2801 application->priv->must_quit_now = TRUE; in g_application_quit()
2806 * @application: a #GApplication
2808 * Increases the busy count of @application.
2810 * Use this function to indicate that the application is busy, for instance
2822 g_application_mark_busy (GApplication *application) in g_application_mark_busy() argument
2826 g_return_if_fail (G_IS_APPLICATION (application)); in g_application_mark_busy()
2828 was_busy = (application->priv->busy_count > 0); in g_application_mark_busy()
2829 application->priv->busy_count++; in g_application_mark_busy()
2833 g_application_impl_set_busy_state (application->priv->impl, TRUE); in g_application_mark_busy()
2834 g_object_notify (G_OBJECT (application), "is-busy"); in g_application_mark_busy()
2840 * @application: a #GApplication
2842 * Decreases the busy count of @application.
2853 g_application_unmark_busy (GApplication *application) in g_application_unmark_busy() argument
2855 g_return_if_fail (G_IS_APPLICATION (application)); in g_application_unmark_busy()
2856 g_return_if_fail (application->priv->busy_count > 0); in g_application_unmark_busy()
2858 application->priv->busy_count--; in g_application_unmark_busy()
2860 if (application->priv->busy_count == 0) in g_application_unmark_busy()
2862 g_application_impl_set_busy_state (application->priv->impl, FALSE); in g_application_unmark_busy()
2863 g_object_notify (G_OBJECT (application), "is-busy"); in g_application_unmark_busy()
2869 * @application: a #GApplication
2871 * Gets the application's current busy state, as set through
2874 * Returns: %TRUE if @application is currently marked as busy
2879 g_application_get_is_busy (GApplication *application) in g_application_get_is_busy() argument
2881 g_return_val_if_fail (G_IS_APPLICATION (application), FALSE); in g_application_get_is_busy()
2883 return application->priv->busy_count > 0; in g_application_get_is_busy()
2890 * @application: a #GApplication
2894 * Sends a notification on behalf of @application to the desktop shell.
2898 * Notifications may persist after the application exits. It will be
2906 * application. It does not need to be in any special format. For
2913 * execution of the application, as long as @id is the same string.
2924 g_application_send_notification (GApplication *application, in g_application_send_notification() argument
2930 g_return_if_fail (G_IS_APPLICATION (application)); in g_application_send_notification()
2932 g_return_if_fail (g_application_get_is_registered (application)); in g_application_send_notification()
2933 g_return_if_fail (!g_application_get_is_remote (application)); in g_application_send_notification()
2935 if (application->priv->notifications == NULL) in g_application_send_notification()
2936 application->priv->notifications = g_notification_backend_new_default (application); in g_application_send_notification()
2944 g_notification_backend_send_notification (application->priv->notifications, id, notification); in g_application_send_notification()
2951 * @application: a #GApplication
2961 * executions of this application, as long @id is the same as it was for
2971 g_application_withdraw_notification (GApplication *application, in g_application_withdraw_notification() argument
2974 g_return_if_fail (G_IS_APPLICATION (application)); in g_application_withdraw_notification()
2977 if (application->priv->notifications == NULL) in g_application_withdraw_notification()
2978 application->priv->notifications = g_notification_backend_new_default (application); in g_application_withdraw_notification()
2980 g_notification_backend_withdraw_notification (application->priv->notifications, id); in g_application_withdraw_notification()
3024 * @application: a #GApplication
3028 * Marks @application as busy (see g_application_mark_busy()) while
3031 * The binding holds a reference to @application while it is active, but
3038 g_application_bind_busy_property (GApplication *application, in g_application_bind_busy_property() argument
3048 g_return_if_fail (G_IS_APPLICATION (application)); in g_application_bind_busy_property()
3061 …g_critical ("%s: '%s' is already bound to the busy state of the application", G_STRFUNC, property); in g_application_bind_busy_property()
3066 binding->app = g_object_ref (application); in g_application_bind_busy_property()
3079 * @application: a #GApplication
3084 * @application that was previously created with
3090 g_application_unbind_busy_property (GApplication *application, in g_application_unbind_busy_property() argument
3098 g_return_if_fail (G_IS_APPLICATION (application)); in g_application_unbind_busy_property()
3109 … g_critical ("%s: '%s' is not bound to the busy state of the application", G_STRFUNC, property); in g_application_unbind_busy_property()