Mercurial > pidgin
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); |
