comparison src/gtkpounce.c @ 13842:a9ff4499d9ce

[gaim-migrate @ 16295] Hopefully improve the typing notification code so it's a lot easier to understand. This also creates a distinction between the signals emitted when receiving GAIM_TYPED and GAIM_NOT_TYPING messages (by adding a gaim-typed signal). And the gaim-not-typing signal should work in all cases. Most of this is stuff I changed last week during work, thanks to Meebo committer: Tailor Script <tailor@pidgin.im>
author Mark Doliner <mark@kingant.net>
date Tue, 20 Jun 2006 08:17:49 +0000
parents 3ac2d64a74a0
children 8bda65b88e49
comparison
equal deleted inserted replaced
13841:f3d4a9902ead 13842:a9ff4499d9ce
79 GtkWidget *away; 79 GtkWidget *away;
80 GtkWidget *away_return; 80 GtkWidget *away_return;
81 GtkWidget *idle; 81 GtkWidget *idle;
82 GtkWidget *idle_return; 82 GtkWidget *idle_return;
83 GtkWidget *typing; 83 GtkWidget *typing;
84 GtkWidget *typed;
84 GtkWidget *stop_typing; 85 GtkWidget *stop_typing;
85 GtkWidget *message_recv; 86 GtkWidget *message_recv;
86 87
87 /* Action */ 88 /* Action */
88 GtkWidget *open_win; 89 GtkWidget *open_win;
276 events |= GAIM_POUNCE_IDLE_RETURN; 277 events |= GAIM_POUNCE_IDLE_RETURN;
277 278
278 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->typing))) 279 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->typing)))
279 events |= GAIM_POUNCE_TYPING; 280 events |= GAIM_POUNCE_TYPING;
280 281
282 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->typed)))
283 events |= GAIM_POUNCE_TYPED;
284
281 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->stop_typing))) 285 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->stop_typing)))
282 events |= GAIM_POUNCE_TYPING_STOPPED; 286 events |= GAIM_POUNCE_TYPING_STOPPED;
283 287
284 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->message_recv))) 288 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->message_recv)))
285 events |= GAIM_POUNCE_MESSAGE_RECEIVED; 289 events |= GAIM_POUNCE_MESSAGE_RECEIVED;
562 } 566 }
563 567
564 /* Create the "Pounce When Buddy..." frame. */ 568 /* Create the "Pounce When Buddy..." frame. */
565 frame = gaim_gtk_make_frame(vbox2, _("Pounce When Buddy...")); 569 frame = gaim_gtk_make_frame(vbox2, _("Pounce When Buddy..."));
566 570
567 table = gtk_table_new(2, 4, FALSE); 571 table = gtk_table_new(5, 2, FALSE);
568 gtk_container_add(GTK_CONTAINER(frame), table); 572 gtk_container_add(GTK_CONTAINER(frame), table);
569 gtk_table_set_col_spacings(GTK_TABLE(table), GAIM_HIG_BORDER); 573 gtk_table_set_col_spacings(GTK_TABLE(table), GAIM_HIG_BORDER);
570 gtk_widget_show(table); 574 gtk_widget_show(table);
571 575
572 dialog->signon = 576 dialog->signon =
581 gtk_check_button_new_with_mnemonic(_("Becomes _idle")); 585 gtk_check_button_new_with_mnemonic(_("Becomes _idle"));
582 dialog->idle_return = 586 dialog->idle_return =
583 gtk_check_button_new_with_mnemonic(_("Is no longer i_dle")); 587 gtk_check_button_new_with_mnemonic(_("Is no longer i_dle"));
584 dialog->typing = 588 dialog->typing =
585 gtk_check_button_new_with_mnemonic(_("Starts _typing")); 589 gtk_check_button_new_with_mnemonic(_("Starts _typing"));
590 dialog->typed =
591 gtk_check_button_new_with_mnemonic(_("P_auses while typing"));
586 dialog->stop_typing = 592 dialog->stop_typing =
587 gtk_check_button_new_with_mnemonic(_("Stops t_yping")); 593 gtk_check_button_new_with_mnemonic(_("Stops t_yping"));
588 dialog->message_recv = 594 dialog->message_recv =
589 gtk_check_button_new_with_mnemonic(_("Sends a _message")); 595 gtk_check_button_new_with_mnemonic(_("Sends a _message"));
590 596
591 gtk_table_attach(GTK_TABLE(table), dialog->signon, 0, 1, 0, 1, 597 gtk_table_attach(GTK_TABLE(table), dialog->message_recv, 0, 1, 0, 1,
592 GTK_FILL, 0, 0, 0); 598 GTK_FILL, 0, 0, 0);
593 gtk_table_attach(GTK_TABLE(table), dialog->signoff, 1, 2, 0, 1, 599 gtk_table_attach(GTK_TABLE(table), dialog->signon, 0, 1, 1, 2,
594 GTK_FILL, 0, 0, 0); 600 GTK_FILL, 0, 0, 0);
595 gtk_table_attach(GTK_TABLE(table), dialog->away, 0, 1, 1, 2, 601 gtk_table_attach(GTK_TABLE(table), dialog->signoff, 0, 1, 2, 3,
596 GTK_FILL, 0, 0, 0); 602 GTK_FILL, 0, 0, 0);
597 gtk_table_attach(GTK_TABLE(table), dialog->away_return, 1, 2, 1, 2, 603 gtk_table_attach(GTK_TABLE(table), dialog->away, 0, 1, 3, 4,
598 GTK_FILL, 0, 0, 0); 604 GTK_FILL, 0, 0, 0);
599 gtk_table_attach(GTK_TABLE(table), dialog->idle, 0, 1, 2, 3, 605 gtk_table_attach(GTK_TABLE(table), dialog->away_return, 0, 1, 4, 5,
600 GTK_FILL, 0, 0, 0); 606 GTK_FILL, 0, 0, 0);
601 gtk_table_attach(GTK_TABLE(table), dialog->idle_return, 1, 2, 2, 3, 607 gtk_table_attach(GTK_TABLE(table), dialog->idle, 1, 2, 0, 1,
602 GTK_FILL, 0, 0, 0); 608 GTK_FILL, 0, 0, 0);
603 gtk_table_attach(GTK_TABLE(table), dialog->typing, 0, 1, 3, 4, 609 gtk_table_attach(GTK_TABLE(table), dialog->idle_return, 1, 2, 1, 2,
604 GTK_FILL, 0, 0, 0); 610 GTK_FILL, 0, 0, 0);
605 gtk_table_attach(GTK_TABLE(table), dialog->stop_typing, 1, 2, 3, 4, 611 gtk_table_attach(GTK_TABLE(table), dialog->typing, 1, 2, 2, 3,
606 GTK_FILL, 0, 0, 0); 612 GTK_FILL, 0, 0, 0);
607 gtk_table_attach(GTK_TABLE(table), dialog->message_recv, 0, 1, 4, 5, 613 gtk_table_attach(GTK_TABLE(table), dialog->typed, 1, 2, 3, 4,
614 GTK_FILL, 0, 0, 0);
615 gtk_table_attach(GTK_TABLE(table), dialog->stop_typing, 1, 2, 4, 5,
608 GTK_FILL, 0, 0, 0); 616 GTK_FILL, 0, 0, 0);
609 617
610 gtk_widget_show(dialog->signon); 618 gtk_widget_show(dialog->signon);
611 gtk_widget_show(dialog->signoff); 619 gtk_widget_show(dialog->signoff);
612 gtk_widget_show(dialog->away); 620 gtk_widget_show(dialog->away);
613 gtk_widget_show(dialog->away_return); 621 gtk_widget_show(dialog->away_return);
614 gtk_widget_show(dialog->idle); 622 gtk_widget_show(dialog->idle);
615 gtk_widget_show(dialog->idle_return); 623 gtk_widget_show(dialog->idle_return);
616 gtk_widget_show(dialog->typing); 624 gtk_widget_show(dialog->typing);
625 gtk_widget_show(dialog->typed);
617 gtk_widget_show(dialog->stop_typing); 626 gtk_widget_show(dialog->stop_typing);
618 gtk_widget_show(dialog->message_recv); 627 gtk_widget_show(dialog->message_recv);
619 628
620 /* Create the "Action" frame. */ 629 /* Create the "Action" frame. */
621 frame = gaim_gtk_make_frame(vbox2, _("Action")); 630 frame = gaim_gtk_make_frame(vbox2, _("Action"));
843 (events & GAIM_POUNCE_IDLE)); 852 (events & GAIM_POUNCE_IDLE));
844 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->idle_return), 853 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->idle_return),
845 (events & GAIM_POUNCE_IDLE_RETURN)); 854 (events & GAIM_POUNCE_IDLE_RETURN));
846 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->typing), 855 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->typing),
847 (events & GAIM_POUNCE_TYPING)); 856 (events & GAIM_POUNCE_TYPING));
857 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->typed),
858 (events & GAIM_POUNCE_TYPED));
848 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->stop_typing), 859 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->stop_typing),
849 (events & GAIM_POUNCE_TYPING_STOPPED)); 860 (events & GAIM_POUNCE_TYPING_STOPPED));
850 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->message_recv), 861 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->message_recv),
851 (events & GAIM_POUNCE_MESSAGE_RECEIVED)); 862 (events & GAIM_POUNCE_MESSAGE_RECEIVED));
852 863
1427 * confusion about what protocol a pounce is for. 1438 * confusion about what protocol a pounce is for.
1428 */ 1439 */
1429 tmp = g_strdup_printf( 1440 tmp = g_strdup_printf(
1430 (events & GAIM_POUNCE_TYPING) ? 1441 (events & GAIM_POUNCE_TYPING) ?
1431 _("%s has started typing to you (%s)") : 1442 _("%s has started typing to you (%s)") :
1443 (events & GAIM_POUNCE_TYPED) ?
1444 _("%s has paused while typing to you (%s)") :
1432 (events & GAIM_POUNCE_SIGNON) ? 1445 (events & GAIM_POUNCE_SIGNON) ?
1433 _("%s has signed on (%s)") : 1446 _("%s has signed on (%s)") :
1434 (events & GAIM_POUNCE_IDLE_RETURN) ? 1447 (events & GAIM_POUNCE_IDLE_RETURN) ?
1435 _("%s has returned from being idle (%s)") : 1448 _("%s has returned from being idle (%s)") :
1436 (events & GAIM_POUNCE_AWAY_RETURN) ? 1449 (events & GAIM_POUNCE_AWAY_RETURN) ?