Example #1
0
static void _load_file(EDITOR *e, const gchar *filename)
{
	char *text = NULL;
	GtkRecentManager *rm = NULL;

	rm = gtk_recent_manager_get_default();
	gtk_recent_manager_add_item(rm, filename);

	if (e->filename)
		g_free(e->filename);
	e->filename = g_strdup(filename);

	XI_message(("_load_file filename: %s", filename));

	xml_set_value("Xiphos", "studypad", "lastfile", e->filename);
	settings.studypadfilename = xml_get_value("studypad", "lastfile");

	change_window_title(e->window, e->filename);
	text = inhale_text_from_file(!strncmp(filename, "file:", 5)
					 ? filename + 5
					 : filename);

	XI_message(("web view load string [%s]", text));
	webkit_web_view_load_string(WEBKIT_WEB_VIEW(e->html_widget),
				    text, "text/html", "utf_8", "file://");

	g_free(text);
	e->is_changed = FALSE;
}
Example #2
0
G_MODULE_EXPORT void
action_copy_activate_cb(GtkWidget *widget, EDITOR *e)
{
	if (editor_copy(e))
		XI_message(("%s", "copy sucess"));
	else
		XI_message(("%s", "copy failed"));
}
Example #3
0
void gui_display_mod_and_key(const gchar *mod_name, const gchar *key)
{
	gchar *text = NULL;
	XI_message(("mod_name: %s  key: %s", mod_name, key));
	text = main_get_rendered_text(mod_name, key);
	XI_message(("%s", text));
	if (text) {
		main_entry_display(html_widget,
				   (gchar *)mod_name,
				   text, (gchar *)key, TRUE);
		g_free(text);
	}
}
Example #4
0
static gboolean select_book_button_press_callback(GtkWidget *widget,
						  GdkEventButton *event,
						  gpointer user_data)
{
	GtkWidget *menu = NULL;

	GTimeVal start_time;
	GTimeVal end_time;
#ifdef WIN32
	glong time_diff;
	guint32 time_add;
#endif

	g_get_current_time(&start_time);
	XI_message(("Start time is: %ld sec %ld mil", start_time.tv_sec,
		    start_time.tv_usec));

	menu = main_versekey_drop_down_book_menu(navbar_parallel,
						 NB_PARALLEL, NULL, NULL);

	g_get_current_time(&end_time);
	XI_message(("End time is: %ld sec %ld mil", end_time.tv_sec,
		    end_time.tv_usec));
#ifdef WIN32
	time_diff =
	    ((end_time.tv_sec - start_time.tv_sec) * 1000000) +
	    (end_time.tv_usec - start_time.tv_usec);
	time_add = 0;
	if (time_diff > 10000)
		time_add = (guint32)(time_diff / 1000);
#endif
	if (!menu)
		return 0;
	g_signal_connect(menu, "deactivate",
			 G_CALLBACK(menu_deactivate_callback), widget);
	if ((event->type == GDK_BUTTON_PRESS) && event->button == 1) {
		gtk_widget_grab_focus(widget);
		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget),
					     TRUE);
		gtk_menu_popup(GTK_MENU(menu), NULL, NULL,
			       menu_position_under, widget, event->button,
#ifdef WIN32
			       event->time + time_add);
#else
			       event->time);
#endif
		return TRUE;
	}
