/** * gdata_calendar_service_insert_event: * @self: a #GDataCalendarService * @event: the #GDataCalendarEvent to insert * @cancellable: optional #GCancellable object, or %NULL * @error: a #GError, or %NULL * * Inserts @event by uploading it to the online calendar service. * * For more details, see gdata_service_insert_entry(). * * Return value: an updated #GDataCalendarEvent, or %NULL * * Since: 0.2.0 **/ GDataCalendarEvent * gdata_calendar_service_insert_event (GDataCalendarService *self, GDataCalendarEvent *event, GCancellable *cancellable, GError **error) { /* TODO: Async variant */ /* TODO: How do we choose which calendar? */ gchar *uri; GDataEntry *entry; g_return_val_if_fail (GDATA_IS_CALENDAR_SERVICE (self), NULL); g_return_val_if_fail (GDATA_IS_CALENDAR_EVENT (event), NULL); uri = g_strdup_printf ("http://www.google.com/calendar/feeds/%s/private/full", gdata_service_get_username (GDATA_SERVICE (self))); entry = gdata_service_insert_entry (GDATA_SERVICE (self), uri, GDATA_ENTRY (event), cancellable, error); g_free (uri); return GDATA_CALENDAR_EVENT (entry); }
/** * login_get_dialog: * * Retrieves the login dialog. If it has not yet been constructed, it * does so. If the user is already authenticated, it populates the * username and password boxes with the relevant values. **/ static GtkWidget * login_get_dialog (XviewerPostasaPlugin *plugin) { GtkBuilder *builder; GError *error = NULL; if (plugin->priv->login_dialog == NULL) { builder = gtk_builder_new (); gtk_builder_set_translation_domain (builder, GETTEXT_PACKAGE); gtk_builder_add_from_resource (builder, GTKBUILDER_CONFIG_FILE, &error); if (error != NULL) { g_warning ("Couldn't load Postasa configuration UI file:%d:%s", error->code, error->message); g_error_free (error); } /* do not unref gtk_builder_get_object() returns */ plugin->priv->username_entry = GTK_ENTRY (gtk_builder_get_object (builder, "username_entry")); plugin->priv->password_entry = GTK_ENTRY (gtk_builder_get_object (builder, "password_entry")); plugin->priv->login_dialog = GTK_DIALOG (gtk_builder_get_object (builder, "postasa_login_dialog")); plugin->priv->cancel_button = GTK_BUTTON (gtk_builder_get_object (builder, "cancel_button")); plugin->priv->login_button = GTK_BUTTON (gtk_builder_get_object (builder, "login_button")); plugin->priv->login_message = GTK_LABEL (gtk_builder_get_object (builder, "login_message")); g_object_unref (builder); g_signal_connect (G_OBJECT (plugin->priv->login_button), "clicked", G_CALLBACK (picasaweb_login_cb), plugin); g_signal_connect (G_OBJECT (plugin->priv->cancel_button), "clicked", G_CALLBACK (login_dialog_cancel_button_cb), plugin); g_signal_connect (G_OBJECT (plugin->priv->login_dialog), "delete-event", G_CALLBACK (login_dialog_delete_event_cb), plugin); #ifdef HAVE_LIBGDATA_0_9 if (gdata_service_is_authorized (GDATA_SERVICE (plugin->priv->service))) { gtk_entry_set_text (plugin->priv->username_entry, gdata_client_login_authorizer_get_username (plugin->priv->authorizer)); gtk_entry_set_text (plugin->priv->password_entry, gdata_client_login_authorizer_get_password (plugin->priv->authorizer)); #else if (gdata_service_is_authenticated (GDATA_SERVICE (plugin->priv->service))) { gtk_entry_set_text (plugin->priv->username_entry, gdata_service_get_username (GDATA_SERVICE (plugin->priv->service))); gtk_entry_set_text (plugin->priv->password_entry, gdata_service_get_password (GDATA_SERVICE (plugin->priv->service))); #endif } } return GTK_WIDGET (plugin->priv->login_dialog); } /*** XviewerPlugin Functions ***/ /** * impl_activate: * * Plugin hook for plugin activation. Creates #WindowData for the * #XviewerPostasaPlugin that gets associated with the window and defines * some UI. **/ static void impl_activate (XviewerWindowActivatable *activatable) { XviewerPostasaPlugin *plugin = XVIEWER_POSTASA_PLUGIN (activatable); XviewerPostasaPluginPrivate *priv = plugin->priv; GtkUIManager *manager; XviewerWindow *window; xviewer_debug (DEBUG_PLUGINS); window = priv->xviewer_window; priv->ui_action_group = gtk_action_group_new ("XviewerPostasaPluginActions"); gtk_action_group_set_translation_domain (priv->ui_action_group, GETTEXT_PACKAGE); gtk_action_group_add_actions (priv->ui_action_group, action_entries, G_N_ELEMENTS (action_entries), plugin); manager = xviewer_window_get_ui_manager (window); /* do not unref */ gtk_ui_manager_insert_action_group (manager, priv->ui_action_group, -1); priv->ui_id = gtk_ui_manager_add_ui_from_string (manager, ui_definition, -1, NULL); g_warn_if_fail (priv->ui_id != 0); }