diff --git a/gnome/src/dbus/dbus.c b/gnome/src/dbus/dbus.c index ba064b1cc47836cd9dccf8a850269395846ac4b9..02bd44df8ffab7e1b0864d904a12237959c6407a 100644 --- a/gnome/src/dbus/dbus.c +++ b/gnome/src/dbus/dbus.c @@ -163,7 +163,7 @@ incoming_message_cb(DBusGProxy *proxy UNUSED, const gchar *callID UNUSED, if (call) { widget = &call->_im_widget; id = call->_callID; - new_text_message(call->_callID,msg); + new_text_message(call,msg); } else { conference_obj_t *conf = conferencelist_get(current_calls_tab, callID); if (!conf) { @@ -173,7 +173,7 @@ incoming_message_cb(DBusGProxy *proxy UNUSED, const gchar *callID UNUSED, widget = &conf->_im_widget; id = conf->_confID; - new_text_message(conf->_confID,msg); + new_text_message(conf,msg); } if (!*widget) diff --git a/gnome/src/messaging/message_tab.c b/gnome/src/messaging/message_tab.c index 649773c2d86c666e90f14c2ed9edd8ca3259d4d4..01ba738f7630086c8a9fb057fb4f700b878b928b 100644 --- a/gnome/src/messaging/message_tab.c +++ b/gnome/src/messaging/message_tab.c @@ -32,13 +32,8 @@ #include "../dbus/dbus.h" #include <string.h> -// void add_message_box(ClutterActor* stage, const char* author, const char* message) -// { -// -// } - static GtkWidget *tab_box = NULL; -static GHashTable *tabs = NULL; +static GHashTable *tabs = NULL; GtkWidget *get_tab_box() { @@ -95,10 +90,10 @@ static gboolean on_enter(GtkEntry *entry, gpointer user_data) gtk_entry_set_text(entry,""); } - -message_tab* create_messaging_tab(const char* call_id,const char* title) +//conference_obj_t +message_tab* create_messaging_tab(callable_obj_t* call,const char* title) { - message_tab *tab = g_hash_table_lookup(tabs,call_id); + message_tab *tab = g_hash_table_lookup(tabs,call->_callID); if (tab) { return tab; @@ -124,13 +119,20 @@ message_tab* create_messaging_tab(const char* call_id,const char* title) g_signal_connect(G_OBJECT(line_edit), "activate", G_CALLBACK(on_enter), self); self->widget = vbox; - self->call_id = call_id; + self->call_id = call->_callID; self->title = title; self->buffer = text_buffer; self->entry = line_edit; self->view = text_box_widget; - int ret = gtk_notebook_append_page(GTK_NOTEBOOK(get_tab_box()),vbox,NULL); + GtkWidget *tab_label = gtk_label_new(call->_peer_number); + gchar* label_text; + if (strcmp(call->_display_name,"")) + label_text = call->_display_name; + else + label_text = call->_peer_number; + + int ret = gtk_notebook_append_page(GTK_NOTEBOOK(get_tab_box()),vbox,tab_label); gtk_widget_show (vbox); gtk_widget_show (scoll_area); gtk_widget_show (text_box_widget); @@ -139,7 +141,7 @@ message_tab* create_messaging_tab(const char* call_id,const char* title) if (!tabs) { tabs = g_hash_table_new(NULL,g_str_equal); } - g_hash_table_insert(tabs,(gpointer)call_id,(gpointer)self); + g_hash_table_insert(tabs,(gpointer)call->_callID,(gpointer)self); return self; } diff --git a/gnome/src/messaging/message_tab.h b/gnome/src/messaging/message_tab.h index aa2a023bb2ac64861dbdd86c92dec5a60e3b46eb..577e561af09bdb87ea57678a7d11352715e92d30 100644 --- a/gnome/src/messaging/message_tab.h +++ b/gnome/src/messaging/message_tab.h @@ -36,6 +36,7 @@ #define __MESSAGING_H__ #include <gtk/gtk.h> +#include <callable_obj.h> typedef struct { GtkWidget *widget; @@ -47,7 +48,7 @@ typedef struct { } message_tab; // void add_message_box(ClutterActor* stage, const char* author, const char* message); -message_tab* create_messaging_tab(const char* call_id,const char* title); +message_tab* create_messaging_tab(callable_obj_t* call,const char* title); GtkWidget *get_tab_box(); void new_text_message(gchar* call_id, char* message); diff --git a/gnome/src/uimanager.c b/gnome/src/uimanager.c index 0866eb7bc6a4fd9192ecaa76142c3aec313df54f..7ed10cdfcf80a6bfbd3e9b639c7887594848989f 100644 --- a/gnome/src/uimanager.c +++ b/gnome/src/uimanager.c @@ -652,14 +652,14 @@ call_im(void* foo UNUSED) if (selectedCall) { if (!selectedCall->_im_widget) selectedCall->_im_widget = im_widget_display(selectedCall->_callID); - create_messaging_tab(selectedCall->_callID,"test"); + create_messaging_tab(selectedCall,"test"); } else WARN("Sorry. Instant messaging is not allowed outside a call\n"); } else { if (selectedConf) { if (!selectedConf->_im_widget) selectedConf->_im_widget = im_widget_display(selectedConf->_confID); - create_messaging_tab(selectedConf->_confID,"test"); + create_messaging_tab(selectedConf,"test"); } else WARN("Sorry. Instant messaging is not allowed outside a call\n"); }