comparison src/buddy_chat.c @ 223:ac05dfb9e762

[gaim-migrate @ 233] Convert chat window entry field to an editable, added horizontal and vertical pane widgets to give user more flexibility in the layout (like was done for the IM conversation log). committer: Tailor Script <tailor@pidgin.im>
author Syd Logan <slogan>
date Mon, 08 May 2000 12:27:36 +0000
parents be5fbefdb195
children cffec6a16d31
comparison
equal deleted inserted replaced
222:12a39dcb681c 223:ac05dfb9e762
304 304
305 static void send_callback(GtkWidget *widget, struct buddy_chat *b) 305 static void send_callback(GtkWidget *widget, struct buddy_chat *b)
306 { 306 {
307 char buf[BUF_LEN*4]; 307 char buf[BUF_LEN*4];
308 308
309 strncpy(buf, gtk_entry_get_text(GTK_ENTRY(b->entry)), sizeof(buf)/2); 309 strncpy(buf, gtk_editable_get_chars(GTK_EDITABLE(b->entry), 0, -1), sizeof(buf)/2);
310 if (!strlen(buf)) 310 if (!strlen(buf))
311 return; 311 return;
312 312
313 gtk_entry_set_text(GTK_ENTRY(b->entry), ""); 313 gtk_editable_delete_text(GTK_EDITABLE(b->entry), 0, -1);
314 314
315 if (general_options & OPT_GEN_SEND_LINKS) { 315 if (general_options & OPT_GEN_SEND_LINKS) {
316 linkify_text(buf); 316 linkify_text(buf);
317 } 317 }
318 318
450 GtkWidget *list; 450 GtkWidget *list;
451 GtkWidget *invite_btn; 451 GtkWidget *invite_btn;
452 GtkWidget *whisper; 452 GtkWidget *whisper;
453 GtkWidget *close; 453 GtkWidget *close;
454 GtkWidget *chatentry; 454 GtkWidget *chatentry;
455 GtkWidget *tbox;
456 GtkWidget *lbox; 455 GtkWidget *lbox;
457 GtkWidget *bbox; 456 GtkWidget *bbox;
458 GtkWidget *bbox2; 457 GtkWidget *bbox2;
459 GtkWidget *im, *ignore, *info; 458 GtkWidget *im, *ignore, *info;
460 GtkWidget *sw; 459 GtkWidget *sw;
461 GtkWidget *sw2; 460 GtkWidget *sw2;
462 GtkWidget *vbox; 461 GtkWidget *vbox;
463 462 GtkWidget *vpaned;
463 GtkWidget *hpaned;
464 464
465 win = gtk_window_new(GTK_WINDOW_TOPLEVEL); 465 win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
466 b->window = win; 466 b->window = win;
467
468 vpaned = gtk_vpaned_new();
469 hpaned = gtk_hpaned_new();
467 470
468 gtk_window_set_policy(GTK_WINDOW(win), TRUE, TRUE, TRUE); 471 gtk_window_set_policy(GTK_WINDOW(win), TRUE, TRUE, TRUE);
469 472
470 close = gtk_button_new_with_label("Close"); 473 close = gtk_button_new_with_label("Close");
471 invite_btn = gtk_button_new_with_label("Invite"); 474 invite_btn = gtk_button_new_with_label("Invite");
483 list = gtk_list_new(); 486 list = gtk_list_new();
484 b->list = list; 487 b->list = list;
485 488
486 bbox = gtk_hbox_new(TRUE, 0); 489 bbox = gtk_hbox_new(TRUE, 0);
487 bbox2 = gtk_hbox_new(TRUE, 0); 490 bbox2 = gtk_hbox_new(TRUE, 0);
488 tbox = gtk_hbox_new(FALSE, 0);
489 vbox = gtk_vbox_new(FALSE, 0); 491 vbox = gtk_vbox_new(FALSE, 0);
490 lbox = gtk_vbox_new(FALSE, 4); 492 lbox = gtk_vbox_new(FALSE, 4);
491 chatentry = gtk_entry_new(); 493 chatentry = gtk_text_new( NULL, NULL );
494 gtk_text_set_editable(GTK_TEXT(chatentry), TRUE);
495
496 gtk_text_set_word_wrap(GTK_TEXT(chatentry), TRUE);
492 497
493 gtk_widget_realize(win); 498 gtk_widget_realize(win);
494 499
495 500
496 b->makesound=1; 501 b->makesound=1;
514 519
515 GTK_HTML (text)->hadj->step_increment = 10.0; 520 GTK_HTML (text)->hadj->step_increment = 10.0;
516 GTK_HTML (text)->vadj->step_increment = 10.0; 521 GTK_HTML (text)->vadj->step_increment = 10.0;
517 gtk_widget_set_usize(sw, 320, 150); 522 gtk_widget_set_usize(sw, 320, 150);
518 523
519 gtk_box_pack_start(GTK_BOX(tbox), sw, TRUE, TRUE, 0); 524 gtk_paned_pack1(GTK_PANED(hpaned), sw, TRUE, TRUE);
520
521 525
522 sw2 = gtk_scrolled_window_new(NULL, NULL); 526 sw2 = gtk_scrolled_window_new(NULL, NULL);
523 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw2), 527 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw2),
524 GTK_POLICY_NEVER, 528 GTK_POLICY_NEVER,
525 GTK_POLICY_AUTOMATIC); 529 GTK_POLICY_AUTOMATIC);
528 532
529 gtk_box_pack_start(GTK_BOX(lbox), sw2, TRUE, TRUE, 0); 533 gtk_box_pack_start(GTK_BOX(lbox), sw2, TRUE, TRUE, 0);
530 gtk_box_pack_start(GTK_BOX(lbox), bbox2, FALSE, FALSE, 0); 534 gtk_box_pack_start(GTK_BOX(lbox), bbox2, FALSE, FALSE, 0);
531 535
532 536
533 gtk_box_pack_start(GTK_BOX(tbox), lbox, TRUE, TRUE, 0); 537 gtk_paned_pack2(GTK_PANED(hpaned), lbox, TRUE, TRUE);
534 gtk_widget_show(list); 538 gtk_widget_show(list);
535 539
536 540
537 gtk_widget_set_usize(list, 150, 150); 541 gtk_widget_set_usize(list, 150, 150);
538 542
559 gtk_box_pack_start(GTK_BOX(bbox2), info, TRUE, TRUE, 5); 563 gtk_box_pack_start(GTK_BOX(bbox2), info, TRUE, TRUE, 5);
560 564
561 /* pack and fill the rest */ 565 /* pack and fill the rest */
562 566
563 567
564 gtk_box_pack_start(GTK_BOX(vbox), tbox, TRUE, TRUE, 5); 568 gtk_paned_pack1(GTK_PANED(vpaned), hpaned, TRUE, FALSE);
565 gtk_box_pack_start(GTK_BOX(vbox), chatentry, FALSE, FALSE, 5); 569 gtk_box_pack_start(GTK_BOX(vbox), chatentry, TRUE, TRUE, 5);
566 gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 5); 570 gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 5);
571 gtk_paned_pack2(GTK_PANED(vpaned), vbox, TRUE, FALSE);
567 572
568 gtk_widget_show(send); 573 gtk_widget_show(send);
569 gtk_widget_show(invite_btn); 574 gtk_widget_show(invite_btn);
570 gtk_widget_show(whisper); 575 gtk_widget_show(whisper);
571 gtk_widget_show(close); 576 gtk_widget_show(close);
574 gtk_widget_show(info); 579 gtk_widget_show(info);
575 gtk_widget_show(bbox); 580 gtk_widget_show(bbox);
576 gtk_widget_show(lbox); 581 gtk_widget_show(lbox);
577 gtk_widget_show(bbox2); 582 gtk_widget_show(bbox2);
578 gtk_widget_show(vbox); 583 gtk_widget_show(vbox);
579 gtk_widget_show(tbox); 584 gtk_widget_show( vpaned );
585 gtk_widget_show( hpaned );
580 gtk_widget_show(chatentry); 586 gtk_widget_show(chatentry);
581 587 gtk_widget_set_usize(chatentry, 320, 25);
582 588
583 gtk_container_add(GTK_CONTAINER(win),vbox); 589 gtk_container_add(GTK_CONTAINER(win),vpaned);
584 gtk_container_border_width(GTK_CONTAINER(win), 10); 590 gtk_container_border_width(GTK_CONTAINER(win), 10);
585 591
586 gtk_window_set_title(GTK_WINDOW(win), b->name); 592 gtk_window_set_title(GTK_WINDOW(win), b->name);
587 gtk_window_set_focus(GTK_WINDOW(win), chatentry); 593 gtk_window_set_focus(GTK_WINDOW(win), chatentry);
588 594