/** * Open file with web browser. * \param widget Widget (button). * \param data User data. */ static void export_html_browse( GtkWidget *widget, gpointer data ) { gchar *uri; uri = g_strconcat( "file://", _exportCtl_->path, NULL ); open_uri( uri, prefs_common.uri_cmd ); g_free( uri ); }
void manual_open(ManualType type, gchar *url_anchor) { gchar *uri = NULL; gchar *dir; switch (type) { case MANUAL_MANUAL_CLAWS: dir = get_local_path_with_locale(MANUALDIR); if (dir != NULL) { gchar *tmp_anchor = NULL; if (url_anchor && *url_anchor != '\0') tmp_anchor = g_strconcat("#", url_anchor, NULL); uri = g_strconcat("file://", dir, G_DIR_SEPARATOR_S, MANUAL_HTML_INDEX, tmp_anchor, NULL); g_free(tmp_anchor); g_free(dir); } else { uri = g_strconcat(MANUAL_URI, NULL); } break; case MANUAL_FAQ_CLAWS: uri = g_strconcat(FAQ_URI, NULL); break; default: break; } open_uri(uri, prefs_common_get_uri_cmd()); g_free(uri); }
/** * Open file with web browser. * \param widget Widget (button). * \param data User data. */ static void export_html_browse( GtkWidget *widget, gpointer data ) { gchar *uri; uri = g_filename_to_uri(_exportCtl_->path, NULL, NULL); open_uri( uri, prefs_common_get_uri_cmd() ); g_free( uri ); }
static void uri_opener_open_cb(GtkWidget *widget, gpointer data) { ClickableText *uri; GtkTreeIter sel; GtkTreeModel *model; GtkTreeSelection *selection; GList *selected, *cur; selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(opener.urilist)); selected = gtk_tree_selection_get_selected_rows(selection, &model); cm_return_if_fail(selected); for(cur = selected; cur != NULL; cur = g_list_next(cur)) { if(!gtk_tree_model_get_iter(model, &sel, (GtkTreePath *)cur->data)) continue; gtk_tree_model_get(model, &sel, URI_OPENER_DATA, &uri, -1); if (!uri) continue; if (textview_uri_security_check(opener.msgview->mimeview->textview, uri) == TRUE) open_uri(uri->uri, prefs_common_get_uri_cmd()); } g_list_foreach(selected, (GFunc)gtk_tree_path_free, NULL); g_list_free(selected); }
static gboolean about_textview_uri_clicked(GtkTextTag *tag, GObject *obj, GdkEvent *event, GtkTextIter *iter, GtkWidget *textview) { GtkTextIter start_iter, end_iter; GdkEventButton *bevent; gchar *link = NULL; if (!event || !tag) { return FALSE; } if (event->type != GDK_BUTTON_PRESS && event->type != GDK_2BUTTON_PRESS && event->type != GDK_BUTTON_RELEASE) { return FALSE; } /* get link text from tag */ if (get_tag_range(iter, tag, &start_iter, &end_iter) == FALSE) { return FALSE; } link = gtk_text_iter_get_text(&start_iter, &end_iter); if (link == NULL) { return FALSE; } bevent = (GdkEventButton *) event; if (bevent->button == 1 && event->type == GDK_BUTTON_RELEASE) { GtkTextBuffer *buffer; /* we shouldn't follow a link if the user has selected something */ buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(textview)); gtk_text_buffer_get_selection_bounds(buffer, &start_iter, &end_iter); if (gtk_text_iter_get_offset(&start_iter) != gtk_text_iter_get_offset(&end_iter)) { return FALSE; } /* open link and do *not* return TRUE so that further gtk processing of the signal is done */ open_uri(link, prefs_common_get_uri_cmd()); } else { if (bevent->button == 3 && event->type == GDK_BUTTON_PRESS) { link_popupmenu = gtk_menu_item_get_submenu(GTK_MENU_ITEM( gtk_ui_manager_get_widget(gtkut_ui_manager(), "/Menus/TextviewPopupLink"))); g_object_set_data( G_OBJECT(link_popupmenu), "raw_url", link); gtk_menu_popup(GTK_MENU(link_popupmenu), NULL, NULL, NULL, NULL, bevent->button, bevent->time); return TRUE; } } return FALSE; }
/* callback for playing URIs */ static void play_cb(AppData *appdata, const char *uri) { if (uri) { open_uri(appdata, uri); } else { decoder_stop(appdata->decoder); } }
void faq_open(ManualLang lang) { gchar *lang_str; gchar *file_uri; lang_str = get_lang_str(lang); if (!lang_str) return; file_uri = g_strconcat("file://", #ifdef G_OS_WIN32 get_startup_dir(), G_DIR_SEPARATOR_S "doc" G_DIR_SEPARATOR_S "faq", #else FAQDIR, #endif G_DIR_SEPARATOR_S, lang_str, G_DIR_SEPARATOR_S, FAQ_HTML_INDEX, NULL); debug_print("Opening FAQ: %s\n", file_uri); open_uri(file_uri, prefs_common.uri_cmd); g_free(file_uri); }
void cb_record_found (const char *rcdName, void *user_data) { errorCode_t ec; neardal_record *record; printf("\t---- Record found \n"); ec = neardal_get_record_properties(rcdName, &record); if (ec == NEARDAL_SUCCESS) { dump_record(record); open_uri(record); neardal_free_record(record); printf("---- Reading done\n"); printf("---- Waiting for tag removal\n"); } else { printf("Read record error (error:%d='%s').\n",ec,neardal_error_get_text(ec)); } }
static void uri_opener_double_clicked(GtkTreeView *list_view, GtkTreePath *path, GtkTreeViewColumn *column, gpointer data) { ClickableText *uri; GtkTreeIter iter; GtkTreeModel *model = gtk_tree_view_get_model(list_view); if (!gtk_tree_model_get_iter(model, &iter, path)) return; gtk_tree_model_get(model, &iter, URI_OPENER_DATA, &uri, -1); if (!uri) return; if (textview_uri_security_check(opener.msgview->mimeview->textview, uri) == TRUE) open_uri(uri->uri, prefs_common_get_uri_cmd()); }
/*! *\brief create bug report (goes to Sylpheed Claws bug tracker) */ static void crash_create_bug_report(GtkButton *button, const gchar *data) { open_uri(CLAWS_BUGZILLA_URI, prefs_common.uri_cmd); }