#include <libempathy/empathy-utils.h>
#include "empathy-live-search.h"
-#include "empathy-gtk-marshal.h"
G_DEFINE_TYPE (EmpathyLiveSearch, empathy_live_search, GTK_TYPE_HBOX)
{
gunichar retval = 0;
GUnicodeType utype;
- gunichar *decomp;
- gsize dlen;
utype = g_unichar_type (ch);
case G_UNICODE_SPACE_SEPARATOR:
default:
ch = g_unichar_tolower (ch);
- decomp = g_unicode_canonical_decomposition (ch, &dlen);
- if (decomp != NULL)
- {
- retval = decomp[0];
- g_free (decomp);
- }
+ g_unichar_fully_decompose (ch, FALSE, &retval, 1);
}
return retval;
}
}
-static GPtrArray *
-strip_utf8_string (const gchar *string)
+GPtrArray *
+empathy_live_search_strip_utf8_string (const gchar *string)
{
GPtrArray *word_array = NULL;
GString *word = NULL;
return FALSE;
}
-static gboolean
-live_search_match_words (const gchar *string,
+gboolean
+empathy_live_search_match_words (const gchar *string,
GPtrArray *words)
{
guint i;
if (priv->stripped_words != NULL)
g_ptr_array_unref (priv->stripped_words);
- priv->stripped_words = strip_utf8_string (text);
+ priv->stripped_words = empathy_live_search_strip_utf8_string (text);
g_object_notify (G_OBJECT (self), "text");
}
G_SIGNAL_RUN_LAST,
0,
NULL, NULL,
- g_cclosure_marshal_VOID__VOID,
+ g_cclosure_marshal_generic,
G_TYPE_NONE, 0);
signals[KEYNAV] = g_signal_new ("key-navigation",
G_SIGNAL_RUN_LAST,
0,
g_signal_accumulator_true_handled, NULL,
- _empathy_gtk_marshal_BOOLEAN__BOXED,
+ g_cclosure_marshal_generic,
G_TYPE_BOOLEAN, 1, GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
param_spec = g_param_spec_object ("hook-widget", "Live Search Hook Widget",
priv = GET_PRIV (self);
- return live_search_match_words (string, priv->stripped_words);
+ return empathy_live_search_match_words (string, priv->stripped_words);
}
gboolean
GPtrArray *words;
gboolean match;
- words = strip_utf8_string (prefix);
- match = live_search_match_words (string, words);
+ words = empathy_live_search_strip_utf8_string (prefix);
+ match = empathy_live_search_match_words (string, words);
if (words != NULL)
g_ptr_array_unref (words);
return match;
}
+GPtrArray *
+empathy_live_search_get_words (EmpathyLiveSearch *self)
+{
+ EmpathyLiveSearchPriv *priv = GET_PRIV (self);
+
+ return priv->stripped_words;
+}