comparison src/dialogs.c @ 7949:b356e2a9d7fc

[gaim-migrate @ 8623] Add scrollbars to the text input widgets for away messages and conversations. committer: Tailor Script <tailor@pidgin.im>
author Mark Doliner <mark@kingant.net>
date Mon, 29 Dec 2003 05:14:16 +0000
parents 3e268e113bf1
children 1b8261f374ea
comparison
equal deleted inserted replaced
7948:68c3dcba7310 7949:b356e2a9d7fc
1215 g_free(ca); 1215 g_free(ca);
1216 } 1216 }
1217 1217
1218 void create_away_mess(GtkWidget *widget, void *dummy) 1218 void create_away_mess(GtkWidget *widget, void *dummy)
1219 { 1219 {
1220 GtkWidget *hbox; 1220 GtkWidget *vbox, *hbox;
1221 GtkWidget *titlebox;
1222 GtkWidget *tbox;
1223 GtkWidget *label; 1221 GtkWidget *label;
1224 GtkWidget *frame; 1222 GtkWidget *sw;
1225 GtkWidget *fbox;
1226 GtkWidget *button; 1223 GtkWidget *button;
1227 1224
1228 struct create_away *ca = g_new0(struct create_away, 1); 1225 struct create_away *ca = g_new0(struct create_away, 1);
1229 1226
1230 /* Set up window */ 1227 /* Set up window */
1231 GAIM_DIALOG(ca->window); 1228 GAIM_DIALOG(ca->window);
1232 gtk_widget_set_size_request(ca->window, -1, 250); 1229 gtk_widget_set_size_request(ca->window, -1, 250);
1233 gtk_container_set_border_width(GTK_CONTAINER(ca->window), 5); 1230 gtk_container_set_border_width(GTK_CONTAINER(ca->window), 6);
1234 gtk_window_set_role(GTK_WINDOW(ca->window), "away_mess"); 1231 gtk_window_set_role(GTK_WINDOW(ca->window), "away_mess");
1235 gtk_window_set_title(GTK_WINDOW(ca->window), _("New away message")); 1232 gtk_window_set_title(GTK_WINDOW(ca->window), _("New away message"));
1236 g_signal_connect(G_OBJECT(ca->window), "delete_event", 1233 g_signal_connect(G_OBJECT(ca->window), "delete_event",
1237 G_CALLBACK(destroy_dialog), ca->window); 1234 G_CALLBACK(destroy_dialog), ca->window);
1238 1235
1239 tbox = gtk_vbox_new(FALSE, 5); 1236 /*
1240 gtk_container_add(GTK_CONTAINER(ca->window), tbox); 1237 * This would be higgy... but I think it's pretty ugly --Mark
1241 1238 * If you want to use this, make sure you add the vbox to the hbox below
1242 frame = gtk_frame_new(_("New away message")); 1239 */
1243 gtk_box_pack_start(GTK_BOX(tbox), frame, TRUE, TRUE, 0); 1240 /*
1244 1241 hbox = gtk_hbox_new(FALSE, 12);
1245 fbox = gtk_vbox_new(FALSE, 5); 1242 gtk_container_set_border_width(GTK_CONTAINER(hbox), 12);
1246 gtk_container_set_border_width(GTK_CONTAINER(fbox), 5); 1243 gtk_container_add(GTK_CONTAINER(ca->window), hbox);
1247 gtk_container_add(GTK_CONTAINER(frame), fbox); 1244 */
1248 1245
1249 titlebox = gtk_hbox_new(FALSE, 5); 1246 vbox = gtk_vbox_new(FALSE, 12);
1250 gtk_box_pack_start(GTK_BOX(fbox), titlebox, FALSE, FALSE, 0); 1247 gtk_container_add(GTK_CONTAINER(ca->window), vbox);
1248
1249 /* Away message title */
1250 hbox = gtk_hbox_new(FALSE, 0);
1251 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
1251 1252
1252 label = gtk_label_new(_("Away title: ")); 1253 label = gtk_label_new(_("Away title: "));
1253 gtk_box_pack_start(GTK_BOX(titlebox), label, FALSE, FALSE, 0); 1254 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
1254 1255
1255 ca->entry = gtk_entry_new(); 1256 ca->entry = gtk_entry_new();
1256 gtk_box_pack_start(GTK_BOX(titlebox), ca->entry, TRUE, TRUE, 0); 1257 gtk_box_pack_start(GTK_BOX(hbox), ca->entry, TRUE, TRUE, 0);
1257 gtk_widget_grab_focus(ca->entry); 1258 gtk_widget_grab_focus(ca->entry);
1258 1259
1259 frame = gtk_frame_new(NULL); 1260 /* Away message text */
1260 gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN); 1261 sw = gtk_scrolled_window_new(NULL, NULL);
1261 gtk_box_pack_start(GTK_BOX(fbox), frame, TRUE, TRUE, 0); 1262 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw),
1263 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
1264 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN);
1265 gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 0);
1262 1266
1263 ca->text = gtk_text_view_new(); 1267 ca->text = gtk_text_view_new();
1264 gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(ca->text), GTK_WRAP_WORD_CHAR); 1268 gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(ca->text), GTK_WRAP_WORD_CHAR);
1265 1269
1266 if (gaim_prefs_get_bool("/gaim/gtk/conversations/spellcheck")) 1270 if (gaim_prefs_get_bool("/gaim/gtk/conversations/spellcheck"))
1267 gaim_gtk_setup_gtkspell(GTK_TEXT_VIEW(ca->text)); 1271 gaim_gtk_setup_gtkspell(GTK_TEXT_VIEW(ca->text));
1268 1272
1269 gtk_container_add(GTK_CONTAINER(frame), ca->text); 1273 gtk_container_add(GTK_CONTAINER(sw), ca->text);
1270 1274
1271 if (dummy) { 1275 if (dummy) {
1272 struct away_message *amt; 1276 struct away_message *amt;
1273 GtkTreeIter iter; 1277 GtkTreeIter iter;
1274 int pos = 0; 1278 int pos = 0;
1289 1293
1290 ca->mess = amt; 1294 ca->mess = amt;
1291 } 1295 }
1292 1296
1293 hbox = gtk_hbox_new(FALSE, 5); 1297 hbox = gtk_hbox_new(FALSE, 5);
1294 gtk_box_pack_start(GTK_BOX(tbox), hbox, FALSE, FALSE, 0); 1298 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
1295 1299
1296 button = gaim_pixbuf_button_from_stock(_("Save"), GTK_STOCK_SAVE, GAIM_BUTTON_HORIZONTAL); 1300 button = gaim_pixbuf_button_from_stock(_("Save"), GTK_STOCK_SAVE, GAIM_BUTTON_HORIZONTAL);
1297 g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(save_away_mess), ca); 1301 g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(save_away_mess), ca);
1298 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); 1302 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
1299 1303