static void on_query_changed (MugQueryBar * bar, const char *query, MugData * mugdata) { int count; /* clear the old message */ mug_msg_view_set_msg (MUG_MSG_VIEW (mugdata->msgview), NULL); count = mug_msg_list_view_query (MUG_MSG_LIST_VIEW (mugdata->mlist), query); if (count >= 0) { gchar *msg = g_strdup_printf ("%d message%s found matching '%s'", count, count > 1 ? "s" : "", mug_msg_list_view_get_query (MUG_MSG_LIST_VIEW (mugdata->mlist))); gtk_statusbar_push (GTK_STATUSBAR (mugdata->statusbar), 0, msg); g_free (msg); mug_msg_list_view_move_first (MUG_MSG_LIST_VIEW (mugdata->mlist)); gtk_widget_grab_focus (GTK_WIDGET (mugdata->mlist)); } if (count == 0) /* nothing found */ mug_query_bar_grab_focus (MUG_QUERY_BAR (bar)); }
static GtkWidget * mug_query_area (MugData * mugdata) { GtkWidget *queryarea, *paned, *scrolled; #ifdef HAVE_GTK3 queryarea = gtk_box_new (GTK_ORIENTATION_VERTICAL, 2); paned = gtk_paned_new (GTK_ORIENTATION_VERTICAL); #else queryarea = gtk_vbox_new (FALSE, 2); paned = gtk_vpaned_new (); #endif /*!HAVE_GTK3*/ mugdata->mlist = mug_msg_list_view_new (mu_runtime_path(MU_RUNTIME_PATH_XAPIANDB)); scrolled = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_container_add (GTK_CONTAINER (scrolled), mugdata->mlist); gtk_paned_add1 (GTK_PANED (paned), scrolled); mugdata->msgview = mug_msg_view_new (); mug_msg_view_set_note (MUG_MSG_VIEW(mugdata->msgview), "<h1>Welcome to <i>mug</i>!</h1><hr>" "<tt>mug</tt> is an experimental UI for <tt>mu</tt>, which will " "slowly evolve into something useful.<br><br>Enjoy the ride."); g_signal_connect (G_OBJECT (mugdata->mlist), "msg-selected", G_CALLBACK (on_msg_selected), mugdata); g_signal_connect (G_OBJECT (mugdata->mlist), "error-occured", G_CALLBACK (on_list_view_error), mugdata); gtk_paned_add2 (GTK_PANED (paned), mugdata->msgview); mugdata->querybar = mug_querybar (); g_signal_connect (G_OBJECT (mugdata->querybar), "query-changed", G_CALLBACK (on_query_changed), mugdata); gtk_box_pack_start (GTK_BOX (queryarea), mugdata->querybar, FALSE, FALSE, 2); gtk_box_pack_start (GTK_BOX (queryarea), paned, TRUE, TRUE, 2); gtk_widget_show_all (queryarea); return queryarea; }
static GtkWidget * mug_query_area (MugData * mugdata) { GtkWidget *queryarea; GtkWidget *paned; GtkWidget *scrolled; #ifdef HAVE_GTK3 queryarea = gtk_box_new (GTK_ORIENTATION_VERTICAL, 2); paned = gtk_paned_new (GTK_ORIENTATION_VERTICAL); #else queryarea = gtk_vbox_new (FALSE, 2); paned = gtk_vpaned_new (); #endif /*!HAVE_GTK3 */ mugdata->mlist = mug_msg_list_view_new (mu_runtime_path(MU_RUNTIME_PATH_XAPIANDB)); scrolled = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_container_add (GTK_CONTAINER (scrolled), mugdata->mlist); gtk_paned_add1 (GTK_PANED (paned), scrolled); mugdata->msgview = mug_msg_view_new (); mug_msg_view_set_msg (MUG_MSG_VIEW (mugdata->msgview), NULL); g_signal_connect (G_OBJECT (mugdata->mlist), "msg-selected", G_CALLBACK (on_msg_selected), mugdata); g_signal_connect (G_OBJECT (mugdata->mlist), "error-occured", G_CALLBACK (on_list_view_error), mugdata); gtk_paned_add2 (GTK_PANED (paned), mugdata->msgview); mugdata->querybar = mug_querybar (); g_signal_connect (G_OBJECT (mugdata->querybar), "query-changed", G_CALLBACK (on_query_changed), mugdata); gtk_box_pack_start (GTK_BOX (queryarea), mugdata->querybar, FALSE, FALSE, 2); gtk_box_pack_start (GTK_BOX (queryarea), paned, TRUE, TRUE, 2); gtk_widget_show_all (queryarea); return queryarea; }
static void on_msg_selected (MugMsgListView * mlist, const char *mpath, MugData * mugdata) { mug_msg_view_set_msg (MUG_MSG_VIEW (mugdata->msgview), mpath); }