ekiga r6457 - trunk/lib/engine/gui/gtk-frontend
- From: jpuydt svn gnome org
- To: svn-commits-list gnome org
- Subject: ekiga r6457 - trunk/lib/engine/gui/gtk-frontend
- Date: Tue, 15 Jul 2008 13:58:14 +0000 (UTC)
Author: jpuydt
Date: Tue Jul 15 13:58:13 2008
New Revision: 6457
URL: http://svn.gnome.org/viewvc/ekiga?rev=6457&view=rev
Log:
Made use of the new code smiley+anchor code in the chat area.
Modified:
trunk/lib/engine/gui/gtk-frontend/chat-area.cpp
Modified: trunk/lib/engine/gui/gtk-frontend/chat-area.cpp
==============================================================================
--- trunk/lib/engine/gui/gtk-frontend/chat-area.cpp (original)
+++ trunk/lib/engine/gui/gtk-frontend/chat-area.cpp Tue Jul 15 13:58:13 2008
@@ -36,9 +36,9 @@
*/
#include "chat-area.h"
-#include "gmtextviewaddon.h"
-#include "gmtextbufferaddon.h"
-#include "gmtexttagaddon.h"
+#include "gm-text-buffer-enhancer.h"
+#include "gm-text-anchored-tag.h"
+#include "gm-text-smiley.h"
class ChatAreaHelper;
@@ -47,6 +47,7 @@
Ekiga::Chat* chat;
sigc::connection connection;
ChatAreaHelper* helper;
+ GmTextBufferEnhancer* enhancer;
/* we contain those, so no need to unref them */
GtkWidget* text_view;
@@ -119,7 +120,8 @@
str = g_strdup_printf ("NOTICE: %s\n", txt);
buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (self->priv->text_view));
gtk_text_buffer_get_end_iter (buffer, &iter);
- gtk_text_buffer_insert_with_regex (buffer, &iter, str);
+ gm_text_buffer_enhancer_insert_text (self->priv->enhancer, &iter,
+ str, -1);
g_free (str);
}
@@ -135,7 +137,8 @@
str = g_strdup_printf ("%s says: %s\n", from, txt);
buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (self->priv->text_view));
gtk_text_buffer_get_end_iter (buffer, &iter);
- gtk_text_buffer_insert_with_regex (buffer, &iter, str);
+ gm_text_buffer_enhancer_insert_text (self->priv->enhancer, &iter,
+ str, -1);
g_free (str);
}
@@ -255,6 +258,12 @@
self = (ChatArea*)obj;
+ if (self->priv->enhancer != NULL) {
+
+ g_object_unref (self->priv->enhancer);
+ self->priv->enhancer = NULL;
+ }
+
parent_class->dispose (obj);
}
@@ -359,6 +368,9 @@
G_GNUC_UNUSED gpointer g_class)
{
ChatArea* self = NULL;
+ GtkTextBuffer* buffer = NULL;
+ GmTextBufferEnhancerHelperIFace* helper = NULL;
+ GtkTextTag* tag = NULL;
self = (ChatArea*)instance;
@@ -367,11 +379,9 @@
ChatAreaPrivate);
self->priv->chat = NULL;
- /* first, the area has a text view with a quite rich set of features */
- GtkTextBuffer* buffer = NULL;
- GtkTextTag* tag = NULL;
+ /* first the area has a text view to display */
- self->priv->text_view = gtk_text_view_new_with_regex ();
+ self->priv->text_view = gtk_text_view_new ();
buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (self->priv->text_view));
gtk_text_view_set_editable (GTK_TEXT_VIEW (self->priv->text_view), FALSE);
@@ -382,35 +392,49 @@
gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (self->priv->text_view),
GTK_WRAP_WORD);
+ gtk_widget_show (self->priv->text_view);
+ gtk_box_pack_start (GTK_BOX (self), self->priv->text_view,
+ TRUE, TRUE, 2);
+
+ /* then we want to enhance this display */
+
+ self->priv->enhancer = gm_text_buffer_enhancer_new (buffer);
+
+ helper = gm_text_smiley_new ();
+ gm_text_buffer_enhancer_add_helper (self->priv->enhancer, helper);
+ g_object_unref (helper);
+
tag = gtk_text_buffer_create_tag (buffer, "bold",
"weight", PANGO_WEIGHT_BOLD,
NULL);
- if (gtk_text_tag_set_regex (tag, "<b>.*</b>"))
- gtk_text_tag_set_regex_display (tag, gtk_text_buffer_insert_markup);
- else
- g_object_unref (tag);
+ helper = gm_text_anchored_tag_new ("<b>", tag, TRUE);
+ gm_text_buffer_enhancer_add_helper (self->priv->enhancer, helper);
+ g_object_unref (helper);
+ helper = gm_text_anchored_tag_new ("</b>", tag, FALSE);
+ gm_text_buffer_enhancer_add_helper (self->priv->enhancer, helper);
+ g_object_unref (helper);
tag = gtk_text_buffer_create_tag (buffer, "italic",
"style", PANGO_STYLE_ITALIC,
NULL);
- if (gtk_text_tag_set_regex (tag, "<i>.*</i>"))
- gtk_text_tag_set_regex_display (tag, gtk_text_buffer_insert_markup);
- else
- g_object_unref (tag);
+ helper = gm_text_anchored_tag_new ("<i>", tag, TRUE);
+ gm_text_buffer_enhancer_add_helper (self->priv->enhancer, helper);
+ g_object_unref (helper);
+ helper = gm_text_anchored_tag_new ("</i>", tag, FALSE);
+ gm_text_buffer_enhancer_add_helper (self->priv->enhancer, helper);
+ g_object_unref (helper);
tag = gtk_text_buffer_create_tag (buffer, "underline",
"underline", PANGO_UNDERLINE_SINGLE,
NULL);
- if (gtk_text_tag_set_regex (tag, "<u>.*</u>"))
- gtk_text_tag_set_regex_display (tag, gtk_text_buffer_insert_markup);
- else
- g_object_unref (tag);
-
- gtk_widget_show (self->priv->text_view);
- gtk_box_pack_start (GTK_BOX (self), self->priv->text_view,
- TRUE, TRUE, 2);
+ helper = gm_text_anchored_tag_new ("<u>", tag, TRUE);
+ gm_text_buffer_enhancer_add_helper (self->priv->enhancer, helper);
+ g_object_unref (helper);
+ helper = gm_text_anchored_tag_new ("</u>", tag, FALSE);
+ gm_text_buffer_enhancer_add_helper (self->priv->enhancer, helper);
+ g_object_unref (helper);
- /* and then the chat area has a nice entry system */
+ /* and finally the chat area has a nice entry system */
GtkWidget* vbox = NULL;
GtkWidget* bbox = NULL;
GtkWidget* button = NULL;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]