static void open_in_browser (GtkWidget *button, gchar *title) { gchar *valid_chars = "abcdefghijklmnopqrstuvwxyz" \ "ABCDEFGHIJKLMNOPQRSTUVWXYZ" \ "0123456789_()[],"; gchar *q = g_strdup (title); gchar *url = g_strdup_printf ("http://wikipedia.org/wiki/Special:Search/?search=%s", g_strcanon (q, valid_chars, '+')); g_free (q); launch_browser (url); g_free (url); }
static install_state carbonui_website(install_info *info) { const char *website_text; int do_launch; carbon_debug("***carbonui_okay()\n"); // Set screen to the product website page carbon_ShowInstallScreen(MyRes, WEBSITE_PAGE); // Set product name carbon_SetLabelText(MyRes, WEBSITE_PRODUCT_LABEL_ID, GetProductDesc(info)); // Set website text if desired website_text = GetWebsiteText(info); if(website_text) carbon_SetLabelText(MyRes, WEBSITE_TEXT_LABEL_ID, website_text); // Hide the proper widget based on the auto_url state do_launch = 0; if(strcmp(GetAutoLaunchURL(info), "true") == 0 ) { do_launch = 1; carbon_HideControl(MyRes, WEBSITE_BROWSER_BUTTON_ID); //hideme = glade_xml_get_widget(setup_glade, "auto_url_no"); } else { do_launch = 0; carbon_HideControl(MyRes, WEBSITE_BROWSER_TEXT_ID); //hideme = glade_xml_get_widget(setup_glade, "auto_url_yes"); } // Automatically launch the browser if necessary if(do_launch) launch_browser(info, carbon_LaunchURL); return carbon_IterateForState(MyRes, &cur_state); }
static void OnCommandWebsite() { carbon_debug("OnCommandWebsite()\n"); launch_browser(cur_info, carbon_LaunchURL); }
SharingPluginInterfaceSendResult sharing_plugin_interface_send (SharingTransfer* transfer, ConIcConnection* con, gboolean* dead_mans_switch) { SharingEntry *entry = sharing_transfer_get_entry (transfer); DBusGConnection* connection = get_connection (); GSList* p; DBusGProxy *uploader = NULL; if (!connection) { return SHARING_SEND_ERROR_UNKNOWN; } uploader = dbus_g_proxy_new_for_name (connection, "com.imgur", "/com/imgur", "com.imgur"); for (p=sharing_entry_get_media (entry); p; p=g_slist_next (p)) { SharingEntryMedia* media = p->data; GError *error = NULL; gchar *url = NULL; GHashTable *result = NULL; const gchar *filename = sharing_entry_media_get_localpath (media); if (sharing_entry_media_get_sent (media)) continue; /* it was already sent */ /* Great, so let's send it. */ if (com_imgur_upload (uploader, filename, &result, &error)) { GValue *url_v = g_hash_table_lookup (result, "imgur_page"); if (url_v) url = g_strdup (g_value_get_string (url_v)); if (result) g_hash_table_unref (result); } else { g_warning ("Error in upload: %s", error->message); g_error_free (error); return SHARING_SEND_ERROR_UNKNOWN; } if (url) { /* looks like a successful operation */ /* * At some point we may want a configuration * setting that means that the libsharing * plugin does *not* launch the browser. * But this will only become useful when * there is a GUI app to look at existing * uploads. */ if (!launch_browser (connection, url)) { g_free (url); return SHARING_SEND_ERROR_UNKNOWN; } g_free (url); sharing_entry_media_set_sent (media, TRUE); } else { return SHARING_SEND_ERROR_UNKNOWN; } *dead_mans_switch = 0; /* keepalive */ } /* FIXME: don't we want to unref the connection? */ return SHARING_SEND_SUCCESS; }