pidgin/gtkwebview.c

changeset 33097
acd0d7217593
parent 33084
1da63a04d506
child 33112
f3236514cb26
child 33163
e15b0467ef3b
equal deleted inserted replaced
33096:a2493c05146e 33097:acd0d7217593
511 *****************************************************************************/ 511 *****************************************************************************/
512 512
513 gboolean 513 gboolean
514 gtk_webview_is_empty(GtkWebView *webview) 514 gtk_webview_is_empty(GtkWebView *webview)
515 { 515 {
516 GtkWebViewPriv *priv = GTK_WEBVIEW_GET_PRIVATE(webview); 516 GtkWebViewPriv *priv;
517
518 g_return_val_if_fail(webview != NULL, TRUE);
519
520 priv = GTK_WEBVIEW_GET_PRIVATE(webview);
517 return priv->empty; 521 return priv->empty;
518 } 522 }
519 523
520 char * 524 char *
521 gtk_webview_quote_js_string(const char *text) 525 gtk_webview_quote_js_string(const char *text)
548 } 552 }
549 553
550 void 554 void
551 gtk_webview_safe_execute_script(GtkWebView *webview, const char *script) 555 gtk_webview_safe_execute_script(GtkWebView *webview, const char *script)
552 { 556 {
553 GtkWebViewPriv *priv = GTK_WEBVIEW_GET_PRIVATE(webview); 557 GtkWebViewPriv *priv;
558
559 g_return_if_fail(webview != NULL);
560
561 priv = GTK_WEBVIEW_GET_PRIVATE(webview);
554 g_queue_push_tail(priv->js_queue, g_strdup(script)); 562 g_queue_push_tail(priv->js_queue, g_strdup(script));
555 g_idle_add((GSourceFunc)process_js_script_queue, webview); 563 g_idle_add((GSourceFunc)process_js_script_queue, webview);
556 } 564 }
557 565
558 void 566 void
559 gtk_webview_load_html_string(GtkWebView *webview, const char *html) 567 gtk_webview_load_html_string(GtkWebView *webview, const char *html)
560 { 568 {
569 g_return_if_fail(webview != NULL);
570
561 webkit_web_view_load_string(WEBKIT_WEB_VIEW(webview), html, NULL, NULL, 571 webkit_web_view_load_string(WEBKIT_WEB_VIEW(webview), html, NULL, NULL,
562 "file:///"); 572 "file:///");
563 } 573 }
564 574
565 void 575 void
566 gtk_webview_load_html_string_with_selection(GtkWebView *webview, const char *html) 576 gtk_webview_load_html_string_with_selection(GtkWebView *webview, const char *html)
567 { 577 {
578 g_return_if_fail(webview != NULL);
579
568 gtk_webview_load_html_string(webview, html); 580 gtk_webview_load_html_string(webview, html);
569 gtk_webview_safe_execute_script(webview, 581 gtk_webview_safe_execute_script(webview,
570 "var s = window.getSelection();" 582 "var s = window.getSelection();"
571 "var r = document.createRange();" 583 "var r = document.createRange();"
572 "var n = document.getElementById('caret');" 584 "var n = document.getElementById('caret');"
580 } 592 }
581 593
582 void 594 void
583 gtk_webview_append_html(GtkWebView *webview, const char *html) 595 gtk_webview_append_html(GtkWebView *webview, const char *html)
584 { 596 {
585 GtkWebViewPriv *priv = GTK_WEBVIEW_GET_PRIVATE(webview); 597 GtkWebViewPriv *priv;
586 WebKitDOMDocument *doc; 598 WebKitDOMDocument *doc;
587 WebKitDOMHTMLElement *body; 599 WebKitDOMHTMLElement *body;
600
601 g_return_if_fail(webview != NULL);
602
603 priv = GTK_WEBVIEW_GET_PRIVATE(webview);
588 doc = webkit_web_view_get_dom_document(WEBKIT_WEB_VIEW(webview)); 604 doc = webkit_web_view_get_dom_document(WEBKIT_WEB_VIEW(webview));
589 body = webkit_dom_document_get_body(doc); 605 body = webkit_dom_document_get_body(doc);
590 webkit_dom_html_element_insert_adjacent_html(body, "beforeend", html, NULL); 606 webkit_dom_html_element_insert_adjacent_html(body, "beforeend", html, NULL);
591 priv->empty = FALSE; 607 priv->empty = FALSE;
592 } 608 }
593 609
594 void 610 void
595 gtk_webview_set_vadjustment(GtkWebView *webview, GtkAdjustment *vadj) 611 gtk_webview_set_vadjustment(GtkWebView *webview, GtkAdjustment *vadj)
596 { 612 {
597 GtkWebViewPriv *priv = GTK_WEBVIEW_GET_PRIVATE(webview); 613 GtkWebViewPriv *priv;
614
615 g_return_if_fail(webview != NULL);
616
617 priv = GTK_WEBVIEW_GET_PRIVATE(webview);
598 priv->vadj = vadj; 618 priv->vadj = vadj;
599 } 619 }
600 620
601 void 621 void
602 gtk_webview_scroll_to_end(GtkWebView *webview, gboolean smooth) 622 gtk_webview_scroll_to_end(GtkWebView *webview, gboolean smooth)
603 { 623 {
604 GtkWebViewPriv *priv = GTK_WEBVIEW_GET_PRIVATE(webview); 624 GtkWebViewPriv *priv;
625
626 g_return_if_fail(webview != NULL);
627
628 priv = GTK_WEBVIEW_GET_PRIVATE(webview);
605 if (priv->scroll_time) 629 if (priv->scroll_time)
606 g_timer_destroy(priv->scroll_time); 630 g_timer_destroy(priv->scroll_time);
607 if (priv->scroll_src) 631 if (priv->scroll_src)
608 g_source_remove(priv->scroll_src); 632 g_source_remove(priv->scroll_src);
609 if (smooth) { 633 if (smooth) {
616 } 640 }
617 641
618 void 642 void
619 gtk_webview_page_up(GtkWebView *webview) 643 gtk_webview_page_up(GtkWebView *webview)
620 { 644 {
621 GtkWebViewPriv *priv = GTK_WEBVIEW_GET_PRIVATE(webview); 645 GtkWebViewPriv *priv;
622 GtkAdjustment *vadj = priv->vadj; 646 GtkAdjustment *vadj;
623 gdouble scroll_val; 647 gdouble scroll_val;
624 648
649 g_return_if_fail(webview != NULL);
650
651 priv = GTK_WEBVIEW_GET_PRIVATE(webview);
652 vadj = priv->vadj;
625 #if GTK_CHECK_VERSION(2,14,0) 653 #if GTK_CHECK_VERSION(2,14,0)
626 scroll_val = gtk_adjustment_get_value(vadj) - gtk_adjustment_get_page_size(vadj); 654 scroll_val = gtk_adjustment_get_value(vadj) - gtk_adjustment_get_page_size(vadj);
627 scroll_val = MAX(scroll_val, gtk_adjustment_get_lower(vadj)); 655 scroll_val = MAX(scroll_val, gtk_adjustment_get_lower(vadj));
628 #else 656 #else
629 scroll_val = gtk_adjustment_get_value(vadj) - vadj->page_size; 657 scroll_val = gtk_adjustment_get_value(vadj) - vadj->page_size;
634 } 662 }
635 663
636 void 664 void
637 gtk_webview_page_down(GtkWebView *webview) 665 gtk_webview_page_down(GtkWebView *webview)
638 { 666 {
639 GtkWebViewPriv *priv = GTK_WEBVIEW_GET_PRIVATE(webview); 667 GtkWebViewPriv *priv;
640 GtkAdjustment *vadj = priv->vadj; 668 GtkAdjustment *vadj;
641 gdouble scroll_val; 669 gdouble scroll_val;
642 gdouble page_size; 670 gdouble page_size;
643 671
672 g_return_if_fail(webview != NULL);
673
674 priv = GTK_WEBVIEW_GET_PRIVATE(webview);
675 vadj = priv->vadj;
644 #if GTK_CHECK_VERSION(2,14,0) 676 #if GTK_CHECK_VERSION(2,14,0)
645 page_size = gtk_adjustment_get_page_size(vadj); 677 page_size = gtk_adjustment_get_page_size(vadj);
646 scroll_val = gtk_adjustment_get_value(vadj) + page_size; 678 scroll_val = gtk_adjustment_get_value(vadj) + page_size;
647 scroll_val = MIN(scroll_val, gtk_adjustment_get_upper(vadj) - page_size); 679 scroll_val = MIN(scroll_val, gtk_adjustment_get_upper(vadj) - page_size);
648 #else 680 #else
655 } 687 }
656 688
657 void 689 void
658 gtk_webview_set_editable(GtkWebView *webview, gboolean editable) 690 gtk_webview_set_editable(GtkWebView *webview, gboolean editable)
659 { 691 {
692 g_return_if_fail(webview != NULL);
693
660 webkit_web_view_set_editable(WEBKIT_WEB_VIEW(webview), editable); 694 webkit_web_view_set_editable(WEBKIT_WEB_VIEW(webview), editable);
661 695
662 if (editable) { 696 if (editable) {
663 g_signal_connect(G_OBJECT(webview), "user-changed-contents", 697 g_signal_connect(G_OBJECT(webview), "user-changed-contents",
664 G_CALLBACK(editable_input_cb), NULL); 698 G_CALLBACK(editable_input_cb), NULL);
671 705
672 void 706 void
673 gtk_webview_setup_entry(GtkWebView *webview, PurpleConnectionFlags flags) 707 gtk_webview_setup_entry(GtkWebView *webview, PurpleConnectionFlags flags)
674 { 708 {
675 GtkWebViewButtons buttons; 709 GtkWebViewButtons buttons;
710
711 g_return_if_fail(webview != NULL);
676 712
677 if (flags & PURPLE_CONNECTION_HTML) { 713 if (flags & PURPLE_CONNECTION_HTML) {
678 gboolean bold, italic, underline, strike; 714 gboolean bold, italic, underline, strike;
679 715
680 buttons = GTK_WEBVIEW_ALL; 716 buttons = GTK_WEBVIEW_ALL;
748 784
749 void 785 void
750 pidgin_webview_set_spellcheck(GtkWebView *webview, gboolean enable) 786 pidgin_webview_set_spellcheck(GtkWebView *webview, gboolean enable)
751 { 787 {
752 WebKitWebSettings *settings; 788 WebKitWebSettings *settings;
789
790 g_return_if_fail(webview != NULL);
753 791
754 settings = webkit_web_view_get_settings(WEBKIT_WEB_VIEW(webview)); 792 settings = webkit_web_view_get_settings(WEBKIT_WEB_VIEW(webview));
755 g_object_set(G_OBJECT(settings), "enable-spell-checking", enable, NULL); 793 g_object_set(G_OBJECT(settings), "enable-spell-checking", enable, NULL);
756 webkit_web_view_set_settings(WEBKIT_WEB_VIEW(webview), settings); 794 webkit_web_view_set_settings(WEBKIT_WEB_VIEW(webview), settings);
757 } 795 }
758 796
759 void 797 void
760 gtk_webview_set_whole_buffer_formatting_only(GtkWebView *webview, gboolean wbfo) 798 gtk_webview_set_whole_buffer_formatting_only(GtkWebView *webview, gboolean wbfo)
761 { 799 {
762 GtkWebViewPriv *priv = GTK_WEBVIEW_GET_PRIVATE(webview); 800 GtkWebViewPriv *priv;
801
802 g_return_if_fail(webview != NULL);
803
804 priv = GTK_WEBVIEW_GET_PRIVATE(webview);
763 priv->edit.wbfo = wbfo; 805 priv->edit.wbfo = wbfo;
764 } 806 }
765 807
766 void 808 void
767 gtk_webview_set_format_functions(GtkWebView *webview, GtkWebViewButtons buttons) 809 gtk_webview_set_format_functions(GtkWebView *webview, GtkWebViewButtons buttons)
768 { 810 {
769 GtkWebViewPriv *priv = GTK_WEBVIEW_GET_PRIVATE(webview); 811 GtkWebViewPriv *priv;
770 GObject *object = g_object_ref(G_OBJECT(webview)); 812 GObject *object;
813
814 g_return_if_fail(webview != NULL);
815
816 priv = GTK_WEBVIEW_GET_PRIVATE(webview);
817 object = g_object_ref(G_OBJECT(webview));
771 priv->format_functions = buttons; 818 priv->format_functions = buttons;
772 g_signal_emit(object, signals[BUTTONS_UPDATE], 0, buttons); 819 g_signal_emit(object, signals[BUTTONS_UPDATE], 0, buttons);
773 g_object_unref(object); 820 g_object_unref(object);
774 } 821 }
775 822
778 { 825 {
779 WebKitDOMDocument *doc; 826 WebKitDOMDocument *doc;
780 WebKitDOMHTMLHeadElement *head; 827 WebKitDOMHTMLHeadElement *head;
781 gchar *html; 828 gchar *html;
782 829
830 g_return_val_if_fail(webview != NULL, NULL);
831
783 doc = webkit_web_view_get_dom_document(WEBKIT_WEB_VIEW(webview)); 832 doc = webkit_web_view_get_dom_document(WEBKIT_WEB_VIEW(webview));
784 head = webkit_dom_document_get_head(doc); 833 head = webkit_dom_document_get_head(doc);
785 html = webkit_dom_html_element_get_inner_html(WEBKIT_DOM_HTML_ELEMENT(head)); 834 html = webkit_dom_html_element_get_inner_html(WEBKIT_DOM_HTML_ELEMENT(head));
786 835
787 return html; 836 return html;
792 { 841 {
793 WebKitDOMDocument *doc; 842 WebKitDOMDocument *doc;
794 WebKitDOMHTMLElement *body; 843 WebKitDOMHTMLElement *body;
795 gchar *html; 844 gchar *html;
796 845
846 g_return_val_if_fail(webview != NULL, NULL);
847
797 doc = webkit_web_view_get_dom_document(WEBKIT_WEB_VIEW(webview)); 848 doc = webkit_web_view_get_dom_document(WEBKIT_WEB_VIEW(webview));
798 body = webkit_dom_document_get_body(doc); 849 body = webkit_dom_document_get_body(doc);
799 html = webkit_dom_html_element_get_inner_html(body); 850 html = webkit_dom_html_element_get_inner_html(body);
800 851
801 return html; 852 return html;
805 gtk_webview_get_body_text(GtkWebView *webview) 856 gtk_webview_get_body_text(GtkWebView *webview)
806 { 857 {
807 WebKitDOMDocument *doc; 858 WebKitDOMDocument *doc;
808 WebKitDOMHTMLElement *body; 859 WebKitDOMHTMLElement *body;
809 gchar *text; 860 gchar *text;
861
862 g_return_val_if_fail(webview != NULL, NULL);
810 863
811 doc = webkit_web_view_get_dom_document(WEBKIT_WEB_VIEW(webview)); 864 doc = webkit_web_view_get_dom_document(WEBKIT_WEB_VIEW(webview));
812 body = webkit_dom_document_get_body(doc); 865 body = webkit_dom_document_get_body(doc);
813 text = webkit_dom_html_element_get_inner_text(body); 866 text = webkit_dom_html_element_get_inner_text(body);
814 867
821 WebKitDOMDocument *dom; 874 WebKitDOMDocument *dom;
822 WebKitDOMDOMWindow *win; 875 WebKitDOMDOMWindow *win;
823 WebKitDOMDOMSelection *sel; 876 WebKitDOMDOMSelection *sel;
824 WebKitDOMRange *range; 877 WebKitDOMRange *range;
825 878
879 g_return_val_if_fail(webview != NULL, NULL);
880
826 dom = webkit_web_view_get_dom_document(WEBKIT_WEB_VIEW(webview)); 881 dom = webkit_web_view_get_dom_document(WEBKIT_WEB_VIEW(webview));
827 win = webkit_dom_document_get_default_view(dom); 882 win = webkit_dom_document_get_default_view(dom);
828 sel = webkit_dom_dom_window_get_selection(win); 883 sel = webkit_dom_dom_window_get_selection(win);
829 range = webkit_dom_dom_selection_get_range_at(sel, 0, NULL); 884 range = webkit_dom_dom_selection_get_range_at(sel, 0, NULL);
830 885
832 } 887 }
833 888
834 GtkWebViewButtons 889 GtkWebViewButtons
835 gtk_webview_get_format_functions(GtkWebView *webview) 890 gtk_webview_get_format_functions(GtkWebView *webview)
836 { 891 {
837 GtkWebViewPriv *priv = GTK_WEBVIEW_GET_PRIVATE(webview); 892 GtkWebViewPriv *priv;
893
894 g_return_val_if_fail(webview != NULL, 0);
895
896 priv = GTK_WEBVIEW_GET_PRIVATE(webview);
838 return priv->format_functions; 897 return priv->format_functions;
839 } 898 }
840 899
841 void 900 void
842 gtk_webview_get_current_format(GtkWebView *webview, gboolean *bold, 901 gtk_webview_get_current_format(GtkWebView *webview, gboolean *bold,
843 gboolean *italic, gboolean *underline, 902 gboolean *italic, gboolean *underline,
844 gboolean *strike) 903 gboolean *strike)
845 { 904 {
846 WebKitDOMDocument *dom; 905 WebKitDOMDocument *dom;
906
907 g_return_if_fail(webview != NULL);
908
847 dom = webkit_web_view_get_dom_document(WEBKIT_WEB_VIEW(webview)); 909 dom = webkit_web_view_get_dom_document(WEBKIT_WEB_VIEW(webview));
848 910
849 if (bold) 911 if (bold)
850 *bold = webkit_dom_document_query_command_state(dom, "bold"); 912 *bold = webkit_dom_document_query_command_state(dom, "bold");
851 if (italic) 913 if (italic)
858 920
859 char * 921 char *
860 gtk_webview_get_current_fontface(GtkWebView *webview) 922 gtk_webview_get_current_fontface(GtkWebView *webview)
861 { 923 {
862 WebKitDOMDocument *dom; 924 WebKitDOMDocument *dom;
925
926 g_return_val_if_fail(webview != NULL, NULL);
927
863 dom = webkit_web_view_get_dom_document(WEBKIT_WEB_VIEW(webview)); 928 dom = webkit_web_view_get_dom_document(WEBKIT_WEB_VIEW(webview));
864 return webkit_dom_document_query_command_value(dom, "fontName"); 929 return webkit_dom_document_query_command_value(dom, "fontName");
865 } 930 }
866 931
867 char * 932 char *
868 gtk_webview_get_current_forecolor(GtkWebView *webview) 933 gtk_webview_get_current_forecolor(GtkWebView *webview)
869 { 934 {
870 WebKitDOMDocument *dom; 935 WebKitDOMDocument *dom;
936
937 g_return_val_if_fail(webview != NULL, NULL);
938
871 dom = webkit_web_view_get_dom_document(WEBKIT_WEB_VIEW(webview)); 939 dom = webkit_web_view_get_dom_document(WEBKIT_WEB_VIEW(webview));
872 return webkit_dom_document_query_command_value(dom, "foreColor"); 940 return webkit_dom_document_query_command_value(dom, "foreColor");
873 } 941 }
874 942
875 char * 943 char *
876 gtk_webview_get_current_backcolor(GtkWebView *webview) 944 gtk_webview_get_current_backcolor(GtkWebView *webview)
877 { 945 {
878 WebKitDOMDocument *dom; 946 WebKitDOMDocument *dom;
947
948 g_return_val_if_fail(webview != NULL, NULL);
949
879 dom = webkit_web_view_get_dom_document(WEBKIT_WEB_VIEW(webview)); 950 dom = webkit_web_view_get_dom_document(WEBKIT_WEB_VIEW(webview));
880 return webkit_dom_document_query_command_value(dom, "backColor"); 951 return webkit_dom_document_query_command_value(dom, "backColor");
881 } 952 }
882 953
883 gint 954 gint
884 gtk_webview_get_current_fontsize(GtkWebView *webview) 955 gtk_webview_get_current_fontsize(GtkWebView *webview)
885 { 956 {
886 WebKitDOMDocument *dom; 957 WebKitDOMDocument *dom;
887 gchar *text; 958 gchar *text;
888 gint size; 959 gint size;
960
961 g_return_val_if_fail(webview != NULL, 0);
889 962
890 dom = webkit_web_view_get_dom_document(WEBKIT_WEB_VIEW(webview)); 963 dom = webkit_web_view_get_dom_document(WEBKIT_WEB_VIEW(webview));
891 text = webkit_dom_document_query_command_value(dom, "fontSize"); 964 text = webkit_dom_document_query_command_value(dom, "fontSize");
892 size = atoi(text); 965 size = atoi(text);
893 g_free(text); 966 g_free(text);
904 void 977 void
905 gtk_webview_clear_formatting(GtkWebView *webview) 978 gtk_webview_clear_formatting(GtkWebView *webview)
906 { 979 {
907 GObject *object; 980 GObject *object;
908 981
982 g_return_if_fail(webview != NULL);
983
909 object = g_object_ref(G_OBJECT(webview)); 984 object = g_object_ref(G_OBJECT(webview));
910 g_signal_emit(object, signals[CLEAR_FORMAT], 0); 985 g_signal_emit(object, signals[CLEAR_FORMAT], 0);
911 g_object_unref(object); 986 g_object_unref(object);
912 } 987 }
913 988
914 void 989 void
915 gtk_webview_toggle_bold(GtkWebView *webview) 990 gtk_webview_toggle_bold(GtkWebView *webview)
916 { 991 {
992 g_return_if_fail(webview != NULL);
917 emit_format_signal(webview, GTK_WEBVIEW_BOLD); 993 emit_format_signal(webview, GTK_WEBVIEW_BOLD);
918 } 994 }
919 995
920 void 996 void
921 gtk_webview_toggle_italic(GtkWebView *webview) 997 gtk_webview_toggle_italic(GtkWebView *webview)
922 { 998 {
999 g_return_if_fail(webview != NULL);
923 emit_format_signal(webview, GTK_WEBVIEW_ITALIC); 1000 emit_format_signal(webview, GTK_WEBVIEW_ITALIC);
924 } 1001 }
925 1002
926 void 1003 void
927 gtk_webview_toggle_underline(GtkWebView *webview) 1004 gtk_webview_toggle_underline(GtkWebView *webview)
928 { 1005 {
1006 g_return_if_fail(webview != NULL);
929 emit_format_signal(webview, GTK_WEBVIEW_UNDERLINE); 1007 emit_format_signal(webview, GTK_WEBVIEW_UNDERLINE);
930 } 1008 }
931 1009
932 void 1010 void
933 gtk_webview_toggle_strike(GtkWebView *webview) 1011 gtk_webview_toggle_strike(GtkWebView *webview)
934 { 1012 {
1013 g_return_if_fail(webview != NULL);
935 emit_format_signal(webview, GTK_WEBVIEW_STRIKE); 1014 emit_format_signal(webview, GTK_WEBVIEW_STRIKE);
936 } 1015 }
937 1016
938 gboolean 1017 gboolean
939 gtk_webview_toggle_forecolor(GtkWebView *webview, const char *color) 1018 gtk_webview_toggle_forecolor(GtkWebView *webview, const char *color)
940 { 1019 {
1020 g_return_val_if_fail(webview != NULL, FALSE);
1021
941 do_formatting(webview, "foreColor", color); 1022 do_formatting(webview, "foreColor", color);
942 emit_format_signal(webview, GTK_WEBVIEW_FORECOLOR); 1023 emit_format_signal(webview, GTK_WEBVIEW_FORECOLOR);
943 1024
944 return FALSE; 1025 return FALSE;
945 } 1026 }
946 1027
947 gboolean 1028 gboolean
948 gtk_webview_toggle_backcolor(GtkWebView *webview, const char *color) 1029 gtk_webview_toggle_backcolor(GtkWebView *webview, const char *color)
949 { 1030 {
1031 g_return_val_if_fail(webview != NULL, FALSE);
1032
950 do_formatting(webview, "backColor", color); 1033 do_formatting(webview, "backColor", color);
951 emit_format_signal(webview, GTK_WEBVIEW_BACKCOLOR); 1034 emit_format_signal(webview, GTK_WEBVIEW_BACKCOLOR);
952 1035
953 return FALSE; 1036 return FALSE;
954 } 1037 }
955 1038
956 gboolean 1039 gboolean
957 gtk_webview_toggle_fontface(GtkWebView *webview, const char *face) 1040 gtk_webview_toggle_fontface(GtkWebView *webview, const char *face)
958 { 1041 {
1042 g_return_val_if_fail(webview != NULL, FALSE);
1043
959 do_formatting(webview, "fontName", face); 1044 do_formatting(webview, "fontName", face);
960 emit_format_signal(webview, GTK_WEBVIEW_FACE); 1045 emit_format_signal(webview, GTK_WEBVIEW_FACE);
961 1046
962 return FALSE; 1047 return FALSE;
963 } 1048 }
964 1049
965 void 1050 void
966 gtk_webview_font_set_size(GtkWebView *webview, gint size) 1051 gtk_webview_font_set_size(GtkWebView *webview, gint size)
967 { 1052 {
968 char *tmp = g_strdup_printf("%d", size); 1053 char *tmp;
1054
1055 g_return_if_fail(webview != NULL);
1056
1057 tmp = g_strdup_printf("%d", size);
969 do_formatting(webview, "fontSize", tmp); 1058 do_formatting(webview, "fontSize", tmp);
970 emit_format_signal(webview, GTK_WEBVIEW_SHRINK|GTK_WEBVIEW_GROW); 1059 emit_format_signal(webview, GTK_WEBVIEW_SHRINK|GTK_WEBVIEW_GROW);
971 g_free(tmp); 1060 g_free(tmp);
972 } 1061 }
973 1062
974 void 1063 void
975 gtk_webview_font_shrink(GtkWebView *webview) 1064 gtk_webview_font_shrink(GtkWebView *webview)
976 { 1065 {
1066 g_return_if_fail(webview != NULL);
977 emit_format_signal(webview, GTK_WEBVIEW_SHRINK); 1067 emit_format_signal(webview, GTK_WEBVIEW_SHRINK);
978 } 1068 }
979 1069
980 void 1070 void
981 gtk_webview_font_grow(GtkWebView *webview) 1071 gtk_webview_font_grow(GtkWebView *webview)
982 { 1072 {
1073 g_return_if_fail(webview != NULL);
983 emit_format_signal(webview, GTK_WEBVIEW_GROW); 1074 emit_format_signal(webview, GTK_WEBVIEW_GROW);
984 } 1075 }
985 1076
986 void 1077 void
987 gtk_webview_insert_hr(GtkWebView *webview) 1078 gtk_webview_insert_hr(GtkWebView *webview)
988 { 1079 {
989 GtkWebViewPriv *priv = GTK_WEBVIEW_GET_PRIVATE(webview); 1080 GtkWebViewPriv *priv;
990 WebKitDOMDocument *dom; 1081 WebKitDOMDocument *dom;
991 1082
1083 g_return_if_fail(webview != NULL);
1084
1085 priv = GTK_WEBVIEW_GET_PRIVATE(webview);
992 dom = webkit_web_view_get_dom_document(WEBKIT_WEB_VIEW(webview)); 1086 dom = webkit_web_view_get_dom_document(WEBKIT_WEB_VIEW(webview));
993 1087
994 priv->edit.block_changed = TRUE; 1088 priv->edit.block_changed = TRUE;
995 webkit_dom_document_exec_command(dom, "insertHorizontalRule", FALSE, ""); 1089 webkit_dom_document_exec_command(dom, "insertHorizontalRule", FALSE, "");
996 priv->edit.block_changed = FALSE; 1090 priv->edit.block_changed = FALSE;
997 } 1091 }
998 1092
999 void 1093 void
1000 gtk_webview_insert_link(GtkWebView *webview, const char *url, const char *desc) 1094 gtk_webview_insert_link(GtkWebView *webview, const char *url, const char *desc)
1001 { 1095 {
1002 GtkWebViewPriv *priv = GTK_WEBVIEW_GET_PRIVATE(webview); 1096 GtkWebViewPriv *priv;
1003 WebKitDOMDocument *dom; 1097 WebKitDOMDocument *dom;
1004 char *link; 1098 char *link;
1005 1099
1100 g_return_if_fail(webview != NULL);
1101
1102 priv = GTK_WEBVIEW_GET_PRIVATE(webview);
1006 dom = webkit_web_view_get_dom_document(WEBKIT_WEB_VIEW(webview)); 1103 dom = webkit_web_view_get_dom_document(WEBKIT_WEB_VIEW(webview));
1007 link = g_strdup_printf("<a href='%s'>%s</a>", url, desc ? desc : url); 1104 link = g_strdup_printf("<a href='%s'>%s</a>", url, desc ? desc : url);
1008 1105
1009 priv->edit.block_changed = TRUE; 1106 priv->edit.block_changed = TRUE;
1010 webkit_dom_document_exec_command(dom, "insertHTML", FALSE, link); 1107 webkit_dom_document_exec_command(dom, "insertHTML", FALSE, link);
1013 } 1110 }
1014 1111
1015 void 1112 void
1016 gtk_webview_insert_image(GtkWebView *webview, int id) 1113 gtk_webview_insert_image(GtkWebView *webview, int id)
1017 { 1114 {
1018 GtkWebViewPriv *priv = GTK_WEBVIEW_GET_PRIVATE(webview); 1115 GtkWebViewPriv *priv;
1019 WebKitDOMDocument *dom; 1116 WebKitDOMDocument *dom;
1020 char *img; 1117 char *img;
1021 1118
1119 g_return_if_fail(webview != NULL);
1120
1121 priv = GTK_WEBVIEW_GET_PRIVATE(webview);
1022 dom = webkit_web_view_get_dom_document(WEBKIT_WEB_VIEW(webview)); 1122 dom = webkit_web_view_get_dom_document(WEBKIT_WEB_VIEW(webview));
1023 img = g_strdup_printf("<img src='" PURPLE_STORED_IMAGE_PROTOCOL "%d'/>", 1123 img = g_strdup_printf("<img src='" PURPLE_STORED_IMAGE_PROTOCOL "%d'/>",
1024 id); 1124 id);
1025 1125
1026 priv->edit.block_changed = TRUE; 1126 priv->edit.block_changed = TRUE;

mercurial