gnome-utils r8271 - trunk/logview
- From: cosimoc svn gnome org
- To: svn-commits-list gnome org
- Subject: gnome-utils r8271 - trunk/logview
- Date: Tue, 23 Dec 2008 13:26:45 +0000 (UTC)
Author: cosimoc
Date: Tue Dec 23 13:26:45 2008
New Revision: 8271
URL: http://svn.gnome.org/viewvc/gnome-utils?rev=8271&view=rev
Log:
Implement messages in the findbar for feedback upon search.
Modified:
trunk/logview/logview-findbar.c
trunk/logview/logview-findbar.h
trunk/logview/logview.c
Modified: trunk/logview/logview-findbar.c
==============================================================================
--- trunk/logview/logview-findbar.c (original)
+++ trunk/logview/logview-findbar.c Tue Dec 23 13:26:45 2008
@@ -25,12 +25,16 @@
struct _LogviewFindbarPrivate {
GtkWidget *entry;
+ GtkWidget *message;
GtkToolItem *clear_button;
GtkToolItem *back_button;
GtkToolItem *forward_button;
+ GtkToolItem *status_item;
char *string;
+
+ guint status_bold_id;
};
enum {
@@ -114,6 +118,21 @@
return FALSE;
}
+static gboolean
+unbold_timeout_cb (gpointer user_data)
+{
+ LogviewFindbar *findbar = user_data;
+ PangoFontDescription *desc;
+
+ desc = pango_font_description_new ();
+ gtk_widget_modify_font (findbar->priv->message, desc);
+ pango_font_description_free (desc);
+
+ findbar->priv->status_bold_id = 0;
+
+ return FALSE;
+}
+
static void
logview_findbar_init (LogviewFindbar *findbar)
{
@@ -128,6 +147,8 @@
gtk_toolbar_set_style (gtoolbar, GTK_TOOLBAR_BOTH_HORIZ);
+ priv->status_bold_id = 0;
+
/* Find: |_______| */
w = gtk_alignment_new (0.0, 0.5, 1.0, 1.0);
gtk_alignment_set_padding (GTK_ALIGNMENT (w), 0, 0, 2, 2);
@@ -172,6 +193,16 @@
gtk_toolbar_insert (gtoolbar, priv->clear_button, -1);
gtk_widget_show_all (GTK_WIDGET (priv->clear_button));
+ /* message */
+ priv->status_item = gtk_tool_item_new ();
+ gtk_tool_item_set_expand (priv->status_item, TRUE);
+ priv->message = gtk_label_new ("");
+ gtk_label_set_use_markup (GTK_LABEL (priv->message), TRUE);
+ gtk_misc_set_alignment (GTK_MISC (priv->message), 0.0, 0.5);
+ gtk_container_add (GTK_CONTAINER (priv->status_item), priv->message);
+ gtk_widget_show (priv->message);
+ gtk_toolbar_insert (gtoolbar, priv->status_item, -1);
+
priv->string = NULL;
/* signal handlers */
@@ -278,4 +309,26 @@
g_assert (LOGVIEW_IS_FINDBAR (findbar));
return findbar->priv->string;
+}
+
+void
+logview_findbar_set_message (LogviewFindbar *findbar,
+ const char *text)
+{
+ PangoFontDescription *desc;
+
+ g_assert (LOGVIEW_IS_FINDBAR (findbar));
+
+ if (text) {
+ desc = pango_font_description_new ();
+ pango_font_description_set_weight (desc, PANGO_WEIGHT_BOLD);
+ gtk_widget_modify_font (findbar->priv->message, desc);
+ pango_font_description_free (desc);
+
+ findbar->priv->status_bold_id = g_timeout_add (600, unbold_timeout_cb, findbar);
+ }
+
+ gtk_label_set_text (GTK_LABEL (findbar->priv->message),
+ text != NULL ? text : "");
+ g_object_set (findbar->priv->status_item, "visible", text != NULL, NULL);
}
\ No newline at end of file
Modified: trunk/logview/logview-findbar.h
==============================================================================
--- trunk/logview/logview-findbar.h (original)
+++ trunk/logview/logview-findbar.h Tue Dec 23 13:26:45 2008
@@ -64,6 +64,8 @@
GtkWidget * logview_findbar_new (void);
void logview_findbar_open (LogviewFindbar *findbar);
const char * logview_findbar_get_text (LogviewFindbar *findbar);
+void logview_findbar_set_message (LogviewFindbar *findbar,
+ const char *message);
G_END_DECLS
Modified: trunk/logview/logview.c
==============================================================================
--- trunk/logview/logview.c (original)
+++ trunk/logview/logview.c Tue Dec 23 13:26:45 2008
@@ -434,6 +434,7 @@
LogviewWindow *logview = user_data;
gtk_widget_hide (logview->priv->find_bar);
+ logview_findbar_set_message (LOGVIEW_FINDBAR (logview->priv->find_bar), NULL);
}
static void
@@ -480,6 +481,10 @@
gtk_text_buffer_select_range (buffer, &start_m, &end_m);
gtk_text_buffer_move_mark (buffer, search_start, &start_m);
gtk_text_buffer_move_mark (buffer, search_end, &end_m);
+
+ if (wrapped) {
+ logview_findbar_set_message (LOGVIEW_FINDBAR (logview->priv->find_bar), _("Wrapped"));
+ }
} else {
if (wrapped) {
@@ -492,6 +497,8 @@
gtk_text_buffer_get_iter_at_mark (buffer, &iter, mark);
gtk_text_buffer_move_mark_by_name (buffer, "selection_bound", &iter);
}
+
+ logview_findbar_set_message (LOGVIEW_FINDBAR (logview->priv->find_bar), _("Not found"));
} else {
if (forward) {
gtk_text_buffer_get_start_iter (buffer, &search);
@@ -544,6 +551,8 @@
gtk_text_buffer_move_mark (buffer, search_end, &start);
}
+ logview_findbar_set_message (LOGVIEW_FINDBAR (logview->priv->find_bar), NULL);
+
logview_search_text (logview, TRUE);
return FALSE;
@@ -688,7 +697,7 @@
G_CALLBACK (logview_toggle_statusbar), TRUE },
{ "ShowSidebar", NULL, N_("Side _Pane"), "F9", N_("Show Side Pane"),
G_CALLBACK (logview_toggle_sidebar), TRUE },
- {"ShowCalendar", NULL, N_("Ca_lendar"), "<control>L", N_("Show Calendar Log"),
+ { "ShowCalendar", NULL, N_("Ca_lendar"), "<control>L", N_("Show Calendar Log"),
G_CALLBACK (logview_toggle_calendar), TRUE },
};
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]