comparison src/buddy_chat.c @ 3762:ac18a395eced

[gaim-migrate @ 3901] oops committer: Tailor Script <tailor@pidgin.im>
author Rob Flynn <gaim@robflynn.com>
date Sun, 20 Oct 2002 05:16:34 +0000
parents d7e83b4db191
children 165ae100e0a7
comparison
equal deleted inserted replaced
3761:a9f7421cdd9f 3762:ac18a395eced
61 GtkWidget *chat_notebook = NULL; 61 GtkWidget *chat_notebook = NULL;
62 62
63 static char *ignored(struct conversation *b, char *who) 63 static char *ignored(struct conversation *b, char *who)
64 { 64 {
65 GList *ignore = b->ignored; 65 GList *ignore = b->ignored;
66
66 while (ignore) { 67 while (ignore) {
67 char *ign = ignore->data; 68 char *ign = ignore->data;
68 if (!g_strcasecmp(who, ign)) 69 if (!g_strcasecmp(who, ign))
69 return ign; 70 return ign;
70 if (*ign == '+' && !g_strcasecmp(who, ign + 1)) 71 if (*ign == '+' && !g_strcasecmp(who, ign + 1))
644 break; 645 break;
645 } 646 }
646 c++; /* i really don't like c++ either */ 647 c++; /* i really don't like c++ either */
647 len--; 648 len--;
648 } 649 }
649 /* k, so now we've gotten past all the HTML crap. */ 650 /* k, so now we've gotten past all the HTML who. */
650 if (!*c) 651 if (!*c)
651 return FALSE; 652 return FALSE;
652 if (!g_strncasecmp(c, "/me ", 4)) { 653 if (!g_strncasecmp(c, "/me ", 4)) {
653 memmove(c, c + 4, len - 3); 654 memmove(c, c + 4, len - 3);
654 return TRUE; 655 return TRUE;
775 } 776 }
776 } 777 }
777 778
778 static void chat_press_ign(GtkWidget *obj, struct conversation *b) 779 static void chat_press_ign(GtkWidget *obj, struct conversation *b)
779 { 780 {
780 gtk_list_select_child(GTK_LIST(b->list), gtk_object_get_user_data(GTK_OBJECT(obj)));
781 ignore_callback(obj, b); 781 ignore_callback(obj, b);
782 } 782 }
783 783
784 static void chat_press_info(GtkObject *obj, struct conversation *b) 784 static void chat_press_info(GtkObject *obj, struct conversation *b)
785 { 785 {
824 } 824 }
825 /* End Jonas */ 825 /* End Jonas */
826 826
827 static gint right_click_chat(GtkObject *obj, GdkEventButton *event, struct conversation *b) 827 static gint right_click_chat(GtkObject *obj, GdkEventButton *event, struct conversation *b)
828 { 828 {
829 if (event->button == 1 && event->type == GDK_2BUTTON_PRESS) { 829 GtkTreePath *path;
830 int x;
831 int y;
832 GtkTreeIter iter;
833 GtkTreeModel *mod;
834 GtkTreeViewColumn *column;
835 gchar *who;
836
837
838 mod = gtk_tree_view_get_model(GTK_TREE_VIEW(b->list));
839
840 gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(b->list), event->x, event->y, &path, &column, &x, &y);
841
842 if (path == NULL)
843 return;
844
845 gtk_tree_selection_select_path(GTK_TREE_SELECTION(gtk_tree_view_get_selection(GTK_TREE_VIEW(b->list))), path);
846 gtk_tree_model_get_iter(GTK_TREE_MODEL(mod), &iter, path);
847 gtk_tree_model_get(GTK_TREE_MODEL(mod), &iter, 1, &who, -1);
848
849 if ((event->button == 1) && (event->type == GDK_2BUTTON_PRESS)) {
830 struct conversation *c; 850 struct conversation *c;
831 if ((c = find_conversation(gtk_object_get_user_data(obj))) == NULL) 851
832 c = new_conversation(gtk_object_get_user_data(obj)); 852 if ((c = find_conversation(who)) == NULL)
853 c = new_conversation(who);
854
833 set_convo_gc(c, b->gc); 855 set_convo_gc(c, b->gc);
834 } else if (event->button == 3 && event->type == GDK_BUTTON_PRESS) { 856 } else if (event->button == 3 && event->type == GDK_BUTTON_PRESS) {
835 static GtkWidget *menu = NULL; 857 static GtkWidget *menu = NULL;
836 GtkWidget *button; 858 GtkWidget *button;
837 859
838 /* 860 /*
839 * If a menu already exists, destroy it before creating a new one, 861 * If a menu already exists, destroy it before creating a new one,
840 * thus freeing-up the memory it occupied. 862 * thus freeing-up the memory it occupied.
841 */ 863 */
864
842 if(menu) 865 if(menu)
843 gtk_widget_destroy(menu); 866 gtk_widget_destroy(menu);
844 867
845 menu = gtk_menu_new(); 868 menu = gtk_menu_new();
846 869
847 button = gtk_menu_item_new_with_label(_("IM")); 870 button = gtk_menu_item_new_with_label(_("IM"));
848 gtk_signal_connect(GTK_OBJECT(button), "activate", GTK_SIGNAL_FUNC(chat_press_im), b); 871 gtk_signal_connect(GTK_OBJECT(button), "activate", GTK_SIGNAL_FUNC(chat_press_im), b);
849 gtk_object_set_user_data(GTK_OBJECT(button), gtk_object_get_user_data(obj)); 872 gtk_object_set_user_data(GTK_OBJECT(button), who);
850 gtk_menu_append(GTK_MENU(menu), button); 873 gtk_menu_append(GTK_MENU(menu), button);
851 gtk_widget_show(button); 874 gtk_widget_show(button);
852 875
853 if (ignored(b, gtk_object_get_user_data(obj))) 876 if (ignored(b, gtk_object_get_user_data(obj)))
854 button = gtk_menu_item_new_with_label(_("Un-Ignore")); 877 button = gtk_menu_item_new_with_label(_("Un-Ignore"));
855 else 878 else
856 button = gtk_menu_item_new_with_label(_("Ignore")); 879 button = gtk_menu_item_new_with_label(_("Ignore"));
857 880
858 gtk_signal_connect(GTK_OBJECT(button), "activate", GTK_SIGNAL_FUNC(chat_press_ign), b); 881 gtk_signal_connect(GTK_OBJECT(button), "activate", GTK_SIGNAL_FUNC(chat_press_ign), b);
859 gtk_object_set_user_data(GTK_OBJECT(button), obj); 882 gtk_object_set_user_data(GTK_OBJECT(button), who);
860 gtk_menu_append(GTK_MENU(menu), button); 883 gtk_menu_append(GTK_MENU(menu), button);
861 gtk_widget_show(button); 884 gtk_widget_show(button);
862 885
863 if (b->gc && b->gc->prpl->get_info) { 886 if (b->gc && b->gc->prpl->get_info) {
864 button = gtk_menu_item_new_with_label(_("Info")); 887 button = gtk_menu_item_new_with_label(_("Info"));
865 gtk_signal_connect(GTK_OBJECT(button), "activate", 888 gtk_signal_connect(GTK_OBJECT(button), "activate",
866 GTK_SIGNAL_FUNC(chat_press_info), b); 889 GTK_SIGNAL_FUNC(chat_press_info), b);
867 gtk_object_set_user_data(GTK_OBJECT(button), gtk_object_get_user_data(obj)); 890 gtk_object_set_user_data(GTK_OBJECT(button), who);
868 gtk_menu_append(GTK_MENU(menu), button); 891 gtk_menu_append(GTK_MENU(menu), button);
869 gtk_widget_show(button); 892 gtk_widget_show(button);
870 } 893 }
871 894
872 if (b->gc && b->gc->prpl->get_cb_away) { 895 if (b->gc && b->gc->prpl->get_cb_away) {
873 button = gtk_menu_item_new_with_label(_("Get Away Msg")); 896 button = gtk_menu_item_new_with_label(_("Get Away Msg"));
874 gtk_signal_connect(GTK_OBJECT(button), "activate", 897 gtk_signal_connect(GTK_OBJECT(button), "activate",
875 GTK_SIGNAL_FUNC(chat_press_away), b); 898 GTK_SIGNAL_FUNC(chat_press_away), b);
876 gtk_object_set_user_data(GTK_OBJECT(button), gtk_object_get_user_data(obj)); 899 gtk_object_set_user_data(GTK_OBJECT(button), who);
877 gtk_menu_append(GTK_MENU(menu), button); 900 gtk_menu_append(GTK_MENU(menu), button);
878 gtk_widget_show(button); 901 gtk_widget_show(button);
879 } 902 }
880 903
881 /* Added by Jonas <jonas@birme.se> */ 904 /* Added by Jonas <jonas@birme.se> */
882 if (b->gc) { 905 if (b->gc) {
883 if (find_buddy(b->gc, gtk_object_get_user_data(obj))) 906 if (find_buddy(b->gc, who))
884 button = gtk_menu_item_new_with_label(_("Remove")); 907 button = gtk_menu_item_new_with_label(_("Remove"));
885 else 908 else
886 button = gtk_menu_item_new_with_label(_("Add")); 909 button = gtk_menu_item_new_with_label(_("Add"));
887 gtk_signal_connect(GTK_OBJECT(button), "activate", 910 gtk_signal_connect(GTK_OBJECT(button), "activate",
888 GTK_SIGNAL_FUNC(chat_press_add), b); 911 GTK_SIGNAL_FUNC(chat_press_add), b);
889 gtk_object_set_user_data(GTK_OBJECT(button), 912 gtk_object_set_user_data(GTK_OBJECT(button),
890 gtk_object_get_user_data(obj)); 913 who);
891 gtk_menu_append(GTK_MENU(menu), button); 914 gtk_menu_append(GTK_MENU(menu), button);
892 gtk_widget_show(button); 915 gtk_widget_show(button);
893 } 916 }
894 /* End Jonas */ 917 /* End Jonas */
895 918
896 gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, event->button, event->time); 919 gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, event->button, event->time);
920
897 return TRUE; 921 return TRUE;
898 } 922 }
923
899 return TRUE; 924 return TRUE;
900 } 925 }
901 926
902 /* 927 /*
903 * Common code for adding a chat buddy to the list 928 * Common code for adding a chat buddy to the list
904 */ 929 */
905 static void add_chat_buddy_common(struct conversation *b, char *name, int pos) 930 static void add_chat_buddy_common(struct conversation *b, char *name, int pos)
906 { 931 {
907 char tmp[BUF_LONG]; 932 char tmp[BUF_LONG];
908 GtkWidget *list_item; 933 char ign[1];
909 934 GtkTreeIter iter;
910 if (ignored(b, name)) { 935 GtkListStore *ls;
911 g_snprintf(tmp, sizeof(tmp), "X %s", name); 936
912 list_item = gtk_list_item_new_with_label(tmp); 937
913 } else 938 ls = GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(b->list)));
914 list_item = gtk_list_item_new_with_label(name); 939
915 940 gtk_list_store_append(ls, &iter);
916 gtk_object_set_user_data(GTK_OBJECT(list_item), name); 941 gtk_list_store_set(ls, &iter, 0, ignored(b, name) ? "X" : " ", 1, name, -1);
917 gtk_signal_connect(GTK_OBJECT(list_item), "button_press_event", 942 gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(ls), 1, GTK_SORT_ASCENDING);
918 GTK_SIGNAL_FUNC(right_click_chat), b);
919 gtk_list_insert_items(GTK_LIST(b->list), g_list_append(NULL, list_item), pos);
920 gtk_widget_show(list_item);
921 } 943 }
922 944
923 void add_chat_buddy(struct conversation *b, char *buddy, char *extra_msg) 945 void add_chat_buddy(struct conversation *b, char *buddy, char *extra_msg)
924 { 946 {
925 char *name = g_strdup(buddy); 947 char *name = g_strdup(buddy);
951 973
952 974
953 void rename_chat_buddy(struct conversation *b, char *old, char *new) 975 void rename_chat_buddy(struct conversation *b, char *old, char *new)
954 { 976 {
955 GList *names = b->in_room; 977 GList *names = b->in_room;
956 GList *items = GTK_LIST(b->list)->children;
957
958 char *name = g_strdup(new); 978 char *name = g_strdup(new);
959 char *ign; 979 char *ign;
960 int pos; 980 int pos;
961
962 char tmp[BUF_LONG]; 981 char tmp[BUF_LONG];
982 GtkTreeIter iter;
983 GtkTreePath *path;
984 GtkTreeModel *mod;
985 int f = 1;
963 986
964 while (names) { 987 while (names) {
965 if (!g_strcasecmp((char *)names->data, old)) { 988 if (!g_strcasecmp((char *)names->data, old)) {
966 char *tmp2 = names->data; 989 char *tmp2 = names->data;
967 b->in_room = g_list_remove(b->in_room, names->data); 990 b->in_room = g_list_remove(b->in_room, names->data);
968 while (items) { 991
969 if (tmp2 == gtk_object_get_user_data(items->data)) { 992 mod = gtk_tree_view_get_model(GTK_TREE_VIEW(b->list));
970 gtk_list_remove_items(GTK_LIST(b->list), 993
971 g_list_append(NULL, items->data)); 994 if (!gtk_tree_model_get_iter_first(GTK_TREE_MODEL(mod), &iter))
972 break; 995 break;
973 } 996
974 items = items->next; 997 while (f != 0) {
998 gchar *val;
999
1000 gtk_tree_model_get(GTK_TREE_MODEL(mod), &iter, 1, &val, -1);
1001
1002
1003 if (!g_strcasecmp(old, val))
1004 gtk_list_store_remove(GTK_LIST_STORE(mod), &iter);
1005
1006 f = gtk_tree_model_iter_next(GTK_TREE_MODEL(mod), &iter);
1007
1008 g_free(val);
975 } 1009 }
1010
976 g_free(tmp2); 1011 g_free(tmp2);
977 break; 1012 break;
978 } 1013 }
979 names = names->next; 1014 names = names->next;
980 } 1015 }
1017 1052
1018 1053
1019 void remove_chat_buddy(struct conversation *b, char *buddy, char *reason) 1054 void remove_chat_buddy(struct conversation *b, char *buddy, char *reason)
1020 { 1055 {
1021 GList *names = b->in_room; 1056 GList *names = b->in_room;
1022 GList *items = GTK_LIST(b->list)->children;
1023
1024 char tmp[BUF_LONG]; 1057 char tmp[BUF_LONG];
1058 GtkTreeIter iter;
1059 GtkTreePath *path;
1060 GtkTreeModel *mod;
1061 int f = 1;
1062 int i = 0;
1025 1063
1026 plugin_event(event_chat_buddy_leave, b->gc, b->id, buddy); 1064 plugin_event(event_chat_buddy_leave, b->gc, b->id, buddy);
1027 1065
1028 while (names) { 1066 while (names) {
1029 if (!g_strcasecmp((char *)names->data, buddy)) { 1067 if (!g_strcasecmp((char *)names->data, buddy)) {
1030 char *tmp = names->data; 1068 char *tmp = names->data;
1031 b->in_room = g_list_remove(b->in_room, names->data); 1069 b->in_room = g_list_remove(b->in_room, names->data);
1032 while (items) { 1070
1033 if (tmp == gtk_object_get_user_data(items->data)) { 1071 mod = gtk_tree_view_get_model(GTK_TREE_VIEW(b->list));
1034 gtk_list_remove_items(GTK_LIST(b->list), 1072
1035 g_list_append(NULL, items->data)); 1073 if (!gtk_tree_model_get_iter_first(GTK_TREE_MODEL(mod), &iter))
1036 break; 1074 break;
1037 } 1075
1038 items = items->next; 1076 while (f != 0) {
1077 gchar *val;
1078
1079 gtk_tree_model_get(GTK_TREE_MODEL(mod), &iter, 1, &val, -1);
1080
1081
1082 if (!g_strcasecmp(buddy, val))
1083 gtk_list_store_remove(GTK_LIST_STORE(mod), &iter);
1084
1085 f = gtk_tree_model_iter_next(GTK_TREE_MODEL(mod), &iter);
1086
1087 g_free(val);
1039 } 1088 }
1040 g_free(tmp); 1089
1041 break; 1090 break;
1042 } 1091 }
1092
1043 names = names->next; 1093 names = names->next;
1044 } 1094 }
1045 1095
1046 if (!names) 1096 if (!names)
1047 return; 1097 return;
1048 1098
1049 /* don't remove them from ignored in case they re-enter */ 1099 /* don't remove them from ignored in case they re-enter */
1050
1051 g_snprintf(tmp, sizeof(tmp), _("%d %s in room"), g_list_length(b->in_room), 1100 g_snprintf(tmp, sizeof(tmp), _("%d %s in room"), g_list_length(b->in_room),
1052 g_list_length(b->in_room) == 1 ? "person" : "people"); 1101 g_list_length(b->in_room) == 1 ? "person" : "people");
1053 gtk_label_set_text(GTK_LABEL(b->count), tmp); 1102 gtk_label_set_text(GTK_LABEL(b->count), tmp);
1054 1103
1055 if (b->makesound) 1104 if (b->makesound)
1065 } 1114 }
1066 1115
1067 1116
1068 void im_callback(GtkWidget *w, struct conversation *b) 1117 void im_callback(GtkWidget *w, struct conversation *b)
1069 { 1118 {
1070 char *name; 1119 gchar *name;
1071 GList *i; 1120 GList *i;
1072 struct conversation *c; 1121 struct conversation *c;
1073 1122 GtkTreeIter iter;
1074 i = GTK_LIST(b->list)->selection; 1123 GtkTreeModel *mod = gtk_tree_view_get_model(GTK_TREE_VIEW(b->list));
1075 if (i) { 1124 GtkTreeSelection *sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(b->list));
1076 name = (char *)gtk_object_get_user_data(GTK_OBJECT(i->data)); 1125
1126 if (gtk_tree_selection_get_selected(sel, NULL, &iter)) {
1127 gtk_tree_model_get(GTK_TREE_MODEL(mod), &iter, 1, &name, -1);
1077 } else { 1128 } else {
1078 return; 1129 return;
1079 } 1130 }
1080 1131
1081 if (*name == '@') 1132 if (*name == '@')
1090 } else { 1141 } else {
1091 c = new_conversation(name); 1142 c = new_conversation(name);
1092 } 1143 }
1093 1144
1094 set_convo_gc(c, b->gc); 1145 set_convo_gc(c, b->gc);
1146
1147 g_free(name);
1095 } 1148 }
1096 1149
1097 void ignore_callback(GtkWidget *w, struct conversation *b) 1150 void ignore_callback(GtkWidget *w, struct conversation *b)
1098 { 1151 {
1152 GtkTreeIter iter;
1153 GtkTreeModel *mod = gtk_tree_view_get_model(GTK_TREE_VIEW(b->list));
1154 GtkTreeSelection *sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(b->list));
1099 char *name; 1155 char *name;
1100 GList *i;
1101 char *ign; 1156 char *ign;
1102 int pos; 1157 int pos;
1103 1158
1104 i = GTK_LIST(b->list)->selection; 1159 if (gtk_tree_selection_get_selected(sel, NULL, &iter)) {
1105 if (i) { 1160 gtk_tree_model_get(GTK_TREE_MODEL(mod), &iter, 1, &name, -1);
1106 name = (char *)gtk_object_get_user_data(GTK_OBJECT(i->data)); 1161 gtk_list_store_remove(GTK_LIST_STORE(mod), &iter);
1107 } else { 1162 } else {
1108 return; 1163 return;
1109 } 1164 }
1110 1165
1111 pos = gtk_list_child_position(GTK_LIST(b->list), i->data); 1166 pos = g_list_index(b->in_room, name);
1112 1167
1113 ign = ignored(b, name); 1168 ign = ignored(b, name);
1114 1169
1115 if (ign) { 1170 if (ign) {
1116 g_free(ign); 1171 g_free(ign);
1117 b->ignored = g_list_remove(b->ignored, ign); 1172 b->ignored = g_list_remove(b->ignored, ign);
1118 } else { 1173 } else {
1119 b->ignored = g_list_append(b->ignored, g_strdup(name)); 1174 b->ignored = g_list_append(b->ignored, g_strdup(name));
1120 } 1175 }
1121 1176
1122 gtk_widget_destroy(i->data);
1123 add_chat_buddy_common(b, name, pos); 1177 add_chat_buddy_common(b, name, pos);
1178
1179 g_free(name);
1124 } 1180 }
1125 1181
1126 void show_new_buddy_chat(struct conversation *b) 1182 void show_new_buddy_chat(struct conversation *b)
1127 { 1183 {
1128 GtkWidget *win; 1184 GtkWidget *win;
1129 GtkWidget *cont; 1185 GtkWidget *cont;
1130 GtkWidget *text; 1186 GtkWidget *text;
1131 GtkWidget *list;
1132 /*GtkWidget *close;*/
1133 GtkWidget *chatentry; 1187 GtkWidget *chatentry;
1134 GtkWidget *lbox; 1188 GtkWidget *lbox;
1135 GtkWidget *bbox; 1189 GtkWidget *bbox;
1136 GtkWidget *bbox2; 1190 GtkWidget *bbox2;
1137 GtkWidget *button; 1191 GtkWidget *button;
1140 GtkWidget *vbox; 1194 GtkWidget *vbox;
1141 GtkWidget *vpaned; 1195 GtkWidget *vpaned;
1142 GtkWidget *hpaned; 1196 GtkWidget *hpaned;
1143 GtkWidget *toolbar; 1197 GtkWidget *toolbar;
1144 GtkWidget *sep; 1198 GtkWidget *sep;
1199 GtkListStore *ls;
1200 GtkWidget *list;
1201 GtkCellRenderer *rend;
1202 GtkTreeViewColumn *col;
1203 GtkTreeSelection *sel;
1204 GtkTreeIter *iter;
1145 1205
1146 char buf[BUF_LONG]; 1206 char buf[BUF_LONG];
1147 1207
1148 /*int dispstyle = set_dispstyle(1);*/ 1208 /*int dispstyle = set_dispstyle(1);*/
1149 1209
1273 sw2 = gtk_scrolled_window_new(NULL, NULL); 1333 sw2 = gtk_scrolled_window_new(NULL, NULL);
1274 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw2), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); 1334 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw2), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
1275 gtk_box_pack_start(GTK_BOX(lbox), sw2, TRUE, TRUE, 0); 1335 gtk_box_pack_start(GTK_BOX(lbox), sw2, TRUE, TRUE, 0);
1276 gtk_widget_show(sw2); 1336 gtk_widget_show(sw2);
1277 1337
1278 list = gtk_list_new(); 1338 ls = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_STRING);
1339 gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(ls), 1, GTK_SORT_ASCENDING);
1340 list = gtk_tree_view_new_with_model(GTK_TREE_MODEL(ls));
1341
1342 rend = gtk_cell_renderer_text_new();
1343 col = gtk_tree_view_column_new_with_attributes(NULL, rend, "text", 0, NULL);
1344 gtk_tree_view_column_set_clickable(GTK_TREE_VIEW_COLUMN(col), TRUE);
1345 gtk_signal_connect(GTK_OBJECT(list), "button_press_event",
1346 GTK_SIGNAL_FUNC(right_click_chat), b);
1347 gtk_tree_view_append_column(GTK_TREE_VIEW(list), col);
1348
1349 col = gtk_tree_view_column_new_with_attributes(NULL, rend, "text", 1, NULL);
1350 gtk_tree_view_column_set_clickable(GTK_TREE_VIEW_COLUMN(col), TRUE);
1351 gtk_signal_connect(GTK_OBJECT(list), "button_press_event",
1352 GTK_SIGNAL_FUNC(right_click_chat), b);
1353 gtk_tree_view_append_column(GTK_TREE_VIEW(list), col);
1354
1355 gtk_widget_set_usize(list, 150, -1);
1356
1357 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(list), FALSE);
1358 gtk_widget_show(list);
1279 b->list = list; 1359 b->list = list;
1360
1280 gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw2), list); 1361 gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw2), list);
1281 gtk_widget_set_usize(list, 150, -1);
1282 gtk_widget_show(list);
1283 1362
1284 bbox2 = gtk_hbox_new(TRUE, 5); 1363 bbox2 = gtk_hbox_new(TRUE, 5);
1285 gtk_box_pack_start(GTK_BOX(lbox), bbox2, FALSE, FALSE, 0); 1364 gtk_box_pack_start(GTK_BOX(lbox), bbox2, FALSE, FALSE, 0);
1286 gtk_widget_show(bbox2); 1365 gtk_widget_show(bbox2);
1287 1366