Example #5
0
static void on_edit_prayerlist_activate(GtkMenuItem *menuitem,
					gpointer user_data)
{
	XI_message(("settings.book_key: %s", (char *)(is_dialog ? dialog->key : settings.book_key)));
	editor_create_new((gchar *)user_data,
			  (gchar *)(is_dialog ? dialog->key : settings.book_key), BOOK_EDITOR);
}
Example #6
0
static gboolean lookup_entry_press_callback(GtkWidget *widget,
					    GdkEventKey *event,
					    gpointer user_data)
{
	if (!settings.havebook)
		return FALSE;
	/* this does not work on my system - hope I'm not messing things up
	   for others - 104 is the enter key on the number pad
	   switch (event->hardware_keycode) {
	   case 98:
	   gtk_button_clicked(GTK_BUTTON(navbar_book.button_up));
	   return TRUE;
	   break;
	   case 104:
	   gtk_button_clicked(GTK_BUTTON(navbar_book.button_down));
	   return TRUE;
	   break;
	   case 100:
	   gtk_button_clicked(GTK_BUTTON(navbar_book.button_left));
	   return TRUE;
	   break;
	   case 102:
	   gtk_button_clicked(GTK_BUTTON(navbar_book.button_right));
	   return TRUE;
	   break;
	   }
	 */
	XI_message(("lookup_entry_press_callback\nkeycode: %d",
		    event->hardware_keycode));
	return FALSE;
}
Example #7
0
static void _load_file(EDITOR *e, const gchar *filename)
{
	//GtkWidget *choser;
	if (e->filename)
		g_free(e->filename);
	e->filename = g_strdup(filename);

	XI_message(("_load_file filename: %s", filename));

	xml_set_value("Xiphos", "studypad", "lastfile", e->filename);
	settings.studypadfilename = xml_get_value("studypad", "lastfile");
	change_window_title(e->window, e->filename);

	char *contents;
	char *etag_out;
	gsize length;
	GFile *file;
	file = g_file_new_for_path(filename);
	gtkhtml_editor_set_filename(GTKHTML_EDITOR(e->window),
				    e->filename);
	if (g_file_load_contents(file, NULL, &contents, &length, &etag_out, NULL))
		gtkhtml_editor_set_text_html(GTKHTML_EDITOR(e->window),
					     contents, length);
	gtkhtml_editor_drop_undo(GTKHTML_EDITOR(e->window));
	gtkhtml_editor_set_changed(GTKHTML_EDITOR(e->window), FALSE);
	return;
}
Example #8
0
gint _check_for_distribution_license(gchar *mod_name)
{
	gchar *distributionlicense;
	gchar *conf_file;

	conf_file = g_strdup_printf("%s/" DOTSWORD "/mods.d/%s.conf",
				    settings.homedir,
				    g_utf8_strdown(mod_name, -1));

	if (g_file_test(conf_file, G_FILE_TEST_EXISTS))
		distributionlicense = get_conf_file_item(conf_file,
							 mod_name,
							 "DistributionLicense");
	else
		distributionlicense = main_get_mod_config_entry(mod_name,
								"DistributionLicense");
	g_free(conf_file);
	XI_message(("DistributionLicense: %s", distributionlicense));

	if (!distributionlicense || (distributionlicense &&
				     g_strstr_len(distributionlicense,
						  strlen(distributionlicense),
						  "Copyright"))) {
		if (main_get_one_option(mod_name, OP_NAME) == 0) {
			gui_generic_warning(_("Please check copyright before exporting!"));
			main_save_module_options(mod_name, OP_NAME, 1);
		}

		return 1;
	}

	return 0;
}
Example #9
0
void set_button_state(BUTTONS_STATE state, EDITOR *e)
{
#ifdef HAVE_GTK_34
	GdkRGBA rgba;
#else
	GdkColor color;
#endif
	gtk_toggle_tool_button_set_active(e->toolitems.bold, state.bold);
	gtk_toggle_tool_button_set_active(e->toolitems.italic, state.italic);
	gtk_toggle_tool_button_set_active(e->toolitems.underline, state.underline);
	gtk_toggle_tool_button_set_active(e->toolitems.strike, state.strike);
	gtk_combo_box_set_active((GtkComboBox *)e->toolitems.cb, state.style);

	if (state.color) {
		XI_message(("state.color: %s", state.color));
#ifdef HAVE_GTK_34
		if (gdk_rgba_parse(&rgba, state.color))
			gtk_color_chooser_set_rgba((GtkColorChooser *)
						   e->toolitems.color,
						   &rgba);
#else
		if (gdk_color_parse(state.color, &color))
			gtk_color_button_set_color((GtkColorButton *)
						   e->toolitems.color,
						   &color);
#endif
	}
}
static gboolean on_button_verse_menu_verse_scroll_event(GtkWidget *widget,
							GdkEvent *event,
							EDITOR *editor)
{
	XI_message(("%s", "on_button_verse_menu_verse_scroll_event"));
	main_navbar_versekey_spin_verse(editor->navbar,
					event->scroll.direction);
	return FALSE;
}
Example #11
0
static gchar *get_font_size_from_name(GString *fontname)
{
	gchar buf[80];
	gint len, i = 0, j = 0;

	len = fontname->len;
	XI_message(("\nlength: %d\n", len));
	for (i = 0; (i < 79 && i < len); i++) {
		if (isdigit(fontname->str[i])) {
			XI_message(("\n\nfontname->str[i]: %c",
				    fontname->str[i]));
			buf[j] = fontname->str[i];
			buf[j + 1] = '\0';
			j++;
		}
	}
	return g_strdup(buf);
}
Example #12
0
/******************************************************************************
 * Name
 *   gui_save_treeview_path_string
 *
 * Synopsis
 *   #include "gui/sidebar.h"
 *
 *   void gui_save_treeview_path_string (const gchar * path_str, const gchar * book_name)
 *
 * Description
 *   saves a books's treeview path in .xiphos/book_path.conf
 *
 * Return value
 *   void
 */
