comparison src/buddy_chat.c @ 4089:7f4f3aa61069

[gaim-migrate @ 4304] Changing the button style in Preferences no longer reverts conversation windows to the old style. It should work now. Pictures, Text, and Pictures & Text all work for IMs and chats here. However, there may be bugs, so let me know. Note that the style you select is not applied to newly created windows during the same session or when gaim is restarted. This isn't my fault! :) This probably broke during either the preferences or conversations rewrite. committer: Tailor Script <tailor@pidgin.im>
author Christian Hammond <chipx86@chipx86.com>
date Tue, 17 Dec 2002 04:44:00 +0000
parents 3ccbdf8e7f8d
children 286d487a4fd7
comparison
equal deleted inserted replaced
4088:97003c0ef184 4089:7f4f3aa61069
1494 if (b->topic) 1494 if (b->topic)
1495 g_free(b->topic); 1495 g_free(b->topic);
1496 g_free(b); 1496 g_free(b);
1497 } 1497 }
1498 1498
1499 static GtkWidget *change_text(GtkWidget *win, char *text, GtkWidget *button, char **xpm, int chat) 1499 static GtkWidget *change_text(GtkWidget *win, char *text, GtkWidget *button, char *stock, int chat)
1500 { 1500 {
1501 int dispstyle = set_dispstyle(chat); 1501 int dispstyle = set_dispstyle(chat);
1502 GtkWidget *parent = button->parent; 1502 GtkWidget *parent = button->parent;
1503 gtk_widget_destroy(button); 1503 gtk_widget_destroy(button);
1504 button = picture_button2(win, text, xpm, dispstyle); 1504 /* XXX button = picture_button2(win, text, xpm, dispstyle); */
1505 button = gaim_pixbuf_button_from_stock((dispstyle == 0 ? NULL : text),
1506 (dispstyle == 1 ? NULL : stock),
1507 GAIM_BUTTON_VERTICAL);
1508 #if 0
1505 if (chat == 1) 1509 if (chat == 1)
1506 gtk_box_pack_start(GTK_BOX(parent), button, dispstyle, dispstyle, 5); 1510 gtk_box_pack_start(GTK_BOX(parent), button, dispstyle, dispstyle, 5);
1507 else 1511 else
1508 gtk_box_pack_end(GTK_BOX(parent), button, dispstyle, dispstyle, 0); 1512 gtk_box_pack_end(GTK_BOX(parent), button, dispstyle, dispstyle, 0);
1513
1514 gtk_box_pack_start(GTK_BOX(parent), button, dispstyle, dispstyle, 0);
1515 #endif
1516
1509 gtk_widget_show(button); 1517 gtk_widget_show(button);
1510 return button; 1518 return button;
1511 } 1519 }
1512 1520
1513 void update_chat_button_pix() 1521 void update_chat_button_pix()
1514 { 1522 {
1515 GSList *C = connections; 1523 GSList *C = connections;
1516 struct gaim_connection *g; 1524 struct gaim_connection *g;
1525 GtkWidget *parent;
1517 1526
1518 while (C) { 1527 while (C) {
1519 GSList *bcs; 1528 GSList *bcs;
1520 struct conversation *c; 1529 struct conversation *c;
1521 int opt = 1; 1530 int opt = 1;
1522 g = (struct gaim_connection *)C->data; 1531 g = (struct gaim_connection *)C->data;
1523 bcs = g->buddy_chats; 1532 bcs = g->buddy_chats;
1524 1533
1525 while (bcs) { 1534 while (bcs) {
1526 c = (struct conversation *)bcs->data; 1535 c = (struct conversation *)bcs->data;
1527 c->send = change_text(c->window, _("Send"), c->send, tmp_send_xpm, opt); 1536 parent = c->send->parent;
1528 c->invite = change_text(c->window, _("Invite"), c->invite, join_xpm, opt); 1537
1529 /* 1538 c->send = change_text(c->window, _("Send"), c->send, "gtk-convert", opt);
1530 c->close = change_text(c->window, _("Close"), c->close, cancel_xpm, opt); 1539 c->invite = change_text(c->window, _("Invite"), c->invite, "gtk-jump-to", opt);
1531 gtk_object_set_user_data(GTK_OBJECT(c->close), c); 1540 gtk_box_pack_end(GTK_BOX(parent), c->send, FALSE, FALSE, 0);
1532 gtk_signal_connect(GTK_OBJECT(c->close), "clicked", 1541 gtk_box_pack_end(GTK_BOX(parent), c->invite, FALSE, FALSE, 0);
1533 GTK_SIGNAL_FUNC(close_callback), c); 1542
1534 */
1535 gtk_signal_connect(GTK_OBJECT(c->send), "clicked", 1543 gtk_signal_connect(GTK_OBJECT(c->send), "clicked",
1536 GTK_SIGNAL_FUNC(send_callback), c); 1544 GTK_SIGNAL_FUNC(send_callback), c);
1537 gtk_signal_connect(GTK_OBJECT(c->invite), "clicked", 1545 gtk_signal_connect(GTK_OBJECT(c->invite), "clicked",
1538 GTK_SIGNAL_FUNC(invite_callback), c); 1546 GTK_SIGNAL_FUNC(invite_callback), c);
1547
1548 gtk_button_set_relief(GTK_BUTTON(c->send), GTK_RELIEF_NONE);
1549 gtk_button_set_relief(GTK_BUTTON(c->invite), GTK_RELIEF_NONE);
1539 1550
1540 update_buttons_by_protocol(c); 1551 update_buttons_by_protocol(c);
1541 1552
1542 bcs = bcs->next; 1553 bcs = bcs->next;
1543 } 1554 }
1554 int dispstyle = set_dispstyle(0); 1565 int dispstyle = set_dispstyle(0);
1555 1566
1556 while (bcs) { 1567 while (bcs) {
1557 c = (struct conversation *)bcs->data; 1568 c = (struct conversation *)bcs->data;
1558 parent = c->send->parent; 1569 parent = c->send->parent;
1559 /* c->close = change_text(c->window, _("Close"), c->close, cancel_xpm, opt); 1570
1560 gtk_box_reorder_child(GTK_BOX(parent), c->close, 0); 1571 c->send = change_text(c->window, _("Send"), c->send, "gtk-convert", opt);
1561 gtk_box_set_child_packing(GTK_BOX(parent), c->sep1, dispstyle, dispstyle, 0, 1572 gtk_box_pack_end(GTK_BOX(parent), c->send, FALSE, FALSE, 0);
1562 GTK_PACK_END); 1573
1563 */ 1574 c->warn = change_text(c->window, _("Warn"), c->warn, "gtk-dialog-warning", opt);
1575 gtk_box_pack_start(GTK_BOX(parent), c->warn, FALSE, FALSE, 0);
1576 c->block = change_text(c->window, _("Block"), c->block, "gtk-stop", opt);
1577 gtk_box_pack_start(GTK_BOX(parent), c->block, FALSE, FALSE, 0);
1578
1564 if (find_buddy(c->gc, c->name) == NULL) 1579 if (find_buddy(c->gc, c->name) == NULL)
1565 c->add = change_text(c->window, _("Add"), c->add, gnome_add_xpm, opt); 1580 c->add = change_text(c->window, _("Add"), c->add, "gtk-add", opt);
1566 else 1581 else
1567 c->add = change_text(c->window, _("Remove"), c->add, gnome_remove_xpm, opt); 1582 c->add = change_text(c->window, _("Remove"), c->add, "gtk-remove", opt);
1568 gtk_box_reorder_child(GTK_BOX(parent), c->add, 2); 1583 gtk_box_pack_start(GTK_BOX(parent), c->add, FALSE, FALSE, 0);
1569 c->block = change_text(c->window, _("Block"), c->block, block_xpm, opt); 1584 c->info = change_text(c->window, _("Info"), c->info, "gtk-find", opt);
1570 gtk_box_reorder_child(GTK_BOX(parent), c->block, 3); 1585 gtk_box_pack_start(GTK_BOX(parent), c->info, FALSE, FALSE, 0);
1571 c->warn = change_text(c->window, _("Warn"), c->warn, warn_xpm, opt); 1586
1572 gtk_box_reorder_child(GTK_BOX(parent), c->warn, 4); 1587 gtk_button_set_relief(GTK_BUTTON(c->info), GTK_RELIEF_NONE);
1573 c->info = change_text(c->window, _("Info"), c->info, tb_search_xpm, opt); 1588 gtk_button_set_relief(GTK_BUTTON(c->add), GTK_RELIEF_NONE);
1574 gtk_box_reorder_child(GTK_BOX(parent), c->info, 5); 1589 gtk_button_set_relief(GTK_BUTTON(c->warn), GTK_RELIEF_NONE);
1575 c->send = change_text(c->window, _("Send"), c->send, tmp_send_xpm, opt); 1590 gtk_button_set_relief(GTK_BUTTON(c->send), GTK_RELIEF_NONE);
1576 gtk_box_set_child_packing(GTK_BOX(parent), c->sep2, dispstyle, dispstyle, 0, 1591 gtk_button_set_relief(GTK_BUTTON(c->block), GTK_RELIEF_NONE);
1577 GTK_PACK_END); 1592
1578 gtk_box_reorder_child(GTK_BOX(parent), c->send, 7); 1593 gtk_size_group_add_widget(c->sg, c->info);
1579 gtk_object_set_user_data(GTK_OBJECT(c->close), c); 1594 gtk_size_group_add_widget(c->sg, c->add);
1580 gtk_signal_connect(GTK_OBJECT(c->close), "clicked", GTK_SIGNAL_FUNC(close_callback), c); 1595 gtk_size_group_add_widget(c->sg, c->warn);
1596 gtk_size_group_add_widget(c->sg, c->send);
1597 gtk_size_group_add_widget(c->sg, c->block);
1598
1599 gtk_box_reorder_child(GTK_BOX(parent), c->warn, 1);
1600 gtk_box_reorder_child(GTK_BOX(parent), c->block, 2);
1601 gtk_box_reorder_child(GTK_BOX(parent), c->add, 3);
1602 gtk_box_reorder_child(GTK_BOX(parent), c->info, 4);
1603 gtk_box_reorder_child(GTK_BOX(parent), c->sep2, 5);
1604
1605
1606 update_buttons_by_protocol(c);
1607
1608 /* XXX gtk_signal_connect(GTK_OBJECT(c->close), "clicked", GTK_SIGNAL_FUNC(close_callback), c); */
1581 gtk_signal_connect(GTK_OBJECT(c->send), "clicked", GTK_SIGNAL_FUNC(send_callback), c); 1609 gtk_signal_connect(GTK_OBJECT(c->send), "clicked", GTK_SIGNAL_FUNC(send_callback), c);
1582 gtk_signal_connect(GTK_OBJECT(c->add), "clicked", GTK_SIGNAL_FUNC(add_callback), c); 1610 gtk_signal_connect(GTK_OBJECT(c->add), "clicked", GTK_SIGNAL_FUNC(add_callback), c);
1583 gtk_signal_connect(GTK_OBJECT(c->info), "clicked", GTK_SIGNAL_FUNC(info_callback), c); 1611 gtk_signal_connect(GTK_OBJECT(c->info), "clicked", GTK_SIGNAL_FUNC(info_callback), c);
1584 gtk_signal_connect(GTK_OBJECT(c->warn), "clicked", GTK_SIGNAL_FUNC(warn_callback), c); 1612 gtk_signal_connect(GTK_OBJECT(c->warn), "clicked", GTK_SIGNAL_FUNC(warn_callback), c);
1585 gtk_signal_connect(GTK_OBJECT(c->block), "clicked", GTK_SIGNAL_FUNC(block_callback), c); 1613 gtk_signal_connect(GTK_OBJECT(c->block), "clicked", GTK_SIGNAL_FUNC(block_callback), c);