Commit 79be156e authored by François Grisez's avatar François Grisez
Browse files

Transfer the description of the friend list in main.ui

parent c578229f
......@@ -261,8 +261,6 @@ void linphone_gtk_call_log_update(GtkWidget *w){
g_signal_connect_swapped(G_OBJECT(select),"changed",(GCallback)call_log_selection_changed,v);
g_signal_connect(G_OBJECT(notebook),"focus-tab",(GCallback)linphone_gtk_call_log_reset_missed_call,NULL);
g_signal_connect(G_OBJECT(v),"button-press-event",(GCallback)linphone_gtk_call_log_button_pressed,NULL);
// gtk_button_set_image(GTK_BUTTON(linphone_gtk_get_widget(w,"call_back_button")),
// create_pixmap (linphone_gtk_get_ui_config("callback_button","status-green.png")));
}
nb=linphone_core_get_missed_calls_count(linphone_gtk_get_core());
if(nb > 0)
......@@ -398,19 +396,3 @@ void linphone_gtk_call_log_response(GtkWidget *w, guint response_id){
g_object_set_data(G_OBJECT(mw),"call_logs",NULL);
gtk_widget_destroy(w);
}
// GtkWidget * linphone_gtk_show_call_logs(void){
// GtkWidget *mw=linphone_gtk_get_main_window();
//
// GtkWidget *w=(GtkWidget*)g_object_get_data(G_OBJECT(linphone_gtk_get_main_window()),"call_logs");
// if (w==NULL){
// w=linphone_gtk_create_window("call_logs");
// // gtk_button_set_image(GTK_BUTTON(linphone_gtk_get_widget(w,"call_back_button")),
// // create_pixmap (linphone_gtk_get_ui_config("callback_button","status-green.png")));
// g_object_set_data(G_OBJECT(mw),"call_logs",w);
// g_signal_connect(G_OBJECT(w),"response",(GCallback)linphone_gtk_call_log_response,NULL);
// gtk_widget_show(w);
// linphone_gtk_call_log_update(w);
// }else gtk_window_present(GTK_WINDOW(w));
// return w;
// }
......@@ -95,7 +95,7 @@ const char* get_display_name(const LinphoneAddress *from){
GtkWidget *create_tab_chat_header(LinphoneChatRoom *cr,const LinphoneAddress *uri){
GtkWidget *w=gtk_hbox_new (FALSE,0);
GtkWidget *i=create_pixmap ("chat.png");
GtkWidget *i = gtk_image_new_from_icon_name("linphone-chat-nothing", GTK_ICON_SIZE_BUTTON);
GtkWidget *l;
GtkWidget *image=gtk_image_new_from_stock(GTK_STOCK_CLOSE,GTK_ICON_SIZE_MENU);
GtkWidget *b=gtk_button_new();
......
......@@ -25,13 +25,12 @@ static GtkWidget *linphone_gtk_create_contact_menu(GtkWidget *contact_list);
enum{
FRIEND_PRESENCE_IMG,
FRIEND_NAME,
FRIEND_PRESENCE_STATUS,
FRIEND_ID,
FRIEND_CHATROOM,
FRIEND_SIP_ADDRESS,
FRIEND_ICON,
FRIEND_CALL,
FRIEND_CHAT,
FRIEND_ICON_SIZE,
FRIEND_LIST_NCOL
};
......@@ -41,88 +40,38 @@ typedef struct _status_picture_tab_t{
} status_picture_tab_t;
status_picture_tab_t status_picture_tab[]={
{ LinphoneStatusOnline, "status-green.png" },
{ LinphoneStatusBusy, "status-orange.png" },
{ LinphoneStatusBeRightBack, "status-orange.png" },
{ LinphoneStatusAway, "status-orange.png" },
{ LinphoneStatusOnThePhone, "status-orange.png" },
{ LinphoneStatusOutToLunch, "status-orange.png" },
{ LinphoneStatusDoNotDisturb, "status-red.png" },
{ LinphoneStatusMoved, "status-orange.png" },
{ LinphoneStatusAltService, "status-orange.png" },
{ LinphoneStatusOffline, "status-offline.png" },
{ LinphoneStatusPending, "status-offline.png" },
{ LinphoneStatusEnd, NULL },
{ LinphoneStatusOnline , "linphone-status-online" },
{ LinphoneStatusBusy , "linphone-status-away" },
{ LinphoneStatusBeRightBack , "linphone-status-away" },
{ LinphoneStatusAway , "linphone-status-away" },
{ LinphoneStatusOnThePhone , "linphone-status-away" },
{ LinphoneStatusOutToLunch , "linphone-status-away" },
{ LinphoneStatusDoNotDisturb , "linphone-status-donotdisturb" },
{ LinphoneStatusMoved , "linphone-status-away" },
{ LinphoneStatusAltService , "linphone-status-away" },
{ LinphoneStatusOffline , "linphone-status-offline" },
{ LinphoneStatusPending , "linphone-status-offline" },
{ LinphoneStatusEnd , NULL }
};
static GdkPixbuf *create_status_picture(LinphoneOnlineStatus ss){
static const char *status_to_icon_name(LinphoneOnlineStatus ss) {
status_picture_tab_t *t=status_picture_tab;
while(t->img!=NULL){
if (ss==t->status){
GdkPixbuf *pixbuf;
pixbuf = create_pixbuf(t->img);
return pixbuf;
if (ss==t->status) {
return t->img;
}
++t;
}
g_error("No pixmap defined for status %i",ss);
g_error("No icon name defined for status %i",ss);
return NULL;
}
static GdkPixbuf *create_call_picture(){
GdkPixbuf *pixbuf;
pixbuf = create_pixbuf("call.png");
return pixbuf;
static GtkWidget *create_status_picture(LinphoneOnlineStatus ss, GtkIconSize icon_size){
const char *icon_name = status_to_icon_name(ss);
if(icon_name) return gtk_image_new_from_icon_name(icon_name, icon_size);
else return NULL;
}
static GdkPixbuf *create_unread_msg(){
GdkPixbuf *pixbuf;
pixbuf = create_pixbuf("active_chat.png");
return pixbuf;
}
static GdkPixbuf *create_chat_picture(){
GdkPixbuf *pixbuf;
pixbuf = create_pixbuf("chat.png");
return pixbuf;
}
static GdkPixbuf *create_composing_unread_msg(){
GdkPixbuf *pixbuf;
pixbuf = create_pixbuf("composing_active_chat.png");
return pixbuf;
}
static GdkPixbuf *create_composing_chat_picture(){
GdkPixbuf *pixbuf;
pixbuf = create_pixbuf("composing_chat.png");
return pixbuf;
}
/*
void linphone_gtk_set_friend_status(GtkWidget *friendlist , LinphoneFriend * fid, const gchar *url, const gchar *status, const gchar *img){
GtkTreeIter iter;
LinphoneFriend *tmp=0;
GtkTreeModel *model=gtk_tree_view_get_model(GTK_TREE_VIEW(friendlist));
if (gtk_tree_model_get_iter_first(model,&iter)) {
do{
gtk_tree_model_get(model,&iter,FRIEND_ID,&tmp,-1);
//printf("tmp=%i, fid=%i",tmp,fid);
if (fid==tmp) {
GdkPixbuf *pixbuf;
gtk_list_store_set(GTK_LIST_STORE(model),&iter,FRIEND_PRESENCE_STATUS,status,-1);
pixbuf = create_pixbuf(img);
if (pixbuf)
{
gtk_list_store_set(GTK_LIST_STORE(model),&iter,FRIEND_PRESENCE_IMG, pixbuf,-1);
}
}
}while(gtk_tree_model_iter_next(model,&iter));
}
}
*/
gboolean linphone_gtk_friend_list_is_contact(const LinphoneAddress *addr){
LinphoneFriend *lf;
char *addr_str=linphone_address_as_string(addr);
......@@ -243,20 +192,18 @@ void linphone_gtk_friend_list_update_chat_picture(){
int nbmsg=0;
if (gtk_tree_model_get_iter_first(model,&iter)) {
do{
const char *icon_name = NULL;
gtk_tree_model_get (model, &iter,FRIEND_CHATROOM , &cr, -1);
nbmsg=linphone_chat_room_get_unread_messages_count(cr);
is_composing=linphone_chat_room_is_remote_composing(cr);
if(nbmsg != 0){
if (is_composing == TRUE)
gtk_list_store_set(GTK_LIST_STORE(model),&iter,FRIEND_CHAT,create_composing_unread_msg(),-1);
else
gtk_list_store_set(GTK_LIST_STORE(model),&iter,FRIEND_CHAT,create_unread_msg(),-1);
if (is_composing == TRUE) icon_name = "linphone-chat-new-message-and-writing";
else icon_name = "linphone-chat-new-message";
} else {
if (is_composing == TRUE)
gtk_list_store_set(GTK_LIST_STORE(model),&iter,FRIEND_CHAT,create_composing_chat_picture(),-1);
else
gtk_list_store_set(GTK_LIST_STORE(model),&iter,FRIEND_CHAT,create_chat_picture(),-1);
if (is_composing == TRUE) icon_name = "linphone-chat-writing";
else icon_name = "linphone-chat-nothing";
}
gtk_list_store_set(GTK_LIST_STORE(model),&iter,FRIEND_CHAT,icon_name,-1);
}while(gtk_tree_model_iter_next(model,&iter));
}
}
......@@ -426,17 +373,14 @@ void linphone_gtk_remove_button_clicked(GtkWidget *button){
static GtkWidget * create_presence_menu(){
GtkWidget *menu=gtk_menu_new();
GtkWidget *menu_item;
GdkPixbuf *pbuf;
status_picture_tab_t *t;
for(t=status_picture_tab;t->img!=NULL;++t){
if (t->status==LinphoneStatusPending){
continue;
}
menu_item=gtk_image_menu_item_new_with_label(linphone_online_status_to_string(t->status));
pbuf=create_status_picture(t->status);
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menu_item),
gtk_image_new_from_pixbuf(pbuf));
g_object_unref(G_OBJECT(pbuf));
gtk_image_new_from_icon_name(t->img, GTK_ICON_SIZE_LARGE_TOOLBAR));
gtk_widget_show(menu_item);
gtk_menu_shell_append(GTK_MENU_SHELL(menu),menu_item);
g_signal_connect_swapped(G_OBJECT(menu_item),"activate",(GCallback)linphone_gtk_set_my_presence,GINT_TO_POINTER(t->status));
......@@ -446,10 +390,9 @@ static GtkWidget * create_presence_menu(){
void linphone_gtk_set_my_presence(LinphoneOnlineStatus ss){
GtkWidget *button=linphone_gtk_get_widget(linphone_gtk_get_main_window(),"presence_button");
GdkPixbuf *pbuf=create_status_picture(ss);
GtkWidget *image=gtk_image_new_from_pixbuf(pbuf);
GtkWidget *image=create_status_picture(ss, GTK_ICON_SIZE_LARGE_TOOLBAR);
GtkWidget *menu;
g_object_unref(G_OBJECT(pbuf));
gtk_widget_set_tooltip_text(button,linphone_online_status_to_string(ss));
gtk_button_set_image(GTK_BUTTON(button),image);
/*prepare menu*/
......@@ -580,7 +523,7 @@ static gint friend_sort(GtkTreeModel *model, GtkTreeIter *a,GtkTreeIter *b,gpoin
return ret;
}
static void on_name_column_clicked(GtkTreeModel *model){
void linphone_gtk_friend_list_on_name_column_clicked(GtkTreeModel *model){
GtkSortType st;
gint column;
......@@ -646,7 +589,8 @@ static MSList *sort_friend_list(const MSList *friends){
return ret;
}
static void on_presence_column_clicked(GtkTreeModel *model){
#if 0
void linphone_gtk_friend_list_on_presence_column_clicked(GtkTreeModel *model){
GtkSortType st;
gint column;
......@@ -657,6 +601,7 @@ static void on_presence_column_clicked(GtkTreeModel *model){
}else st=GTK_SORT_ASCENDING;
gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(model),FRIEND_ID,st);
}
#endif
void create_button(){
GtkWidget *main_window = linphone_gtk_get_main_window ();
......@@ -668,76 +613,13 @@ void create_button(){
}
static void linphone_gtk_friend_list_init(GtkWidget *friendlist){
GtkListStore *store;
GtkCellRenderer *renderer;
GtkTreeViewColumn *column;
GtkTreeSelection *select;
GtkTreeModel *store = gtk_tree_view_get_model(GTK_TREE_VIEW(friendlist));
GtkTreeSelection *select = gtk_tree_view_get_selection (GTK_TREE_VIEW (friendlist));
linphone_gtk_init_bookmark_icon();
store = gtk_list_store_new(FRIEND_LIST_NCOL,GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_POINTER,
G_TYPE_POINTER, G_TYPE_STRING, GDK_TYPE_PIXBUF, GDK_TYPE_PIXBUF, GDK_TYPE_PIXBUF);
gtk_tree_view_set_model(GTK_TREE_VIEW(friendlist),GTK_TREE_MODEL(store));
g_object_unref(G_OBJECT(store));
/* Tree specification*/
gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(friendlist),FALSE);
gtk_tree_view_set_search_equal_func(GTK_TREE_VIEW(friendlist),friend_search_func,NULL,NULL);
gtk_tree_view_set_search_column(GTK_TREE_VIEW(friendlist),FRIEND_NAME);
gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(store),FRIEND_NAME,friend_sort,NULL,NULL);
/*Name and presence column*/
renderer = gtk_cell_renderer_text_new ();
column = gtk_tree_view_column_new_with_attributes (_("Presence status"),
renderer,
"text", FRIEND_PRESENCE_STATUS,
NULL);
g_object_set (G_OBJECT(column), "resizable", TRUE, NULL);
g_signal_connect_swapped(G_OBJECT(column),"clicked",(GCallback)on_presence_column_clicked,GTK_TREE_MODEL(store));
gtk_tree_view_column_set_clickable(column,TRUE);
gtk_tree_view_column_set_visible(column,linphone_gtk_get_ui_config_int("friendlist_status",1));
gtk_tree_view_column_set_min_width(column,50);
renderer = gtk_cell_renderer_pixbuf_new();
gtk_tree_view_column_pack_start(column,renderer,TRUE);
gtk_tree_view_column_add_attribute (column,renderer,
"pixbuf",
FRIEND_PRESENCE_IMG);
gtk_tree_view_append_column (GTK_TREE_VIEW (friendlist), column);
renderer = gtk_cell_renderer_text_new ();
column = gtk_tree_view_column_new_with_attributes (_("Name"),
renderer,
"text", FRIEND_NAME,NULL);
g_object_set (G_OBJECT(column), "resizable", TRUE, NULL);
g_signal_connect_swapped(G_OBJECT(column),"clicked",(GCallback)on_name_column_clicked,GTK_TREE_MODEL(store));
gtk_tree_view_column_set_clickable(column,TRUE);
gtk_tree_view_column_set_expand(column,TRUE);
gtk_tree_view_column_set_max_width(column,60);
gtk_tree_view_append_column (GTK_TREE_VIEW (friendlist), column);
/* Call column*/
renderer = gtk_cell_renderer_pixbuf_new();
column = gtk_tree_view_column_new_with_attributes (_("Call"),renderer,"pixbuf",FRIEND_CALL,NULL);
gtk_tree_view_append_column (GTK_TREE_VIEW (friendlist), column);
/* Chat column*/
renderer = gtk_cell_renderer_pixbuf_new();
column = gtk_tree_view_column_new_with_attributes (_("Chat"),renderer,"pixbuf",FRIEND_CHAT,NULL);
gtk_tree_view_append_column (GTK_TREE_VIEW (friendlist), column);
select = gtk_tree_view_get_selection (GTK_TREE_VIEW (friendlist));
gtk_tree_selection_set_mode (select, GTK_SELECTION_SINGLE);
gtk_tree_view_set_grid_lines(GTK_TREE_VIEW(friendlist),GTK_TREE_VIEW_GRID_LINES_NONE);
#if GTK_CHECK_VERSION(2,12,0)
gtk_tree_view_set_tooltip_column(GTK_TREE_VIEW(friendlist),FRIEND_SIP_ADDRESS);
#endif
gtk_widget_set_size_request(friendlist,200,120);
/*gtk_combo_box_set_active(GTK_COMBO_BOX(linphone_gtk_get_widget(
gtk_widget_get_toplevel(friendlist),"show_category")),0);*/
}
void linphone_gtk_show_directory_search(void){
......@@ -800,10 +682,7 @@ void linphone_gtk_show_friends(void){
GtkListStore *store=NULL;
GtkTreeIter iter;
const MSList *itf;
//GtkWidget *filter=linphone_gtk_get_widget(mw,"search_bar");
LinphoneCore *core=linphone_gtk_get_core();
//const gchar *search=NULL;
//gboolean lookup=FALSE;
MSList *sorted;
LinphoneChatRoom *cr=NULL;
......@@ -815,11 +694,6 @@ void linphone_gtk_show_friends(void){
store=GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(friendlist)));
gtk_list_store_clear(store);
//search=gtk_entry_get_text(GTK_ENTRY(filter));
//if (search==NULL || search[0]=='\0')
// lookup=FALSE;
//else lookup=TRUE;
sorted=sort_friend_list(linphone_core_get_friend_list(core));
for(itf=sorted;itf!=NULL;itf=ms_list_next(itf)){
......@@ -829,15 +703,8 @@ void linphone_gtk_show_friends(void){
const char *name=linphone_address_get_display_name(f_uri);
const char *display=name;
char *escaped=NULL;
//char buf[26]={0};
int nbmsg=0;
/*if (lookup){
if (strstr(uri,search)==NULL){
ms_free(uri);
continue;
}
}*/
//BuddyInfo *bi;
gboolean send_subscribe=linphone_friend_get_send_subscribe(lf);
if (name==NULL || name[0]=='\0') {
......@@ -845,26 +712,19 @@ void linphone_gtk_show_friends(void){
}
gtk_list_store_append(store,&iter);
gtk_list_store_set(store,&iter,FRIEND_NAME, display,FRIEND_ID,lf,
FRIEND_PRESENCE_IMG, send_subscribe ? create_status_picture(linphone_friend_get_status(lf)) : NULL,
FRIEND_CHAT,create_chat_picture(),FRIEND_CALL,create_call_picture(),-1);
FRIEND_PRESENCE_IMG, send_subscribe ? status_to_icon_name(linphone_friend_get_status(lf)) : NULL,
FRIEND_CHAT,"linphone-chat-nothing",
FRIEND_CALL,"linphone-start-call2",
FRIEND_ICON_SIZE, GTK_ICON_SIZE_LARGE_TOOLBAR, -1);
cr=linphone_gtk_create_chatroom(f_uri);
gtk_list_store_set(store,&iter,FRIEND_CHATROOM,cr,-1);
nbmsg=linphone_chat_room_get_unread_messages_count(cr);
if(nbmsg != 0){
gtk_list_store_set(store,&iter,FRIEND_CHAT,create_unread_msg(),-1);
gtk_list_store_set(store,&iter,FRIEND_CHAT,"linphone-chat-new-message",-1);
}
escaped=g_markup_escape_text(uri,-1);
gtk_list_store_set(store,&iter,FRIEND_SIP_ADDRESS,escaped,-1);
g_free(escaped);
//bi=linphone_friend_get_info(lf);
/*if (bi!=NULL && bi->image_data!=NULL){
GdkPixbuf *pbuf=
_gdk_pixbuf_new_from_memory_at_scale(bi->image_data,bi->image_length,-1,40,TRUE);
if (pbuf) {
//gtk_list_store_set(store,&iter,FRIEND_ICON,pbuf,-1);
g_object_unref(G_OBJECT(pbuf));
}
}*/
ms_free(uri);
}
ms_list_free(sorted);
......
......@@ -156,7 +156,7 @@ void transfer_button_clicked(GtkWidget *button, gpointer call_ref){
menu_item=gtk_image_menu_item_new_with_label(text);
ms_free(remote_uri);
g_free(text);
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menu_item),create_pixmap("status-green.png"));
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menu_item),create_pixmap("startcall-green.png"));
gtk_widget_show(menu_item);
gtk_menu_shell_append(GTK_MENU_SHELL(menu),menu_item);
g_signal_connect_swapped(G_OBJECT(menu_item),"activate",(GCallback)linphone_gtk_transfer_call,other_call);
......
......@@ -156,6 +156,8 @@ LINPHONE_PUBLIC void linphone_gtk_friend_list_set_chat_conversation(const Linpho
LINPHONE_PUBLIC gboolean linphone_gtk_friend_list_is_contact(const LinphoneAddress *addr);
LINPHONE_PUBLIC void linphone_gtk_friend_list_set_active_address(const LinphoneAddress *addr);
LINPHONE_PUBLIC const LinphoneAddress *linphone_gtk_friend_list_get_active_address(void);
// LINPHONE_PUBLIC void linphone_gtk_friend_list_on_presence_column_clicked(GtkTreeModel *model);
LINPHONE_PUBLIC void linphone_gtk_friend_list_on_name_column_clicked(GtkTreeModel *model);
LINPHONE_PUBLIC void linphone_gtk_notebook_tab_select(GtkNotebook *notebook, GtkWidget *page, guint page_num, gpointer data);
LINPHONE_PUBLIC void linphone_gtk_show_friends(void);
LINPHONE_PUBLIC void linphone_gtk_show_contact(LinphoneFriend *lf, GtkWidget *parent);
......
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<!-- interface-requires gtk+ 3.0 -->
<requires lib="gtk+" version="2.18"/>
<!-- interface-naming-policy toplevel-contextual -->
<!-- interface-local-resource-path /home/francois/projects/linphone/linphone/pixmaps/hicolor -->
<object class="GtkImage" id="add_image">
......@@ -18,6 +18,52 @@
<property name="can_focus">False</property>
<property name="stock">gtk-connect</property>
</object>
<object class="GtkListStore" id="contact_list_model">
<columns>
<!-- column-name presence_icon -->
<column type="gchararray"/>
<!-- column-name name -->
<column type="gchararray"/>
<!-- column-name id -->
<column type="gpointer"/>
<!-- column-name chatroom -->
<column type="gpointer"/>
<!-- column-name sip_address -->
<column type="gchararray"/>
<!-- column-name call_icon -->
<column type="gchararray"/>
<!-- column-name chat_icon -->
<column type="gchararray"/>
<!-- column-name icon_size -->
<column type="GtkIconSize"/>
</columns>
<data>
<row>
<col id="0">linphone-status-online</col>
<col id="1">Toto</col>
<col id="4">toto@sip.linphone.org</col>
<col id="5">linphone-call</col>
<col id="6">linphone-chat</col>
<col id="7">large-toolbar</col>
</row>
<row>
<col id="0">linphone-status-offline</col>
<col id="1">Toto2</col>
<col id="4">toto2@sip.linphone.org</col>
<col id="5">linphone-call</col>
<col id="6">linphone-chat</col>
<col id="7">large-toolbar</col>
</row>
<row>
<col id="0">linphone-status-offline</col>
<col id="1">Toto3</col>
<col id="4">toto3@sip.linphone.org</col>
<col id="5">linphone-call</col>
<col id="6">linphone-chat</col>
<col id="7">large-toolbar</col>
</row>
</data>
</object>
<object class="GtkImage" id="edit_image">
<property name="visible">True</property>
<property name="can_focus">False</property>
......@@ -43,34 +89,6 @@
<property name="can_focus">False</property>
<property name="stock">gtk-info</property>
</object>
<object class="GtkListStore" id="model1">
<columns>
<!-- column-name gchararray -->
<column type="gchararray"/>
</columns>
<data>
<row>
<col id="0" translatable="yes">All users</col>
</row>
<row>
<col id="0" translatable="yes">Online users</col>
</row>
</data>
</object>
<object class="GtkListStore" id="model2">
<columns>
<!-- column-name gchararray -->
<column type="gchararray"/>
</columns>
<data>
<row>
<col id="0" translatable="yes">ADSL</col>
</row>
<row>
<col id="0" translatable="yes">Fiber Channel</col>
</row>
</data>
</object>
<object class="GtkListStore" id="model3">
<columns>
<!-- column-name gchararray -->
......@@ -101,6 +119,8 @@
<property name="stock">gtk-remove</property>
</object>
<object class="GtkWindow" id="main">
<property name="width_request">640</property>
<property name="height_request">480</property>
<property name="can_focus">False</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="default_width">660</property>
......@@ -417,6 +437,8 @@
<object class="GtkHPaned" id="central_paned">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="position">200</property>
<property name="position_set">True</property>
<child>
<object class="GtkVBox" id="vbox12">
<property name="visible">True</property>
......@@ -449,13 +471,60 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="model">contact_list_model</property>
<property name="headers_visible">False</property>
<property name="reorderable">True</property>
<property name="enable_search">False</property>
<property name="search_column">1</property>
<property name="tooltip_column">4</property>
<signal name="button-press-event" handler="linphone_gtk_contact_list_button_pressed" swapped="no"/>
<signal name="cursor-changed" handler="linphone_gtk_contact_clicked" swapped="no"/>
<signal name="row-activated" handler="linphone_gtk_contact_activated" swapped="no"/>
<signal name="popup-menu" handler="linphone_gtk_popup_contact_menu" swapped="no"/>
<child>
<object class="GtkTreeViewColumn" id="presence_status_column">
<child>
<object class="GtkCellRendererPixbuf" id="status_img_cell"/>
<attributes>
<attribute name="icon-name">0</attribute>
<attribute name="stock-size">7</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn" id="contact_name_column">
<property name="max_width">60</property>
<property name="expand">True</property>
<child>
<object class="GtkCellRendererText" id="contact_name_cell"/>
<attributes>
<attribute name="text">1</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn" id="contact_call_column">
<child>
<object class="GtkCellRendererPixbuf" id="contact_call_renderer"/>
<attributes>
<attribute name="icon-name">5</attribute>
<attribute name="stock-size">7</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn" id="contact_chat_column">
<child>
<object class="GtkCellRendererPixbuf" id="contact_chat_renderer"/>
<attributes>
<attribute name="icon-name">6</attribute>
<attribute name="stock-size">7</attribute>
</attributes>
</child>
</object>
</child>
</object>
</child>
</object>
......@@ -523,8 +592,8 @@
</child>
</object>
<packing>
<property name="resize">False</property>
<property name="shrink">False</property>
<property name="resize">True</property>
<property name="shrink">True</property>
</packing>
</child>
<child>
......
......@@ -29,22 +29,42 @@ install(FILES ${PIXMAPS}
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
)
install(FILES svg/linphone-micro-muted.svg
install(FILES
svg/linphone-micro-muted.svg
svg/linphone-speaker-muted.svg
svg/linphone-micro-enabled.svg
svg/linphone-speaker-enabled.svg
svg/linphone-status-online.svg
svg/linphone-status-away.svg
svg/linphone-status-donotdisturb.svg
svg/linphone-status-offline.svg