Esempio n. 1
0
/**
 * 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 );
}
Esempio n. 2
0
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);
}
Esempio n. 3
0
/**
 * 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 );
}
Esempio n. 4
0
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);
}
Esempio n. 5
0
File: about.c Progetto: Mortal/claws
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;
}
Esempio n. 6
0
/* callback for playing URIs */
static void
play_cb(AppData *appdata,
	const char *uri) {

  if (uri) {
    open_uri(appdata, uri);
  } else {
    decoder_stop(appdata->decoder);
  }

}
Esempio n. 7
0
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);
}
Esempio n. 8
0
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));
	}
}
Esempio n. 9
0
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());
}
Esempio n. 10
0
/*!
 *\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);
}