Цитата(sergey sva @ Jun 21 2011, 19:51)

Вот например не плохой клиент icq pidgin
link как добавить кнопку

?
Он построен на 2х оконных библиотеках GTK+ и ncurses. Для обоих интерфейс рисуется прямо в коде (хотя для GTK наверное какой нибудь дезайнер где нибудь есть). Так что, если надо добавить кнопку - то сорцы в руки и изучать, где там кнопки
Вот например, кнопки из его сорцов:
Код
#define ADD_BUTTON(b, label, callback, callbackdata) do { \
GtkWidget *button = gtk_button_new_from_stock(label); \
gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0); \
g_signal_connect(G_OBJECT(button), "clicked", callback, callbackdata); \
gtk_widget_show(button); \
b = button; \
} while (0)
/* Open button */
ADD_BUTTON(dialog->open_button, GTK_STOCK_OPEN, G_CALLBACK(open_button_cb), dialog);
gtk_widget_set_sensitive(dialog->open_button, FALSE);
/* Remove button */
ADD_BUTTON(dialog->remove_button, GTK_STOCK_REMOVE, G_CALLBACK(remove_button_cb), dialog);
gtk_widget_hide(dialog->remove_button);
/* Stop button */
ADD_BUTTON(dialog->stop_button, GTK_STOCK_STOP, G_CALLBACK(stop_button_cb), dialog);
gtk_widget_set_sensitive(dialog->stop_button, FALSE);
/* Close button */
ADD_BUTTON(dialog->close_button, GTK_STOCK_CLOSE, G_CALLBACK(close_button_cb), dialog);
#undef ADD_BUTTON
Файл pidgin/gtkft.c