comparison src/prefs.c @ 832:0142b4c66394

[gaim-migrate @ 842] redesigned the away messages page committer: Tailor Script <tailor@pidgin.im>
author Eric Warmenhoven <eric@warmenhoven.org>
date Sat, 02 Sep 2000 10:41:53 +0000
parents 60284aef22f0
children bac7089491c1
comparison
equal deleted inserted replaced
831:97f1ae636ed7 832:0142b4c66394
38 #include "pixmaps/cancel.xpm" 38 #include "pixmaps/cancel.xpm"
39 #include "pixmaps/fontface2.xpm" 39 #include "pixmaps/fontface2.xpm"
40 #include "pixmaps/refresh.xpm" 40 #include "pixmaps/refresh.xpm"
41 #include "pixmaps/gnome_add.xpm" 41 #include "pixmaps/gnome_add.xpm"
42 #include "pixmaps/gnome_remove.xpm" 42 #include "pixmaps/gnome_remove.xpm"
43 #include "pixmaps/gnome_preferences.xpm"
43 #include "pixmaps/palette.xpm" 44 #include "pixmaps/palette.xpm"
44 #include "pixmaps/save.xpm" 45 #include "pixmaps/save.xpm"
45 46
46 struct debug_window *dw = NULL; 47 struct debug_window *dw = NULL;
47 static GtkWidget *prefs = NULL; 48 static GtkWidget *prefs = NULL;
1148 1149
1149 /* Fill the text box with new message */ 1150 /* Fill the text box with new message */
1150 strcpy(buffer, a->message); 1151 strcpy(buffer, a->message);
1151 gtk_text_insert(GTK_TEXT(away_text), NULL, NULL, NULL, buffer, -1); 1152 gtk_text_insert(GTK_TEXT(away_text), NULL, NULL, NULL, buffer, -1);
1152 } 1153 }
1153 /* 1154
1154 void away_list_unclicked(GtkWidget *widget, struct away_message *a)
1155 {
1156 if (prefs_away_list == NULL)
1157 return;
1158
1159 strcpy(a->message, edited_message);
1160 save_prefs();
1161
1162 /* point edited_message to the new text */
1163 /* edited_message = gtk_editable_get_chars(GTK_EDITABLE(away_text), 0, -1);
1164 }
1165 */
1166 void save_away_message(GtkWidget *widget, void *dummy) 1155 void save_away_message(GtkWidget *widget, void *dummy)
1167 { 1156 {
1168 /* grab the current message */ 1157 /* grab the current message */
1169 edited_message = gtk_editable_get_chars(GTK_EDITABLE(away_text), 0, -1); 1158 edited_message = gtk_editable_get_chars(GTK_EDITABLE(away_text), 0, -1);
1170 strcpy(cur_message->message, edited_message); 1159 strcpy(cur_message->message, edited_message);
1176 GList *i; 1165 GList *i;
1177 struct away_message *a; 1166 struct away_message *a;
1178 1167
1179 i = GTK_LIST(prefs_away_list)->selection; 1168 i = GTK_LIST(prefs_away_list)->selection;
1180 1169
1181 a = gtk_object_get_user_data(GTK_OBJECT(i->data)); 1170 if (!i->next) {
1182 1171 int text_len = gtk_text_get_length(GTK_TEXT(away_text));
1183 rem_away_mess(NULL, a); 1172 gtk_text_set_point(GTK_TEXT(away_text), 0 );
1173 gtk_text_forward_delete (GTK_TEXT(away_text), text_len);
1174 }
1175 a = gtk_object_get_user_data(GTK_OBJECT(i->data));
1176 rem_away_mess(NULL, a);
1184 } 1177 }
1185 1178
1186 static void paldest(GtkWidget *m, gpointer n) 1179 static void paldest(GtkWidget *m, gpointer n)
1187 { 1180 {
1188 gtk_widget_destroy(prefs_away_list); 1181 gtk_widget_destroy(prefs_away_list);
1189 prefs_away_list = NULL; 1182 prefs_away_list = NULL;
1190 } 1183 }
1191 1184
1185 static void do_away_mess(GtkWidget *m, gpointer n)
1186 {
1187 GList *i = GTK_LIST(prefs_away_list)->selection;
1188 if (i)
1189 do_away_message(NULL, gtk_object_get_user_data(GTK_OBJECT(i->data)));
1190 }
1191
1192 static void away_page() 1192 static void away_page()
1193 { 1193 {
1194 GtkWidget *parent; 1194 GtkWidget *parent;
1195 GtkWidget *box; 1195 GtkWidget *box;
1196 GtkWidget *hbox;
1196 GtkWidget *top; 1197 GtkWidget *top;
1197 GtkWidget *bot; 1198 GtkWidget *bot;
1198 GtkWidget *sw; 1199 GtkWidget *sw;
1199 GtkWidget *sw2; 1200 GtkWidget *sw2;
1200 GtkWidget *button; 1201 GtkWidget *button;
1201 GtkWidget *label; 1202 GtkWidget *label;
1202 GtkWidget *list_item; 1203 GtkWidget *list_item;
1204 GtkWidget *sep;
1203 GList *awy = away_messages; 1205 GList *awy = away_messages;
1204 struct away_message *a; 1206 struct away_message *a;
1205 char buffer[BUF_LONG]; 1207 char buffer[BUF_LONG];
1206 1208
1207 parent = prefdialog->parent; 1209 parent = prefdialog->parent;
1212 1214
1213 box = gtk_vbox_new(FALSE, 5); 1215 box = gtk_vbox_new(FALSE, 5);
1214 gtk_container_add(GTK_CONTAINER(prefdialog), box); 1216 gtk_container_add(GTK_CONTAINER(prefdialog), box);
1215 gtk_widget_show(box); 1217 gtk_widget_show(box);
1216 1218
1219 hbox = gtk_hbox_new(TRUE, 0);
1220 gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 5);
1221 gtk_widget_set_usize(hbox, -1, 30);
1222 gtk_widget_show(hbox);
1223
1224 hbox = gtk_hbox_new(TRUE, 0);
1225 gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 5);
1226 gtk_widget_show(hbox);
1227
1228 label = gtk_label_new(_("Title"));
1229 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5);
1230 gtk_widget_show(label);
1231
1232 label = gtk_label_new(_("Message"));
1233 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5);
1234 gtk_widget_show(label);
1235
1217 top = gtk_hbox_new(FALSE, 0); 1236 top = gtk_hbox_new(FALSE, 0);
1218 gtk_box_pack_start(GTK_BOX(box), top, TRUE, TRUE, 0); 1237 gtk_box_pack_start(GTK_BOX(box), top, FALSE, TRUE, 0);
1219 gtk_widget_show(top); 1238 gtk_widget_show(top);
1220 1239
1221 sw = gtk_scrolled_window_new(NULL, NULL); 1240 sw = gtk_scrolled_window_new(NULL, NULL);
1222 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), 1241 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw),
1223 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); 1242 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
1224 gtk_box_pack_start(GTK_BOX(top), sw, TRUE, TRUE, 0); 1243 gtk_box_pack_start(GTK_BOX(top), sw, TRUE, TRUE, 0);
1244 gtk_widget_set_usize(sw, -1, 225);
1225 gtk_widget_show(sw); 1245 gtk_widget_show(sw);
1226 1246
1227 prefs_away_list = gtk_list_new(); 1247 prefs_away_list = gtk_list_new();
1228 gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw), prefs_away_list); 1248 gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw), prefs_away_list);
1229 gtk_signal_connect(GTK_OBJECT(prefs_away_list), "destroy", GTK_SIGNAL_FUNC(paldest), 0); 1249 gtk_signal_connect(GTK_OBJECT(prefs_away_list), "destroy", GTK_SIGNAL_FUNC(paldest), 0);
1236 gtk_widget_show(sw2); 1256 gtk_widget_show(sw2);
1237 1257
1238 away_text = gtk_text_new(NULL, NULL); 1258 away_text = gtk_text_new(NULL, NULL);
1239 gtk_container_add(GTK_CONTAINER(sw2), away_text); 1259 gtk_container_add(GTK_CONTAINER(sw2), away_text);
1240 gtk_text_set_word_wrap(GTK_TEXT(away_text), TRUE); 1260 gtk_text_set_word_wrap(GTK_TEXT(away_text), TRUE);
1241 gtk_text_set_editable(GTK_TEXT(away_text), TRUE); 1261 gtk_text_set_editable(GTK_TEXT(away_text), FALSE);
1242 gtk_widget_show(away_text); 1262 gtk_widget_show(away_text);
1243 1263
1244 bot = gtk_hbox_new(FALSE, 0); 1264 bot = gtk_hbox_new(FALSE, 0);
1245 gtk_box_pack_start(GTK_BOX(box), bot, FALSE, FALSE, 0); 1265 gtk_box_pack_start(GTK_BOX(box), bot, FALSE, FALSE, 5);
1246 gtk_widget_show(bot); 1266 gtk_widget_show(bot);
1247 1267
1248 button = picture_button(prefs, _("Add"), gnome_add_xpm); 1268 button = picture_button(prefs, _("Add"), gnome_add_xpm);
1269 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(create_away_mess), NULL);
1270 gtk_box_pack_start(GTK_BOX(bot), button, TRUE, FALSE, 5);
1271
1272 button = picture_button(prefs, _("Edit"), save_xpm);
1249 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(create_away_mess), button); 1273 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(create_away_mess), button);
1274 gtk_box_pack_start(GTK_BOX(bot), button, TRUE, FALSE, 5);
1275
1276 button = picture_button(prefs, _("Make Away"), gnome_preferences_xpm);
1277 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(do_away_mess), NULL);
1250 gtk_box_pack_start(GTK_BOX(bot), button, TRUE, FALSE, 5); 1278 gtk_box_pack_start(GTK_BOX(bot), button, TRUE, FALSE, 5);
1251 1279
1252 button = picture_button(prefs, _("Remove"), gnome_remove_xpm); 1280 button = picture_button(prefs, _("Remove"), gnome_remove_xpm);
1253 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(remove_away_message), NULL); 1281 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(remove_away_message), NULL);
1254 gtk_box_pack_start(GTK_BOX(bot), button, TRUE, FALSE, 5); 1282 gtk_box_pack_start(GTK_BOX(bot), button, TRUE, FALSE, 5);
1255 1283
1256 button = picture_button(prefs, _("Save"), save_xpm);
1257 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(save_away_message), NULL);
1258 gtk_box_pack_start(GTK_BOX(bot), button, TRUE, FALSE, 5);
1259
1260 if (awy != NULL) { 1284 if (awy != NULL) {
1261 a = (struct away_message *)awy->data; 1285 a = (struct away_message *)awy->data;
1262 g_snprintf(buffer, sizeof(buffer), "%s", a->message); 1286 g_snprintf(buffer, sizeof(buffer), "%s", a->message);
1263 gtk_text_insert(GTK_TEXT(away_text), NULL, NULL, NULL, buffer, -1); 1287 gtk_text_insert(GTK_TEXT(away_text), NULL, NULL, NULL, buffer, -1);
1264 } 1288 }
1276 gtk_container_add(GTK_CONTAINER(prefs_away_list), list_item); 1300 gtk_container_add(GTK_CONTAINER(prefs_away_list), list_item);
1277 gtk_widget_show(list_item); 1301 gtk_widget_show(list_item);
1278 1302
1279 awy = awy->next; 1303 awy = awy->next;
1280 } 1304 }
1305
1306 sep = gtk_hseparator_new();
1307 gtk_box_pack_start(GTK_BOX(box), sep, FALSE, FALSE, 0);
1308 gtk_widget_show(sep);
1309
1310 hbox = gtk_hbox_new(TRUE, 0);
1311 gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 0);
1312 gtk_widget_show(hbox);
1313
1314 gaim_button(_("Ignore new conversations when away"), &general_options, OPT_GEN_DISCARD_WHEN_AWAY, hbox);
1315 gaim_button(_("Sounds while away"), &sound_options, OPT_SOUND_WHEN_AWAY, hbox);
1281 1316
1282 gtk_widget_show(prefdialog); 1317 gtk_widget_show(prefdialog);
1283 } 1318 }
1284 1319
1285 static GtkWidget *browser_entry = NULL; 1320 static GtkWidget *browser_entry = NULL;