Mercurial > pidgin.yaz
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 |