| 1012 buttons & GTK_WEBVIEW_FORECOLOR || |
1012 buttons & GTK_WEBVIEW_FORECOLOR || |
| 1013 buttons & GTK_WEBVIEW_BACKCOLOR)); |
1013 buttons & GTK_WEBVIEW_BACKCOLOR)); |
| 1014 |
1014 |
| 1015 gtk_action_set_sensitive(priv->image, buttons & GTK_WEBVIEW_IMAGE); |
1015 gtk_action_set_sensitive(priv->image, buttons & GTK_WEBVIEW_IMAGE); |
| 1016 gtk_action_set_sensitive(priv->link, buttons & GTK_WEBVIEW_LINK); |
1016 gtk_action_set_sensitive(priv->link, buttons & GTK_WEBVIEW_LINK); |
| 1017 gtk_action_set_sensitive(priv->smiley, buttons & GTK_WEBVIEW_SMILEY); |
1017 gtk_action_set_sensitive(priv->smiley, (buttons & GTK_WEBVIEW_SMILEY) && |
| |
1018 pidgin_themes_get_proto_smileys(priv->sml)); |
| 1018 } |
1019 } |
| 1019 |
1020 |
| 1020 /* we call this when we want to _set_active the toggle button, it'll |
1021 /* we call this when we want to _set_active the toggle button, it'll |
| 1021 * block the callback that's connected to the button so we don't have to |
1022 * block the callback that's connected to the button so we don't have to |
| 1022 * do the double toggling hack |
1023 * do the double toggling hack |
| 1331 {&priv->clear, "ResetFormat", PIDGIN_STOCK_CLEAR, N_("_Reset formatting"), N_("Reset Formatting"), clear_formatting_cb, FALSE}, |
1332 {&priv->clear, "ResetFormat", PIDGIN_STOCK_CLEAR, N_("_Reset formatting"), N_("Reset Formatting"), clear_formatting_cb, FALSE}, |
| 1332 {&priv->image, "InsertImage", PIDGIN_STOCK_TOOLBAR_INSERT_IMAGE, N_("_Image"), N_("Insert IM Image"), insert_image_cb, FALSE}, |
1333 {&priv->image, "InsertImage", PIDGIN_STOCK_TOOLBAR_INSERT_IMAGE, N_("_Image"), N_("Insert IM Image"), insert_image_cb, FALSE}, |
| 1333 {&priv->link, "InsertLink", PIDGIN_STOCK_TOOLBAR_INSERT_LINK, N_("_Link"), N_("Insert Link"), insert_link_cb, TRUE}, |
1334 {&priv->link, "InsertLink", PIDGIN_STOCK_TOOLBAR_INSERT_LINK, N_("_Link"), N_("Insert Link"), insert_link_cb, TRUE}, |
| 1334 {&priv->hr, "InsertHR", NULL, N_("_Horizontal rule"), N_("Insert Horizontal rule"), insert_hr_cb, FALSE}, |
1335 {&priv->hr, "InsertHR", NULL, N_("_Horizontal rule"), N_("Insert Horizontal rule"), insert_hr_cb, FALSE}, |
| 1335 {&priv->smiley, "InsertSmiley", PIDGIN_STOCK_TOOLBAR_SMILEY, N_("_Smile!"), N_("Insert Smiley"), insert_smiley_cb, TRUE}, |
1336 {&priv->smiley, "InsertSmiley", PIDGIN_STOCK_TOOLBAR_SMILEY, N_("_Smile!"), N_("Insert Smiley"), insert_smiley_cb, TRUE}, |
| 1336 {&priv->attention, "SendAttention", PIDGIN_STOCK_TOOLBAR_SEND_ATTENTION, N_("_Attention!"), N_("Send Attention"), send_attention_cb, FALSE}, |
1337 {&priv->attention, "SendAttention", PIDGIN_STOCK_TOOLBAR_SEND_ATTENTION, N_("_Attention!"), N_("Get Attention"), send_attention_cb, FALSE}, |
| 1337 }; |
1338 }; |
| 1338 |
1339 |
| 1339 action_group = gtk_action_group_new("GtkWebViewToolbar"); |
1340 action_group = gtk_action_group_new("GtkWebViewToolbar"); |
| 1340 #ifdef ENABLE_NLS |
1341 #ifdef ENABLE_NLS |
| 1341 gtk_action_group_set_translation_domain(action_group, PACKAGE); |
1342 gtk_action_group_set_translation_domain(action_group, PACKAGE); |
| 1342 #endif |
1343 #endif |
| 1343 |
1344 |
| 1344 for (i = 0; i < G_N_ELEMENTS(actions); i++) { |
1345 for (i = 0; i < G_N_ELEMENTS(actions); i++) { |
| 1345 GtkAction *action; |
1346 GtkAction *action; |
| 1346 if (actions[i].toggle) |
1347 if (actions[i].toggle) { |
| 1347 action = GTK_ACTION(gtk_toggle_action_new(actions[i].name, |
1348 action = GTK_ACTION(gtk_toggle_action_new( |
| 1348 actions[i].label, |
1349 actions[i].name, _(actions[i].label), |
| 1349 actions[i].tooltip, |
1350 _(actions[i].tooltip), actions[i].stock)); |
| 1350 actions[i].stock)); |
1351 } else { |
| 1351 else |
1352 action = gtk_action_new(actions[i].name, |
| 1352 action = gtk_action_new(actions[i].name, actions[i].label, |
1353 _(actions[i].label), _(actions[i].tooltip), |
| 1353 actions[i].tooltip, actions[i].stock); |
1354 actions[i].stock); |
| |
1355 } |
| 1354 gtk_action_set_is_important(action, TRUE); |
1356 gtk_action_set_is_important(action, TRUE); |
| 1355 gtk_action_group_add_action(action_group, action); |
1357 gtk_action_group_add_action(action_group, action); |
| 1356 g_signal_connect(G_OBJECT(action), "activate", actions[i].cb, toolbar); |
1358 g_signal_connect(G_OBJECT(action), "activate", actions[i].cb, toolbar); |
| 1357 *(actions[i].action) = action; |
1359 *(actions[i].action) = action; |
| 1358 } |
1360 } |
| 1519 priv->sml = NULL; |
1521 priv->sml = NULL; |
| 1520 |
1522 |
| 1521 /* set attention button to be greyed out until we get a conversation */ |
1523 /* set attention button to be greyed out until we get a conversation */ |
| 1522 gtk_action_set_sensitive(priv->attention, FALSE); |
1524 gtk_action_set_sensitive(priv->attention, FALSE); |
| 1523 |
1525 |
| |
1526 gtk_action_set_sensitive(priv->smiley, |
| |
1527 (gboolean)pidgin_themes_get_proto_smileys(NULL)); |
| |
1528 |
| 1524 purple_prefs_connect_callback(toolbar, |
1529 purple_prefs_connect_callback(toolbar, |
| 1525 PIDGIN_PREFS_ROOT "/conversations/toolbar/wide", |
1530 PIDGIN_PREFS_ROOT "/conversations/toolbar/wide", |
| 1526 webviewtoolbar_view_pref_changed, toolbar); |
1531 webviewtoolbar_view_pref_changed, toolbar); |
| 1527 g_signal_connect_data(G_OBJECT(toolbar), "realize", |
1532 g_signal_connect_data(G_OBJECT(toolbar), "realize", |
| 1528 G_CALLBACK(purple_prefs_trigger_callback), |
1533 G_CALLBACK(purple_prefs_trigger_callback), |
| 1618 /* gray out attention button on protocols that don't support it |
1623 /* gray out attention button on protocols that don't support it |
| 1619 for the time being it is always disabled for chats */ |
1624 for the time being it is always disabled for chats */ |
| 1620 gtk_action_set_sensitive(priv->attention, |
1625 gtk_action_set_sensitive(priv->attention, |
| 1621 conv && prpl_info && PURPLE_IS_IM_CONVERSATION(conv) && |
1626 conv && prpl_info && PURPLE_IS_IM_CONVERSATION(conv) && |
| 1622 prpl_info->send_attention != NULL); |
1627 prpl_info->send_attention != NULL); |
| |
1628 |
| |
1629 gtk_action_set_sensitive(priv->smiley, |
| |
1630 (gboolean)pidgin_themes_get_proto_smileys(priv->sml)); |
| 1623 } |
1631 } |
| 1624 |
1632 |
| 1625 void |
1633 void |
| 1626 gtk_webviewtoolbar_activate(GtkWebViewToolbar *toolbar, |
1634 gtk_webviewtoolbar_activate(GtkWebViewToolbar *toolbar, |
| 1627 GtkWebViewToolbarAction action) |
1635 GtkWebViewAction action) |
| 1628 { |
1636 { |
| 1629 GtkWebViewToolbarPriv *priv; |
1637 GtkWebViewToolbarPriv *priv; |
| 1630 GtkAction *act; |
1638 GtkAction *act; |
| 1631 |
1639 |
| 1632 g_return_if_fail(toolbar != NULL); |
1640 g_return_if_fail(toolbar != NULL); |
| 1633 |
1641 |
| 1634 priv = GTK_WEBVIEWTOOLBAR_GET_PRIVATE(toolbar); |
1642 priv = GTK_WEBVIEWTOOLBAR_GET_PRIVATE(toolbar); |
| 1635 switch (action) { |
1643 switch (action) { |
| 1636 case GTK_WEBVIEWTOOLBAR_ACTION_BOLD: |
1644 case GTK_WEBVIEW_ACTION_BOLD: |
| 1637 act = priv->bold; |
1645 act = priv->bold; |
| 1638 break; |
1646 break; |
| 1639 |
1647 |
| 1640 case GTK_WEBVIEWTOOLBAR_ACTION_ITALIC: |
1648 case GTK_WEBVIEW_ACTION_ITALIC: |
| 1641 act = priv->italic; |
1649 act = priv->italic; |
| 1642 break; |
1650 break; |
| 1643 |
1651 |
| 1644 case GTK_WEBVIEWTOOLBAR_ACTION_UNDERLINE: |
1652 case GTK_WEBVIEW_ACTION_UNDERLINE: |
| 1645 act = priv->underline; |
1653 act = priv->underline; |
| 1646 break; |
1654 break; |
| 1647 |
1655 |
| 1648 case GTK_WEBVIEWTOOLBAR_ACTION_STRIKE: |
1656 case GTK_WEBVIEW_ACTION_STRIKE: |
| 1649 act = priv->strike; |
1657 act = priv->strike; |
| 1650 break; |
1658 break; |
| 1651 |
1659 |
| 1652 case GTK_WEBVIEWTOOLBAR_ACTION_LARGER: |
1660 case GTK_WEBVIEW_ACTION_LARGER: |
| 1653 act = priv->larger_size; |
1661 act = priv->larger_size; |
| 1654 break; |
1662 break; |
| 1655 |
1663 |
| 1656 #if 0 |
1664 #if 0 |
| 1657 case GTK_WEBVIEWTOOLBAR_ACTION_NORMAL: |
1665 case GTK_WEBVIEW_ACTION_NORMAL: |
| 1658 act = priv->normal_size; |
1666 act = priv->normal_size; |
| 1659 break; |
1667 break; |
| 1660 #endif |
1668 #endif |
| 1661 |
1669 |
| 1662 case GTK_WEBVIEWTOOLBAR_ACTION_SMALLER: |
1670 case GTK_WEBVIEW_ACTION_SMALLER: |
| 1663 act = priv->smaller_size; |
1671 act = priv->smaller_size; |
| 1664 break; |
1672 break; |
| 1665 |
1673 |
| 1666 case GTK_WEBVIEWTOOLBAR_ACTION_FONTFACE: |
1674 case GTK_WEBVIEW_ACTION_FONTFACE: |
| 1667 act = priv->font; |
1675 act = priv->font; |
| 1668 break; |
1676 break; |
| 1669 |
1677 |
| 1670 case GTK_WEBVIEWTOOLBAR_ACTION_FGCOLOR: |
1678 case GTK_WEBVIEW_ACTION_FGCOLOR: |
| 1671 act = priv->fgcolor; |
1679 act = priv->fgcolor; |
| 1672 break; |
1680 break; |
| 1673 |
1681 |
| 1674 case GTK_WEBVIEWTOOLBAR_ACTION_BGCOLOR: |
1682 case GTK_WEBVIEW_ACTION_BGCOLOR: |
| 1675 act = priv->bgcolor; |
1683 act = priv->bgcolor; |
| 1676 break; |
1684 break; |
| 1677 |
1685 |
| 1678 case GTK_WEBVIEWTOOLBAR_ACTION_CLEAR: |
1686 case GTK_WEBVIEW_ACTION_CLEAR: |
| 1679 act = priv->clear; |
1687 act = priv->clear; |
| 1680 break; |
1688 break; |
| 1681 |
1689 |
| 1682 case GTK_WEBVIEWTOOLBAR_ACTION_IMAGE: |
1690 case GTK_WEBVIEW_ACTION_IMAGE: |
| 1683 act = priv->image; |
1691 act = priv->image; |
| 1684 break; |
1692 break; |
| 1685 |
1693 |
| 1686 case GTK_WEBVIEWTOOLBAR_ACTION_LINK: |
1694 case GTK_WEBVIEW_ACTION_LINK: |
| 1687 act = priv->link; |
1695 act = priv->link; |
| 1688 break; |
1696 break; |
| 1689 |
1697 |
| 1690 case GTK_WEBVIEWTOOLBAR_ACTION_HR: |
1698 case GTK_WEBVIEW_ACTION_HR: |
| 1691 act = priv->hr; |
1699 act = priv->hr; |
| 1692 break; |
1700 break; |
| 1693 |
1701 |
| 1694 case GTK_WEBVIEWTOOLBAR_ACTION_SMILEY: |
1702 case GTK_WEBVIEW_ACTION_SMILEY: |
| 1695 act = priv->smiley; |
1703 act = priv->smiley; |
| 1696 break; |
1704 break; |
| 1697 |
1705 |
| 1698 case GTK_WEBVIEWTOOLBAR_ACTION_ATTENTION: |
1706 case GTK_WEBVIEW_ACTION_ATTENTION: |
| 1699 act = priv->attention; |
1707 act = priv->attention; |
| 1700 break; |
1708 break; |
| 1701 |
1709 |
| 1702 default: |
1710 default: |
| 1703 g_return_if_reached(); |
1711 g_return_if_reached(); |