diff options
author | Marco Pesenti Gritti <marco@gnome.org> | 2004-06-22 03:25:41 +0800 |
---|---|---|
committer | Marco Pesenti Gritti <marco@src.gnome.org> | 2004-06-22 03:25:41 +0800 |
commit | bcc276fa99bbded1b5b42503dfb2feca30c48e24 (patch) | |
tree | 07f68b570bba65521d8870eeb9fd3832b9d3a497 /lib/ephy-gui.c | |
parent | 54d27764848058ad591478a56a67ec49bee20efe (diff) | |
download | gsoc2013-epiphany-bcc276fa99bbded1b5b42503dfb2feca30c48e24.tar gsoc2013-epiphany-bcc276fa99bbded1b5b42503dfb2feca30c48e24.tar.gz gsoc2013-epiphany-bcc276fa99bbded1b5b42503dfb2feca30c48e24.tar.bz2 gsoc2013-epiphany-bcc276fa99bbded1b5b42503dfb2feca30c48e24.tar.lz gsoc2013-epiphany-bcc276fa99bbded1b5b42503dfb2feca30c48e24.tar.xz gsoc2013-epiphany-bcc276fa99bbded1b5b42503dfb2feca30c48e24.tar.zst gsoc2013-epiphany-bcc276fa99bbded1b5b42503dfb2feca30c48e24.zip |
Factor out the helper to select a treeview row by column and use it also
2004-06-21 Marco Pesenti Gritti <marco@gnome.org>
* lib/ephy-gui.c: (ephy_gui_help), (ephy_gui_select_row_by_key):
* lib/widgets/ephy-node-view.c: (ephy_node_view_key_press_cb):
* src/bookmarks/ephy-topics-selector.c: (topic_key_pressed):
Factor out the helper to select a treeview row by column and
use it also in the topic selector.
* lib/ephy-gui.h:
* src/bookmarks/ephy-bookmarks-editor.c:
* src/bookmarks/ephy-new-bookmark.c:
* src/ephy-history-window.c:
* src/pdm-dialog.c:
* src/ppview-toolbar.c:
* src/prefs-dialog.c:
* src/window-commands.c:
* embed/downloader-view.c:
Remove braindead gtk.h inclusion and deal with
fallout headers.
Diffstat (limited to 'lib/ephy-gui.c')
-rw-r--r-- | lib/ephy-gui.c | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/lib/ephy-gui.c b/lib/ephy-gui.c index 7fa42634b..09ef4ef4a 100644 --- a/lib/ephy-gui.c +++ b/lib/ephy-gui.c @@ -31,6 +31,10 @@ #include <libgnome/gnome-help.h> #include <gtk/gtktreemodel.h> #include <gtk/gtkmessagedialog.h> +#include <gtk/gtkhbox.h> +#include <gtk/gtkimage.h> +#include <gtk/gtklabel.h> +#include <gtk/gtkstock.h> /* Styles for tab labels */ GtkStyle *loading_text_style = NULL; @@ -159,3 +163,54 @@ ephy_gui_help (GtkWindow *parent, g_error_free (err); } } + +gboolean +ephy_gui_select_row_by_key (GtkTreeView *treeview, gint column, guint32 unicode) +{ + GtkTreeModel *model; + GtkTreeIter iter, last_iter; + GtkTreePath *path; + GValue value = {0, }; + char *string; + char *event_string; + gboolean found = FALSE; + char outbuf[6]; + int length; + + model = gtk_tree_view_get_model (treeview); + + length = g_unichar_to_utf8 (unicode, outbuf); + event_string = g_utf8_casefold (outbuf, length); + + if (!gtk_tree_model_get_iter_first (model, &iter)) + { + g_free (event_string); + return FALSE; + } + + do + { + last_iter = iter; + gtk_tree_model_get_value (model, &iter, column, &value); + + string = g_utf8_casefold (g_value_get_string (&value), -1); + g_utf8_strncpy (string, string, 1); + found = (g_utf8_collate (string, event_string) == 0); + + g_free (string); + g_value_unset (&value); + } + while (!found && gtk_tree_model_iter_next (model, &iter)); + + if (!found) + { + iter = last_iter; + } + + path = gtk_tree_model_get_path (model, &iter); + gtk_tree_view_set_cursor (GTK_TREE_VIEW (treeview), path, NULL, FALSE); + gtk_tree_path_free (path); + g_free (event_string); + + return TRUE; +} |