pidgin/gtkwebviewtoolbar.c

branch
soc.2013.gobjectification.plugins
changeset 36459
b52f5391d12d
parent 36424
477889a0073c
parent 34874
e03d555394c5
child 36541
25bbce98aeb6
equal deleted inserted replaced
36458:a9cccad073e9 36459:b52f5391d12d
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();

mercurial