/**
 * ide_application_addin_unload:
 * @self: An #IdeApplicationAddin.
 * @application: An #IdeApplication.
 *
 * This inteface method is called when the application is shutting down or the
 * plugin has been unloaded.
 *
 * Use this function to cleanup after anything setup in
 * ide_application_addin_load().
 *
 * Since: 3.32
 */
void
ide_application_addin_unload (IdeApplicationAddin *self,
                              IdeApplication      *application)
{
  g_return_if_fail (IDE_IS_APPLICATION_ADDIN (self));
  g_return_if_fail (IDE_IS_APPLICATION (application));

  IDE_APPLICATION_ADDIN_GET_IFACE (self)->unload (self, application);
}
/**
 * ide_application_addin_activate:
 * @self: a #IdeApplicationAddin
 * @application: an #ideApplication
 *
 * This function is activated when the GApplication::activate signal is
 * emitted.
 *
 * Since: 3.32
 */
void
ide_application_addin_activate (IdeApplicationAddin *self,
                                IdeApplication      *application)
{
  g_return_if_fail (IDE_IS_APPLICATION_ADDIN (self));
  g_return_if_fail (IDE_IS_APPLICATION (application));

  if (IDE_APPLICATION_ADDIN_GET_IFACE (self)->activate)
    IDE_APPLICATION_ADDIN_GET_IFACE (self)->activate (self, application);
}
void
ide_application_addin_workbench_removed (IdeApplicationAddin *self,
                                         IdeWorkbench        *workbench)
{
  g_return_if_fail (IDE_IS_APPLICATION_ADDIN (self));
  g_return_if_fail (IDE_IS_WORKBENCH (workbench));

  if (IDE_APPLICATION_ADDIN_GET_IFACE (self)->workbench_removed)
    IDE_APPLICATION_ADDIN_GET_IFACE (self)->workbench_removed (self, workbench);
}
/**
 * ide_application_addin_add_option_entries:
 * @self: a #IdeApplicationAddin
 * @application: an #IdeApplication
 *
 * This function is called to allow the application a chance to add various
 * command-line options to the #GOptionContext. See
 * g_application_add_main_option_entries() for more information on how to
 * add arguments.
 *
 * See ide_application_addin_handle_command_line() for how to handle arguments
 * once command line argument processing begins.
 *
 * Make sure you set `X-At-Startup=true` in your `.plugin` file so that the
 * plugin is loaded early during startup or this virtual function will not
 * be called.
 *
 * Since: 3.32
 */
void
ide_application_addin_add_option_entries (IdeApplicationAddin *self,
                                          IdeApplication      *application)
{
  g_return_if_fail (IDE_IS_APPLICATION_ADDIN (self));
  g_return_if_fail (IDE_IS_APPLICATION (application));

  if (IDE_APPLICATION_ADDIN_GET_IFACE (self)->add_option_entries)
    IDE_APPLICATION_ADDIN_GET_IFACE (self)->add_option_entries (self, application);
}
/**
 * ide_application_addin_handle_command_line:
 * @self: a #IdeApplicationAddin
 * @application: an #IdeApplication
 * @cmdline: a #GApplicationCommandLine
 *
 * This function is called to allow the addin to procses command line arguments
 * that were parsed based on options added in
 * ide_application_addin_add_option_entries().
 *
 * See g_application_command_line_get_option_dict() for more information.
 *
 * Since: 3.32
 */
void
ide_application_addin_handle_command_line (IdeApplicationAddin     *self,
                                           IdeApplication          *application,
                                           GApplicationCommandLine *cmdline)
{
  g_return_if_fail (IDE_IS_APPLICATION_ADDIN (self));
  g_return_if_fail (IDE_IS_APPLICATION (application));
  g_return_if_fail (G_IS_APPLICATION_COMMAND_LINE (cmdline));

  if (IDE_APPLICATION_ADDIN_GET_IFACE (self)->handle_command_line)
    IDE_APPLICATION_ADDIN_GET_IFACE (self)->handle_command_line (self, application, cmdline);
}
/**
 * ide_application_addin_open:
 * @self: a #IdeApplicationAddin
 * @application: an #ideApplication
 * @files: (array length=n_files) (element-type GFile): an array of #GFiles
 * @n_files: the length of @files
 * @hint: a hint provided by the calling instance
 *
 * This function is activated when the #GApplication::open signal is emitted.
 *
 * Since: 3.32
 */
void
ide_application_addin_open (IdeApplicationAddin  *self,
                            IdeApplication       *application,
                            GFile               **files,
                            gint                  n_files,
                            const gchar          *hint)
{
  g_return_if_fail (IDE_IS_APPLICATION_ADDIN (self));
  g_return_if_fail (IDE_IS_APPLICATION (application));

  if (IDE_APPLICATION_ADDIN_GET_IFACE (self)->open)
    IDE_APPLICATION_ADDIN_GET_IFACE (self)->open (self, application, files, n_files, hint);
}
Esempio n. 7
0
static void
ide_application_addin_removed (PeasExtensionSet *set,
                               PeasPluginInfo   *plugin_info,
                               PeasExtension    *extension,
                               gpointer          user_data)
{
  IdeApplication *self = user_data;

  g_assert (PEAS_IS_EXTENSION_SET (set));
  g_assert (plugin_info != NULL);
  g_assert (IDE_IS_APPLICATION_ADDIN (extension));

  ide_application_addin_unload (IDE_APPLICATION_ADDIN (extension), self);
}
static void
gbp_greeter_application_addin_add_option_entries (IdeApplicationAddin *addin,
                                                  IdeApplication      *app)
{
  g_assert (IDE_IS_APPLICATION_ADDIN (addin));
  g_assert (G_IS_APPLICATION (app));

  g_application_add_main_option (G_APPLICATION (app),
                                 "greeter",
                                 'g',
                                 G_OPTION_FLAG_IN_MAIN,
                                 G_OPTION_ARG_NONE,
                                 _("Display a new greeter window"),
                                 NULL);

  g_application_add_main_option (G_APPLICATION (app),
                                 "clone",
                                 0,
                                 G_OPTION_FLAG_IN_MAIN,
                                 G_OPTION_ARG_STRING,
                                 _("Begin cloning project from URI"),
                                 "URI");
}