Mercurial > pidgin-twitter
comparison pidgin-twitter.c @ 102:55c466028d48
changed letter counter for identi.ca to count in byte.
author | Yoshiki Yazawa <yaz@honeyplnaet.jp> |
---|---|
date | Sun, 13 Jul 2008 18:53:45 +0900 |
parents | ceabb8099bf3 |
children | 8de54d420328 |
comparison
equal
deleted
inserted
replaced
101:ceabb8099bf3 | 102:55c466028d48 |
---|---|
704 PurpleConversation *conv = (PurpleConversation *)user_data; | 704 PurpleConversation *conv = (PurpleConversation *)user_data; |
705 PidginConversation *gtkconv = PIDGIN_CONVERSATION(conv); | 705 PidginConversation *gtkconv = PIDGIN_CONVERSATION(conv); |
706 | 706 |
707 GtkWidget *box, *counter = NULL; | 707 GtkWidget *box, *counter = NULL; |
708 gchar *markup = NULL; | 708 gchar *markup = NULL; |
709 gint service = get_service_type(conv); | |
709 guint count; | 710 guint count; |
710 | 711 gchar *text = NULL; |
711 gint service = get_service_type(conv); | 712 GtkTextIter head, tail; |
713 guint bytes = 0; | |
712 | 714 |
713 g_return_if_fail(gtkconv != NULL); | 715 g_return_if_fail(gtkconv != NULL); |
714 | |
715 count = gtk_text_buffer_get_char_count(textbuffer) + | |
716 (unsigned int)g_utf8_strlen(new_text, -1); | |
717 | 716 |
718 switch(service) { | 717 switch(service) { |
719 case twitter_service: | 718 case twitter_service: |
720 case identica_service: | 719 count = gtk_text_buffer_get_char_count(textbuffer) + |
720 (unsigned int)g_utf8_strlen(new_text, -1); | |
721 markup = g_markup_printf_escaped("<span color=\"%s\">%u</span>", | 721 markup = g_markup_printf_escaped("<span color=\"%s\">%u</span>", |
722 count <= 140 ? "black" : "red", count); | 722 count <= 140 ? "black" : "red", count); |
723 break; | 723 break; |
724 case identica_service: | |
725 gtk_text_buffer_get_start_iter(textbuffer, &head); | |
726 gtk_text_buffer_get_end_iter(textbuffer, &tail); | |
727 | |
728 text = gtk_text_buffer_get_text(textbuffer, &head, &tail, TRUE); | |
729 if(text) | |
730 bytes = strlen(text) + new_text_length; | |
731 g_free(text); | |
732 markup = g_markup_printf_escaped("<span color=\"%s\">%u</span>", | |
733 bytes <= 140 ? "black" : "red", bytes); | |
734 break; | |
724 case wassr_service: | 735 case wassr_service: |
736 count = gtk_text_buffer_get_char_count(textbuffer) + | |
737 (unsigned int)g_utf8_strlen(new_text, -1); | |
725 markup = g_markup_printf_escaped("<span color=\"%s\">%u</span>", | 738 markup = g_markup_printf_escaped("<span color=\"%s\">%u</span>", |
726 count <= 255 ? "black" : "red", count); | 739 count <= 255 ? "black" : "red", count); |
727 break; | 740 break; |
728 default: | 741 default: |
729 twitter_debug("unknown service\n"); | 742 twitter_debug("unknown service\n"); |
745 PurpleConversation *conv = (PurpleConversation *)user_data; | 758 PurpleConversation *conv = (PurpleConversation *)user_data; |
746 PidginConversation *gtkconv = PIDGIN_CONVERSATION(conv); | 759 PidginConversation *gtkconv = PIDGIN_CONVERSATION(conv); |
747 GtkWidget *box, *counter = NULL; | 760 GtkWidget *box, *counter = NULL; |
748 gchar *markup = NULL; | 761 gchar *markup = NULL; |
749 gint service = get_service_type(conv); | 762 gint service = get_service_type(conv); |
763 guint count = 0; | |
764 gchar *text = NULL; | |
765 GtkTextIter head, tail; | |
766 guint bytes = 0; | |
750 | 767 |
751 g_return_if_fail(gtkconv != NULL); | 768 g_return_if_fail(gtkconv != NULL); |
752 | |
753 guint count = gtk_text_buffer_get_char_count(textbuffer) - | |
754 (gtk_text_iter_get_offset(end_pos) - | |
755 gtk_text_iter_get_offset(start_pos)); | |
756 | 769 |
757 switch(service) { | 770 switch(service) { |
758 case twitter_service: | 771 case twitter_service: |
759 case identica_service: | 772 count= gtk_text_buffer_get_char_count(textbuffer) - |
773 (gtk_text_iter_get_offset(end_pos) - | |
774 gtk_text_iter_get_offset(start_pos)); | |
760 markup = g_markup_printf_escaped("<span color=\"%s\">%u</span>", | 775 markup = g_markup_printf_escaped("<span color=\"%s\">%u</span>", |
761 count <= 140 ? "black" : "red", count); | 776 count <= 140 ? "black" : "red", count); |
762 break; | 777 break; |
778 case identica_service: | |
779 gtk_text_buffer_get_start_iter(textbuffer, &head); | |
780 gtk_text_buffer_get_end_iter(textbuffer, &tail); | |
781 | |
782 text = gtk_text_buffer_get_text(textbuffer, | |
783 &head, &tail, TRUE); | |
784 if(text) | |
785 bytes = strlen(text); | |
786 g_free(text); | |
787 | |
788 text = gtk_text_buffer_get_text(textbuffer, | |
789 start_pos, end_pos, TRUE); | |
790 if(text) | |
791 bytes -= strlen(text); | |
792 g_free(text); | |
793 | |
794 markup = g_markup_printf_escaped("<span color=\"%s\">%u</span>", | |
795 bytes <= 140 ? "black" : "red", bytes); | |
796 break; | |
763 case wassr_service: | 797 case wassr_service: |
798 count= gtk_text_buffer_get_char_count(textbuffer) - | |
799 (gtk_text_iter_get_offset(end_pos) - | |
800 gtk_text_iter_get_offset(start_pos)); | |
764 markup = g_markup_printf_escaped("<span color=\"%s\">%u</span>", | 801 markup = g_markup_printf_escaped("<span color=\"%s\">%u</span>", |
765 count <= 255 ? "black" : "red", count); | 802 count <= 255 ? "black" : "red", count); |
766 break; | 803 break; |
767 default: | 804 default: |
768 twitter_debug("unknown service\n"); | 805 twitter_debug("unknown service\n"); |