#include <modest-wp-text-view.h>
#include <wptextbuffer.h>
#include <modest-scrollable.h>
+#include <modest-isearch-toolbar.h>
#include <hildon/hildon-touch-selector.h>
#include <hildon/hildon-picker-dialog.h>
#include "modest-msg-edit-window-ui-dimming.h"
static void update_window_title (ModestMsgEditWindow *window);
/* Find toolbar */
-static void modest_msg_edit_window_find_toolbar_search (GtkWidget *widget,
- ModestMsgEditWindow *window);
-static void modest_msg_edit_window_find_toolbar_close (GtkWidget *widget,
- ModestMsgEditWindow *window);
+static void modest_msg_edit_window_isearch_toolbar_search (GtkWidget *widget,
+ ModestMsgEditWindow *window);
+static void modest_msg_edit_window_isearch_toolbar_close (GtkWidget *widget,
+ ModestMsgEditWindow *window);
static gboolean gtk_text_iter_forward_search_insensitive (const GtkTextIter *iter,
const gchar *str,
GtkTextIter *match_start,
gint current_size_index;
GtkWidget *size_tool_button_label;
- GtkWidget *find_toolbar;
+ GtkWidget *isearch_toolbar;
gchar *last_search;
GtkWidget *font_dialog;
priv->priority_flags = 0;
- priv->find_toolbar = NULL;
+ priv->isearch_toolbar = NULL;
priv->last_search = NULL;
priv->draft_msg = NULL;
g_signal_connect_after (G_OBJECT (priv->subject_field), "move-cursor", G_CALLBACK (subject_field_move_cursor), obj);
g_signal_connect (G_OBJECT (priv->subject_field), "insert-text", G_CALLBACK (subject_field_insert_text), obj);
- g_signal_connect (G_OBJECT (priv->find_toolbar), "search", G_CALLBACK (modest_msg_edit_window_find_toolbar_search), obj);
- g_signal_connect (G_OBJECT (priv->find_toolbar), "close", G_CALLBACK (modest_msg_edit_window_find_toolbar_close), obj);
+ g_signal_connect (G_OBJECT (priv->isearch_toolbar), "isearch-search",
+ G_CALLBACK (modest_msg_edit_window_isearch_toolbar_search), obj);
+ g_signal_connect (G_OBJECT (priv->isearch_toolbar), "isearch-close",
+ G_CALLBACK (modest_msg_edit_window_isearch_toolbar_close), obj);
priv->clipboard_change_handler_id =
g_signal_connect (G_OBJECT (gtk_clipboard_get (GDK_SELECTION_PRIMARY)), "owner-change",
#endif
wp_text_buffer_reset_buffer (WP_TEXT_BUFFER (priv->text_buffer), TRUE);
- priv->find_toolbar = hildon_find_toolbar_new (NULL);
- gtk_widget_set_no_show_all (priv->find_toolbar, TRUE);
+ priv->isearch_toolbar = modest_toolkit_factory_create_isearch_toolbar (modest_runtime_get_toolkit_factory (),
+ NULL);
+ gtk_widget_set_no_show_all (priv->isearch_toolbar, TRUE);
/* g_signal_connect (G_OBJECT (obj), "key_pressed", G_CALLBACK (on_key_pressed), NULL) */
hildon_touch_selector_get_current_text
(HILDON_TOUCH_SELECTOR (hildon_picker_button_get_selector (HILDON_PICKER_BUTTON (priv->from_field)))));
modest_msg_edit_window_setup_toolbar (MODEST_MSG_EDIT_WINDOW (obj));
- modest_window_add_toolbar (MODEST_WINDOW (obj), GTK_TOOLBAR (priv->find_toolbar));
+ modest_window_add_toolbar (MODEST_WINDOW (obj), GTK_TOOLBAR (priv->isearch_toolbar));
/* Init window */
connect_signals (MODEST_MSG_EDIT_WINDOW(obj));
}
void
-modest_msg_edit_window_toggle_find_toolbar (ModestMsgEditWindow *window,
- gboolean show)
+modest_msg_edit_window_toggle_isearch_toolbar (ModestMsgEditWindow *window,
+ gboolean show)
{
ModestMsgEditWindowPrivate *priv = NULL;
g_return_if_fail (MODEST_IS_MSG_EDIT_WINDOW (window));
priv = MODEST_MSG_EDIT_WINDOW_GET_PRIVATE (window);
- gtk_widget_set_no_show_all (priv->find_toolbar, FALSE);
+ gtk_widget_set_no_show_all (priv->isearch_toolbar, FALSE);
if (show) {
- gtk_widget_show_all (priv->find_toolbar);
- hildon_find_toolbar_highlight_entry (HILDON_FIND_TOOLBAR (priv->find_toolbar), TRUE);
+ gtk_widget_show_all (priv->isearch_toolbar);
+ modest_isearch_toolbar_highlight_entry (MODEST_ISEARCH_TOOLBAR (priv->isearch_toolbar), TRUE);
} else {
- gtk_widget_hide_all (priv->find_toolbar);
+ gtk_widget_hide_all (priv->isearch_toolbar);
gtk_widget_grab_focus (priv->msg_body);
}
}
static void
-modest_msg_edit_window_find_toolbar_search (GtkWidget *widget,
- ModestMsgEditWindow *window)
+modest_msg_edit_window_isearch_toolbar_search (GtkWidget *widget,
+ ModestMsgEditWindow *window)
{
- gchar *current_search = NULL;
+ const gchar *current_search = NULL;
ModestMsgEditWindowPrivate *priv = MODEST_MSG_EDIT_WINDOW_GET_PRIVATE (window);
gboolean result;
GtkTextIter selection_start, selection_end;
return;
}
- g_object_get (G_OBJECT (widget), "prefix", ¤t_search, NULL);
+ current_search = modest_isearch_toolbar_get_search (MODEST_ISEARCH_TOOLBAR (widget));
if ((current_search == NULL) || (strcmp (current_search, "") == 0)) {
- g_free (current_search);
g_free (priv->last_search);
priv->last_search = NULL;
/* Information banner about empty search */
g_free (priv->last_search);
priv->last_search = NULL;
}
- g_free (current_search);
}
gboolean
}
static void
-modest_msg_edit_window_find_toolbar_close (GtkWidget *widget,
- ModestMsgEditWindow *window)
+modest_msg_edit_window_isearch_toolbar_close (GtkWidget *widget,
+ ModestMsgEditWindow *window)
{
- modest_msg_edit_window_toggle_find_toolbar (window, FALSE);
+ modest_msg_edit_window_toggle_isearch_toolbar (window, FALSE);
}
void
#include <glib/gi18n.h>
#ifdef MODEST_TOOLKIT_HILDON2
#include <modest-hildon-pannable-area-scrollable.h>
+#include <modest-hildon-find-toolbar.h>
#include <hildon/hildon.h>
#else
#include <modest-scrolled-window-scrollable.h>
static GtkWidget * modest_toolkit_factory_create_scrollable_default (ModestToolkitFactory *self);
static GtkWidget * modest_toolkit_factory_create_check_button_default (ModestToolkitFactory *self, const gchar *label);
static GtkWidget * modest_toolkit_factory_create_check_menu_default (ModestToolkitFactory *self, const gchar *label);
+static GtkWidget * modest_toolkit_factory_create_isearch_toolbar_default (ModestToolkitFactory *self, const gchar *label);
/* globals */
static GObjectClass *parent_class = NULL;
klass->create_scrollable = modest_toolkit_factory_create_scrollable_default;
klass->create_check_button = modest_toolkit_factory_create_check_button_default;
klass->create_check_menu = modest_toolkit_factory_create_check_menu_default;
+ klass->create_isearch_toolbar = modest_toolkit_factory_create_isearch_toolbar_default;
}
static void
#endif
return result;
}
+
GtkWidget *
modest_toolkit_factory_create_check_menu (ModestToolkitFactory *self, const gchar *label)
{
return GTK_IS_CHECK_MENU_ITEM (widget) || GTK_IS_TOGGLE_BUTTON (widget);
#endif
}
+
+GtkWidget *
+modest_toolkit_factory_create_isearch_toolbar (ModestToolkitFactory *self, const gchar *label)
+{
+ return MODEST_TOOLKIT_FACTORY_GET_CLASS (self)->create_isearch_toolbar (self, label);
+}
+
+static GtkWidget *
+modest_toolkit_factory_create_isearch_toolbar_default (ModestToolkitFactory *self, const gchar *label)
+{
+ GtkWidget *result;
+#ifdef MODEST_TOOLKIT_HILDON2
+ result = modest_hildon_find_toolbar_new (label);
+#else
+ /* TODO: create gtk-only based isearch toolbar implementation */
+ result = gtk_toolbar_new ();
+#endif
+ return result;
+}
+