void gui_save_treeview_path_string(const gchar *path_str,
				   const gchar *book_name)
{
	gchar *file =
	    g_strdup_printf("%s/book_path.conf", settings.gSwordDir);
	save_conf_file_item(file, book_name, "PATH", path_str);
	XI_message(("book %s, path %s, file %s\n", book_name, path_str,
		    file));
	g_free(file);
}
Example #13
0
static GtkWidget *_create_bookmark_dialog(gchar *label,
					  gchar *module, gchar *key)
{
#ifdef USE_GTKBUILDER
	GtkBuilder *gxml;
#else
	GladeXML *gxml;
#endif
	gchar *glade_file =
	    gui_general_user_file("bookmarks" UI_SUFFIX, TRUE);
	g_return_val_if_fail(glade_file != NULL, NULL);
	XI_message(("%s", glade_file));

/* build the widget */
#ifdef USE_GTKBUILDER
	gxml = gtk_builder_new();
	gtk_builder_add_from_file(gxml, glade_file, NULL);
#else
	gxml = glade_xml_new(glade_file, NULL, NULL);
#endif
	g_free(glade_file);
	g_return_val_if_fail(gxml != NULL, NULL);

	/* lookup the root widget */
	bookmark_dialog = UI_GET_ITEM(gxml, "dialog");
	g_signal_connect(bookmark_dialog, "response",
			 G_CALLBACK(on_dialog_response), NULL);

	/* treeview */
	treeview = UI_GET_ITEM(gxml, "treeview");
	setup_treeview();
	g_signal_connect(treeview, "button-release-event",
			 G_CALLBACK(on_treeview_button_release_event),
			 NULL);
	/* entrys */
	entry_label = UI_GET_ITEM(gxml, "entry1");
	entry_key = UI_GET_ITEM(gxml, "entry2");
	entry_module = UI_GET_ITEM(gxml, "entry3");

	gtk_entry_set_text(GTK_ENTRY(entry_label), label);
	gtk_entry_set_text(GTK_ENTRY(entry_key), key);
	gtk_entry_set_text(GTK_ENTRY(entry_module), module);
	g_signal_connect(entry_label, "activate",
			 G_CALLBACK(on_dialog_enter), NULL);
	g_signal_connect(entry_key, "activate",
			 G_CALLBACK(on_dialog_enter), NULL);
	g_signal_connect(entry_module, "activate",
			 G_CALLBACK(on_dialog_enter), NULL);

	/* dialog buttons */
	button_new_folder = UI_GET_ITEM(gxml, "button1");
	button_add_bookmark = UI_GET_ITEM(gxml, "button3");

	return bookmark_dialog;
}
Example #14
0
/* save if needed is done in treeky-editor.c before calling editor_load_book() */
void editor_load_book(EDITOR *e)
{
	gchar *title = NULL, *text = NULL;

	if (!g_ascii_isdigit(e->key[0]))
		return; /* make sure is a number (offset) */

	XI_message(("book: %s\noffset :%s", e->module, e->key));

	if (atol(e->key) != 0)
		text = main_get_book_raw_text(e->module, e->key);
	else
		text = g_strdup(e->module);

	if ((text == NULL) || strlen(text) == 0) {
		if (text)
			g_free(text);

		/* new empty document from template */
		gchar *fname = g_build_filename(settings.gSwordDir, "studypad.spt", NULL);
		XI_message(("editor load BOOK [%s]", fname));
		text = inhale_text_from_file(fname);
		g_free(fname);
	}

	if (text && strlen(text)) {
		webkit_web_view_load_string((WebKitWebView *)
					    e->html_widget,
					    text,
					    "text/html", "utf_8",
					    "file://");
	}

	if (text)
		g_free(text);

	title = g_strdup_printf("%s", e->module);
	change_window_title(e->window, title);
	g_free(title);

	e->is_changed = FALSE;
}
Example #15
0
void on_buffer_changed(GtkTextBuffer *textbuffer, gpointer user_data)
{
	GtkTextIter start;
	GtkTextIter end;

	gtk_text_buffer_get_start_iter(textbuffer, &start);
	gtk_text_buffer_get_end_iter(textbuffer, &end);
	if (note)
		g_free(note);
	note = gtk_text_buffer_get_text(textbuffer, &start, &end, FALSE);
	XI_message(("note: %s", note));
}
Example #16
0
void
editor_load_note(EDITOR *e, const gchar *module_name, const gchar *key)
{
	gchar *title = NULL, *text = NULL;

	if (e->is_changed)
		_save_note(e);

	if (module_name) {
		if (e->module)
			g_free(e->module);
		e->module = g_strdup(module_name);
	}
	if (key) {
		if (e->key)
			g_free(e->key);
		e->key = g_strdup(key);
	}

	text = main_get_raw_text((gchar *)e->module, (gchar *)e->key);

	if ((text == NULL) || strlen(text) == 0) {
		if (text)
			g_free(text);

		/* new empty document from template */
		gchar *fname = g_build_filename(settings.gSwordDir, "studypad.spt", NULL);
		XI_message(("editor load NOTE [%s]", fname));
		text = inhale_text_from_file(fname);
		g_free(fname);
	}

	if (text && strlen(text)) {
		webkit_web_view_load_string((WebKitWebView *)
					    e->html_widget,
					    text,
					    "text/html", "utf_8",
					    "file://");
	}

	e->is_changed = FALSE;
	if (e->type == NOTE_EDITOR) {
		e->navbar.valid_key = TRUE;
		main_navbar_versekey_set(e->navbar, e->key);
	}

	if (text)
		g_free(text);

	title = g_strdup_printf("%s - %s", e->module, e->key);
	change_window_title(e->window, title);
	g_free(title);
}
Example #17
0
static void _save_file(EDITOR *e)
{
	GtkRecentManager *rm = NULL;
	GString *data = g_string_new("");

	editor_get_document_content(data, e);
	XI_message(("%s", data->str));

	if (!e->filename || (0 == g_strcmp0("Untitled document", e->filename)) || g_strrstr(e->filename, ".spt")) {
		GtkWidget *dialog = gtk_file_chooser_dialog_new("Save as",		      //const gchar *title,
								NULL,			      //GtkWindow *parent,
								GTK_FILE_CHOOSER_ACTION_SAVE, //GtkFileChooserAction action,
#ifdef HAVE_GTK_310
								"_OK",
								GTK_RESPONSE_OK,
								"_Cancel",
								GTK_RESPONSE_CANCEL,
#else
								GTK_STOCK_OK,
								GTK_RESPONSE_OK,
								GTK_STOCK_CANCEL,
								GTK_RESPONSE_CANCEL,
#endif
								NULL);
		gtk_file_chooser_set_do_overwrite_confirmation(GTK_FILE_CHOOSER(dialog), TRUE);

		gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(dialog),
						    settings.studypaddir);
		if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_OK) {
			gchar *filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
			e->filename = g_strdup(filename);
			GFile *gfile = g_file_parse_name(filename);
			g_file_replace_contents(gfile, data->str, data->len, NULL, TRUE, G_FILE_CREATE_NONE, NULL, NULL, NULL); //GError **error
		}
		change_window_title(e->window, e->filename);
		gtk_widget_destroy(dialog);

	} else {

		GFile *gfile = g_file_parse_name(e->filename);
		g_file_replace_contents(gfile, data->str, data->len, NULL, TRUE, G_FILE_CREATE_NONE, NULL, NULL, NULL); //GError **error
	}

	rm = gtk_recent_manager_get_default();
	gtk_recent_manager_add_item(rm, e->filename);

	e->is_changed = FALSE;
	g_string_free(data, TRUE);
}
Example #18
0
static void _save_note(EDITOR *e)
{
	GString *string;

	string = g_string_sized_new(4096);

	gtk_html_export(gtkhtml_editor_get_html(GTKHTML_EDITOR(e->window)),
			"text/html",
			(GtkHTMLSaveReceiverFn)_save_receiver, string);
	XI_message(("\n_save_note: %s\n", string->str));
	main_save_note(e->module, e->key, string->str);

	g_string_free(string, TRUE);
	gtkhtml_editor_drop_undo(GTKHTML_EDITOR(e->window));
	gtkhtml_editor_set_changed(GTKHTML_EDITOR(e->window), FALSE);
}
Example #19
0
static void recent_item_cb(GtkRecentChooser *chooser, EDITOR *e)
{
	gchar *file_uri = gtk_recent_chooser_get_current_uri(chooser);

	XI_message(("file_uri: %s", file_uri));
	if (e->filename)
		g_free(e->filename);
	e->filename = g_strdup(file_uri);

	//editor_open_recent (file_uri, e);
	_load_file(e, file_uri);
	xml_set_value("Xiphos", "studypad", "lastfile", e->filename);
	settings.studypadfilename = xml_get_value("studypad", "lastfile");

	change_window_title(e->window, e->filename);
}
Example #20
0
static void on_edit_percomm_activate(GtkMenuItem *menuitem,
				     gpointer user_data)
{
	gchar *key;

	if (is_dialog)
		key = g_strdup(dialog->key);
	else
		key = _get_key(menu_mod_name);
	if (key) {
		XI_message(("\n\npercomm key: %s\n\n", key));
		editor_create_new((gchar *)user_data, (gchar *)key,
				  NOTE_EDITOR);
		g_free(key);
	}
}
Example #21
0
void _get_export_filename(void)
{
#ifndef USE_GTKBUILDER
	gchar *glade_file;
	GladeXML *gxml;
#endif
	GtkWidget *fdialog;
	filename = NULL;

#ifndef USE_GTKBUILDER
	glade_file =
	    gui_general_user_file("export-dialog" UI_SUFFIX, FALSE);
	g_return_if_fail(glade_file != NULL);
	XI_message(("%s", glade_file));
#endif

/* build the widget */
#ifdef USE_GTKBUILDER
	fdialog = gtk_file_chooser_dialog_new("Save Export File",
					      NULL,
					      GTK_FILE_CHOOSER_ACTION_SAVE,
#ifdef HAVE_GTK_310
					      "_Cancel",
					      GTK_RESPONSE_CANCEL, "_Save",
					      GTK_RESPONSE_ACCEPT,
#else
					      GTK_STOCK_CANCEL,
					      GTK_RESPONSE_CANCEL,
					      GTK_STOCK_SAVE,
					      GTK_RESPONSE_ACCEPT,
#endif
					      NULL);
#else
	gxml = glade_xml_new(glade_file, "filechooserdialog1", NULL);

	fdialog = glade_xml_get_widget(gxml, "filechooserdialog1");
#endif
	g_signal_connect(fdialog,
			 "response",
			 G_CALLBACK(on_filechooserdialog_response),
			 (GtkFileChooser *)fdialog);

#ifdef USE_GTKBUILDER
	gtk_dialog_run(GTK_DIALOG(fdialog));
#endif
}
Example #22
0
G_MODULE_EXPORT void action_save_activate_cb(GtkWidget *widget, EDITOR *e)
{
	switch (e->type) {
	case STUDYPAD_EDITOR:
		_save_file(e);
		break;
	case NOTE_EDITOR:
		_save_note(e);
		break;
	case BOOK_EDITOR:
		_save_book(e);
		break;
	default:
		XI_message(("\naction_save_cb oops!\n"));
		break;
	}
}
Example #23
0
static void action_save_cb(GtkAction *action, EDITOR *e)
{
	switch (e->type) {
	case STUDYPAD_EDITOR:
		_save_file(e);
		break;
	case NOTE_EDITOR:
		_save_note(e);
		break;
	case BOOK_EDITOR:
		_save_book(e);
		break;
	default:
		XI_message(("\naction_save_cb oops!\n"));
		break;
	}
}
Example #24
0
GtkWidget *gui_create_editor_tree(EDITOR *editor)
{
	GtkWidget *treeview;
	treeview = gtk_tree_view_new();
	gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(treeview), FALSE);

	main_add_mod_tree_columns(GTK_TREE_VIEW(treeview));
	XI_message(("\ngui_create_editor_tree Mod Name:%s\n",
		    editor->module));
	main_load_book_tree_in_editor(GTK_TREE_VIEW(treeview),
				      editor->module);
	menu = create_edit_tree_menu(editor);

	g_signal_connect_after((gpointer)treeview,
			       "button_release_event",
			       G_CALLBACK(on_button_release), editor);
	return treeview;
}
Example #25
0
static gboolean button_release_handler(GtkWidget *widget, GdkEventButton *event)
{
	if (event->type == GDK_BUTTON_RELEASE && db_click) {
		XI_message((" button 1 = %s", "double click!\n"));

#ifdef USE_WEBKIT2
		webkit_web_view_execute_editing_command(WEBKIT_WEB_VIEW(widget),
							WEBKIT_EDITING_COMMAND_COPY);
#else
		if (webkit_web_view_has_selection(WEBKIT_WEB_VIEW(widget))) {
			webkit_web_view_copy_clipboard(WEBKIT_WEB_VIEW(widget));
		}
#endif
		GtkClipboard *clipboard = gtk_widget_get_clipboard(widget, GDK_SELECTION_CLIPBOARD);
		gtk_clipboard_request_text(clipboard, gui_get_clipboard_text_for_lookup, NULL);
	}

	return FALSE;
}
Example #26
0
static void sync_with_main(const gchar *key)
{
	gchar *buf = NULL;

	if (key)
		buf = (gchar *)main_url_encode(key);
	else
		buf = (gchar *)
		    main_url_encode(xml_get_value("keys", "verse"));
	XI_message(("%s", buf));
	if (buf && (strlen(buf) > 3)) {
		gchar *url =
		    g_strdup_printf("passagestudy.jsp?action=showParallel&"
				    "type=verse&value=%s", buf);

		main_url_handler(url, TRUE);
		g_free(url);
	}
}
Example #27
0
G_MODULE_EXPORT void
action_delete_item_activate_cb(GtkWidget *widget, EDITOR *e)
{
	if (e->studypad)
		return;

	gchar *buf = 
		g_strdup_printf("<span weight=\"bold\" size=\"larger\">%s %s?</span>",
				_("Are you sure you want to delete the note for"), e->key);

	if (gui_yes_no_dialog(buf,
#ifdef HAVE_GTK_310
			      "dialog-warning"
#else
			      GTK_STOCK_DIALOG_WARNING
#endif
			      )) {

		main_delete_note(e->module, e->key);

		/* new empty document from template */
		gchar *fname = g_build_filename(settings.gSwordDir, "studypad.spt", NULL);
		XI_message(("action delete item [%s]", fname));
		gchar *text = inhale_text_from_file(fname);
		g_free(fname);

		if (text && strlen(text)) {
			webkit_web_view_load_string((WebKitWebView *)
						    e->html_widget,
						    text,
						    "text/html", "utf_8",
						    "file://");
		}
		if (text)
			g_free(text);
	}

	g_free(buf);
	e->is_changed = FALSE;
}
Example #28
0
/* this is the link handler for when a link is clicked */
static void link_handler(GtkWidget *widget,
#ifdef USE_WEBKIT2
			 WebKitHitTestResult *hit_test_result,
			 guint modifiers,
#else
			 gchar *title,
			 gchar *uri,
#endif
			 gpointer user_data)
{
#ifdef USE_WEBKIT2
	const char *uri;
	uri = webkit_hit_test_result_get_link_uri(hit_test_result);
#endif

	WkHtmlPriv *priv;
	priv = WK_HTML_GET_PRIVATE(WK_HTML(widget));
	XI_message(("html_link_message: uri = %s", (uri ? uri : "-none-")));

	if (x_uri) {
		g_free(x_uri);
		x_uri = NULL;
	}

	if (uri) {
		x_uri = g_strdup(uri);
		in_url = 1;
	} else
		in_url = 0;

	g_signal_emit(widget, signals[URI_SELECTED], 0, uri, FALSE);

	if (uri) {
		if (priv->is_dialog)
			main_dialogs_url_handler(priv->dialog, uri, FALSE);
		else
			main_url_handler(uri, FALSE);
	}
}
Example #29
0
static void _save_file(EDITOR *e)
{
	const gchar *filename;
	gboolean as_html;
	GError *error = NULL;

	if (gtkhtml_editor_get_filename(GTKHTML_EDITOR(e->window)) == NULL)
		if (save_dialog(GTKHTML_EDITOR(e->window), e) ==
		    GTK_RESPONSE_CANCEL)
			return;

	filename = gtkhtml_editor_get_filename(GTKHTML_EDITOR(e->window));
	as_html = gtkhtml_editor_get_html_mode(GTKHTML_EDITOR(e->window));

	XI_message(("\n_save_file filename: %s\n", filename));

	gtkhtml_editor_save(GTKHTML_EDITOR(e->window), filename, as_html,
			    &error);
	handle_error(&error);

	gtkhtml_editor_drop_undo(GTKHTML_EDITOR(e->window));
	gtkhtml_editor_set_changed(GTKHTML_EDITOR(e->window), FALSE);
}
Example #30
0
/* save if needed is done in treeky-editor.c before calling editor_load_book() */
void editor_load_book(EDITOR *e)
{
	gchar *title = NULL;
	gchar *text = NULL;

	if (!g_ascii_isdigit(e->key[0]))
		return; /* make sure is a number (offset) */

	title = g_strdup_printf("%s", e->module);
	XI_message(("book: %s\noffset :%s", e->module, e->key));

	if (atol(e->key) != 0)
		text = main_get_book_raw_text(e->module, e->key);
	else
		text = g_strdup(e->module);

	if (strlen(text)) {
		gtkhtml_editor_set_text_html(GTKHTML_EDITOR(e->window),
					     text, strlen(text));
		gtkhtml_editor_drop_undo(GTKHTML_EDITOR(e->window));
		gtkhtml_editor_set_changed(GTKHTML_EDITOR(e->window),
					   FALSE);
	} else {
		gtkhtml_editor_set_text_html(GTKHTML_EDITOR(e->window),
					     "", strlen(""));
		gtkhtml_editor_drop_undo(GTKHTML_EDITOR(e->window));
		gtkhtml_editor_set_changed(GTKHTML_EDITOR(e->window),
					   FALSE);
	}

	change_window_title(e->window, title);

	if (text)
		g_free(text);
	if (title)
		g_free(title);
}