gtk/gtkblist.c

changeset 14864
a1cbdeffee69
parent 14748
03b0e1705115
child 14865
533ea832c97c
--- a/gtk/gtkblist.c	Mon Oct 23 18:10:51 2006 +0000
+++ b/gtk/gtkblist.c	Mon Oct 23 19:05:14 2006 +0000
@@ -2078,6 +2078,7 @@
 	GdkPixbuf *status_icon;
 	GdkPixbuf *avatar;
 	int avatar_width;
+	int avatar_height;
 	int width;
 	int height;
 };
@@ -2101,6 +2102,7 @@
 
 	if(td->avatar) {
 		td->avatar_width = gdk_pixbuf_get_width(td->avatar);
+		td->avatar_height = gdk_pixbuf_get_height(td->avatar);
 		td->width += td->avatar_width + 8;
 		td->height = MAX(td->height, gdk_pixbuf_get_height(td->avatar) + 8);
 	}
@@ -2134,6 +2136,8 @@
 	{
 		struct tooltip_data *td = l->data;
 
+
+
 #if GTK_CHECK_VERSION(2,2,0)
 		gdk_draw_pixbuf(GDK_DRAWABLE(gtkblist->tipwindow->window), NULL, td->status_icon,
 			0, 0, 4, current_height, -1 , -1, GDK_RGB_DITHER_NONE, 0, 0);
@@ -2148,7 +2152,7 @@
 					max_width - (td->avatar_width + 4),
 					current_height, -1, -1, GDK_RGB_DITHER_NONE, 0, 0);
 #endif
-
+	
 		gtk_paint_layout (style, gtkblist->tipwindow->window, GTK_STATE_NORMAL, FALSE,
 				NULL, gtkblist->tipwindow, "tooltip", 38 + 4, current_height, td->layout);
 
@@ -3860,6 +3864,10 @@
 			create_connection_error_buttons, NULL);
 }
 
+void gaim_gtk_blist_add_alert(GtkWidget *alert) {
+	gtk_notebook_append_page(gtkblist->alert_notebook, alert, NULL);
+}
+
 /******************************************/
 /* End of connection error handling stuff */
 /******************************************/
@@ -3872,6 +3880,8 @@
 	GtkWidget *menu;
 	GtkWidget *sw;
 	GtkWidget *sep;
+	GtkWidget *hbox;
+	GtkWidget *label, *arrow;
 	GtkAccelGroup *accel_group;
 	GtkTreeSelection *selection;
 	GtkTargetEntry dte[] = {{"GAIM_BLIST_NODE", GTK_TARGET_SAME_APP, DRAG_ROW},
@@ -4076,6 +4086,22 @@
 	gtkblist->error_buttons = gtk_vbox_new(FALSE, 0);
 	gtk_box_pack_start(GTK_BOX(gtkblist->vbox), gtkblist->error_buttons, FALSE, FALSE, 0);
 
+	/* Create an area for showing buddy list alerts */
+	hbox = gtk_hbox_new(FALSE,0);
+	gtk_box_pack_start(GTK_BOX(gtkblist->vbox), hbox, FALSE, FALSE, 0);
+	arrow = gtk_arrow_new(GTK_ARROW_RIGHT,GTK_SHADOW_NONE);
+	gtk_box_pack_end(GTK_BOX(hbox),arrow,FALSE,FALSE,0);
+	label = gtk_label_new(NULL);
+	gtk_label_set_markup(GTK_LABEL(label), "<span size='smaller'><b>(2/3)</b></span>");
+	gtk_box_pack_end(GTK_BOX(hbox),label,FALSE,FALSE,0);
+	arrow = gtk_arrow_new(GTK_ARROW_LEFT,GTK_SHADOW_NONE);
+	gtk_box_pack_end(GTK_BOX(hbox),arrow,FALSE,FALSE,0);
+
+	gtkblist->alert_notebook = gtk_notebook_new();
+	gtk_notebook_set_show_tabs(GTK_NOTEBOOK(gtkblist->alert_notebook), FALSE);
+	gtk_notebook_set_show_border(GTK_NOTEBOOK(gtkblist->alert_notebook), FALSE);
+	gtk_box_pack_start(GTK_BOX(gtkblist->vbox), gtkblist->alert_notebook, FALSE, FALSE, 0);
+
 	/* Add the statusbox */
 	gtkblist->statusbox = gtk_gaim_status_box_new();
 	gtk_box_pack_start(GTK_BOX(gtkblist->vbox), gtkblist->statusbox, FALSE, TRUE, 0);

mercurial