comparison src/buddy.c @ 1036:faa5afc2b89e

[gaim-migrate @ 1046] return of the aliases. bit by bit, day by day. committer: Tailor Script <tailor@pidgin.im>
author Eric Warmenhoven <eric@warmenhoven.org>
date Tue, 31 Oct 2000 09:17:03 +0000
parents 099748ff3a0a
children 1c663beef29d
comparison
equal deleted inserted replaced
1035:80a47e3b1bca 1036:faa5afc2b89e
89 /* Predefine some functions */ 89 /* Predefine some functions */
90 static void new_bp_callback(GtkWidget *w, char *name); 90 static void new_bp_callback(GtkWidget *w, char *name);
91 static void log_callback(GtkWidget *w, char *name); 91 static void log_callback(GtkWidget *w, char *name);
92 92
93 /* stuff for actual display of buddy list */ 93 /* stuff for actual display of buddy list */
94 struct buddy_show {
95 GtkWidget *item;
96 GtkWidget *pix;
97 GtkWidget *label;
98 char *name;
99 GSList *connlist;
100 guint log_timer;
101 };
102 struct group_show { 94 struct group_show {
103 GtkWidget *item; 95 GtkWidget *item;
104 GtkWidget *label; 96 GtkWidget *label;
105 GtkWidget *tree; 97 GtkWidget *tree;
106 GSList *members; 98 GSList *members;
250 } 242 }
251 } 243 }
252 244
253 void pressed_alias(GtkWidget *widget, struct buddy_show *b) 245 void pressed_alias(GtkWidget *widget, struct buddy_show *b)
254 { 246 {
255 struct buddy *m = find_buddy(connections->data, b->name); 247 alias_dialog(b);
256 alias_dialog(m);
257 } 248 }
258 249
259 void handle_click_buddy(GtkWidget *widget, GdkEventButton *event, struct buddy_show *b) 250 void handle_click_buddy(GtkWidget *widget, GdkEventButton *event, struct buddy_show *b)
260 { 251 {
261 if (event->type == GDK_2BUTTON_PRESS && event->button == 1) { 252 if (event->type == GDK_2BUTTON_PRESS && event->button == 1) {
1287 /* FIXME */ 1278 /* FIXME */
1288 shows = g_slist_append(shows, g); 1279 shows = g_slist_append(shows, g);
1289 return g; 1280 return g;
1290 } 1281 }
1291 1282
1292 static struct buddy_show *new_buddy_show(struct group_show *gs, char *buddy) { 1283 static struct buddy_show *new_buddy_show(struct group_show *gs, struct buddy *buddy) {
1293 struct buddy_show *b = g_new0(struct buddy_show, 1); 1284 struct buddy_show *b = g_new0(struct buddy_show, 1);
1294 GtkWidget *box; 1285 GtkWidget *box;
1295 GdkPixmap *pm; 1286 GdkPixmap *pm;
1296 GdkBitmap *bm; 1287 GdkBitmap *bm;
1297 1288
1298 b->name = g_strdup(buddy); 1289 b->name = g_strdup(buddy->name);
1290 b->show = g_strdup(buddy->show);
1299 1291
1300 b->item = gtk_tree_item_new(); 1292 b->item = gtk_tree_item_new();
1301 /* FIXME */ 1293 /* FIXME */
1302 gtk_tree_append(GTK_TREE(gs->tree), b->item); 1294 gtk_tree_append(GTK_TREE(gs->tree), b->item);
1303 gtk_object_set_user_data(GTK_OBJECT(b->item), b); 1295 gtk_object_set_user_data(GTK_OBJECT(b->item), b);
1314 gtk_box_pack_start(GTK_BOX(box), b->pix, FALSE, FALSE, 1); 1306 gtk_box_pack_start(GTK_BOX(box), b->pix, FALSE, FALSE, 1);
1315 gtk_widget_show(b->pix); 1307 gtk_widget_show(b->pix);
1316 gdk_pixmap_unref(pm); 1308 gdk_pixmap_unref(pm);
1317 gdk_bitmap_unref(bm); 1309 gdk_bitmap_unref(bm);
1318 1310
1319 b->label = gtk_label_new(buddy); 1311 b->label = gtk_label_new(buddy->show);
1320 gtk_misc_set_alignment(GTK_MISC(b->label), 0.0, 0.5); 1312 gtk_misc_set_alignment(GTK_MISC(b->label), 0.0, 0.5);
1321 gtk_box_pack_start(GTK_BOX(box), b->label, TRUE, TRUE, 1); 1313 gtk_box_pack_start(GTK_BOX(box), b->label, TRUE, TRUE, 1);
1322 gtk_widget_show(b->label); 1314 gtk_widget_show(b->label);
1323 1315
1324 /* FIXME */ 1316 /* FIXME */
1358 gtk_widget_destroy(g->item); 1350 gtk_widget_destroy(g->item);
1359 g_free(g->name); 1351 g_free(g->name);
1360 g_free(g); 1352 g_free(g);
1361 } 1353 }
1362 g_free(b->name); 1354 g_free(b->name);
1355 g_free(b->show);
1363 g_free(b); 1356 g_free(b);
1364 } else { 1357 } else {
1365 /* um.... what do we have to do here? just update the pixmap? */ 1358 /* um.... what do we have to do here? just update the pixmap? */
1366 GdkPixmap *pm; 1359 GdkPixmap *pm;
1367 GdkBitmap *bm; 1360 GdkBitmap *bm;
1395 char **xpm = NULL; 1388 char **xpm = NULL;
1396 if (b->present) { 1389 if (b->present) {
1397 if ((gs = find_group_show(g->name)) == NULL) 1390 if ((gs = find_group_show(g->name)) == NULL)
1398 gs = new_group_show(g->name); 1391 gs = new_group_show(g->name);
1399 if ((bs = find_buddy_show(gs, b->name)) == NULL) 1392 if ((bs = find_buddy_show(gs, b->name)) == NULL)
1400 bs = new_buddy_show(gs, b->name); 1393 bs = new_buddy_show(gs, b);
1401 if (b->present == 1) { 1394 if (b->present == 1) {
1402 play_sound(BUDDY_ARRIVE); 1395 play_sound(BUDDY_ARRIVE);
1403 b->present = 2; 1396 b->present = 2;
1404 if (bs->log_timer > 0) 1397 if (bs->log_timer > 0)
1405 gtk_timeout_remove(bs->log_timer); 1398 gtk_timeout_remove(bs->log_timer);