| 1502 gtk_toolbar_set_icon_size(GTK_TOOLBAR(priv->wide_view), |
1502 gtk_toolbar_set_icon_size(GTK_TOOLBAR(priv->wide_view), |
| 1503 gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_EXTRA_SMALL)); |
1503 gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_EXTRA_SMALL)); |
| 1504 gtk_toolbar_set_style(GTK_TOOLBAR(priv->wide_view), GTK_TOOLBAR_ICONS); |
1504 gtk_toolbar_set_style(GTK_TOOLBAR(priv->wide_view), GTK_TOOLBAR_ICONS); |
| 1505 |
1505 |
| 1506 for (i = 0; i < G_N_ELEMENTS(layout); i++) { |
1506 for (i = 0; i < G_N_ELEMENTS(layout); i++) { |
| 1507 if (layout[i]) |
1507 if (layout[i]) { |
| 1508 item = GTK_TOOL_ITEM(gtk_action_create_tool_item(layout[i])); |
1508 item = GTK_TOOL_ITEM(gtk_action_create_tool_item(layout[i])); |
| 1509 else |
1509 g_object_set_data_full(G_OBJECT(item), "action-name", |
| |
1510 g_strdup(gtk_action_get_name(layout[i])), g_free); |
| |
1511 } else |
| 1510 item = gtk_separator_tool_item_new(); |
1512 item = gtk_separator_tool_item_new(); |
| 1511 gtk_toolbar_insert(GTK_TOOLBAR(priv->wide_view), item, -1); |
1513 gtk_toolbar_insert(GTK_TOOLBAR(priv->wide_view), item, -1); |
| 1512 } |
1514 } |
| 1513 } |
1515 } |
| 1514 |
1516 |
| |
1517 static inline void |
| |
1518 lean_view_add_menu_item(GtkWidget *menu, GtkAction *action) |
| |
1519 { |
| |
1520 GtkWidget *menuitem; |
| |
1521 |
| |
1522 menuitem = gtk_action_create_menu_item(action); |
| |
1523 gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); |
| |
1524 g_object_set_data_full(G_OBJECT(menuitem), "action-name", |
| |
1525 g_strdup(gtk_action_get_name(action)), g_free); |
| |
1526 } |
| |
1527 |
| 1515 static void |
1528 static void |
| 1516 pidgin_webviewtoolbar_create_lean_view(PidginWebViewToolbar *toolbar) |
1529 pidgin_webviewtoolbar_create_lean_view(PidginWebViewToolbar *toolbar) |
| 1517 { |
1530 { |
| 1518 PidginWebViewToolbarPriv *priv = PIDGIN_WEBVIEWTOOLBAR_GET_PRIVATE(toolbar); |
1531 PidginWebViewToolbarPriv *priv = PIDGIN_WEBVIEWTOOLBAR_GET_PRIVATE(toolbar); |
| 1519 GtkWidget *label; |
1532 GtkWidget *label; |
| 1520 GtkWidget *menuitem; |
|
| 1521 GtkToolItem *sep; |
1533 GtkToolItem *sep; |
| 1522 GtkToolItem *font_button; |
1534 GtkToolItem *font_button; |
| 1523 GtkWidget *font_menu; |
1535 GtkWidget *font_menu; |
| 1524 GtkToolItem *insert_button; |
1536 GtkToolItem *insert_button; |
| 1525 GtkWidget *insert_menu; |
1537 GtkWidget *insert_menu; |
| 1529 priv->lean_view = gtk_toolbar_new(); |
1541 priv->lean_view = gtk_toolbar_new(); |
| 1530 gtk_toolbar_set_icon_size(GTK_TOOLBAR(priv->lean_view), |
1542 gtk_toolbar_set_icon_size(GTK_TOOLBAR(priv->lean_view), |
| 1531 gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_EXTRA_SMALL)); |
1543 gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_EXTRA_SMALL)); |
| 1532 gtk_toolbar_set_style(GTK_TOOLBAR(priv->lean_view), GTK_TOOLBAR_BOTH_HORIZ); |
1544 gtk_toolbar_set_style(GTK_TOOLBAR(priv->lean_view), GTK_TOOLBAR_BOTH_HORIZ); |
| 1533 |
1545 |
| 1534 #define ADD_MENU_ITEM(menu, item) \ |
|
| 1535 menuitem = gtk_action_create_menu_item((item)); \ |
|
| 1536 gtk_menu_shell_append(GTK_MENU_SHELL((menu)), menuitem); |
|
| 1537 |
|
| 1538 /* Fonts */ |
1546 /* Fonts */ |
| 1539 font_button = gtk_toggle_tool_button_new(); |
1547 font_button = gtk_toggle_tool_button_new(); |
| |
1548 g_object_set_data_full(G_OBJECT(font_button), "action-name", |
| |
1549 g_strdup("font"), g_free); |
| 1540 gtk_toolbar_insert(GTK_TOOLBAR(priv->lean_view), font_button, -1); |
1550 gtk_toolbar_insert(GTK_TOOLBAR(priv->lean_view), font_button, -1); |
| 1541 gtk_tool_item_set_is_important(font_button, TRUE); |
1551 gtk_tool_item_set_is_important(font_button, TRUE); |
| 1542 gtk_tool_button_set_stock_id(GTK_TOOL_BUTTON(font_button), GTK_STOCK_BOLD); |
1552 gtk_tool_button_set_stock_id(GTK_TOOL_BUTTON(font_button), GTK_STOCK_BOLD); |
| 1543 priv->font_label = label = gtk_label_new_with_mnemonic(_("_Font")); |
1553 priv->font_label = label = gtk_label_new_with_mnemonic(_("_Font")); |
| 1544 gtk_label_set_use_markup(GTK_LABEL(label), TRUE); |
1554 gtk_label_set_use_markup(GTK_LABEL(label), TRUE); |
| 1545 gtk_tool_button_set_label_widget(GTK_TOOL_BUTTON(font_button), label); |
1555 gtk_tool_button_set_label_widget(GTK_TOOL_BUTTON(font_button), label); |
| 1546 |
1556 |
| 1547 priv->font_menu = font_menu = gtk_menu_new(); |
1557 priv->font_menu = font_menu = gtk_menu_new(); |
| 1548 |
1558 g_object_set_data(G_OBJECT(font_button), "menu", font_menu); |
| 1549 ADD_MENU_ITEM(font_menu, priv->bold); |
1559 |
| 1550 ADD_MENU_ITEM(font_menu, priv->italic); |
1560 lean_view_add_menu_item(font_menu, priv->bold); |
| 1551 ADD_MENU_ITEM(font_menu, priv->underline); |
1561 lean_view_add_menu_item(font_menu, priv->italic); |
| 1552 ADD_MENU_ITEM(font_menu, priv->strike); |
1562 lean_view_add_menu_item(font_menu, priv->underline); |
| 1553 ADD_MENU_ITEM(font_menu, priv->larger_size); |
1563 lean_view_add_menu_item(font_menu, priv->strike); |
| |
1564 lean_view_add_menu_item(font_menu, priv->larger_size); |
| 1554 #if 0 |
1565 #if 0 |
| 1555 ADD_MENU_ITEM(font_menu, priv->normal_size); |
1566 lean_view_add_menu_item(font_menu, priv->normal_size); |
| 1556 #endif |
1567 #endif |
| 1557 ADD_MENU_ITEM(font_menu, priv->smaller_size); |
1568 lean_view_add_menu_item(font_menu, priv->smaller_size); |
| 1558 ADD_MENU_ITEM(font_menu, priv->font); |
1569 lean_view_add_menu_item(font_menu, priv->font); |
| 1559 ADD_MENU_ITEM(font_menu, priv->fgcolor); |
1570 lean_view_add_menu_item(font_menu, priv->fgcolor); |
| 1560 ADD_MENU_ITEM(font_menu, priv->bgcolor); |
1571 lean_view_add_menu_item(font_menu, priv->bgcolor); |
| 1561 ADD_MENU_ITEM(font_menu, priv->clear); |
1572 lean_view_add_menu_item(font_menu, priv->clear); |
| 1562 |
1573 |
| 1563 g_signal_connect(G_OBJECT(font_button), "toggled", |
1574 g_signal_connect(G_OBJECT(font_button), "toggled", |
| 1564 G_CALLBACK(pidgin_menu_clicked), font_menu); |
1575 G_CALLBACK(pidgin_menu_clicked), font_menu); |
| 1565 g_signal_connect_object(G_OBJECT(font_menu), "deactivate", |
1576 g_signal_connect_object(G_OBJECT(font_menu), "deactivate", |
| 1566 G_CALLBACK(pidgin_menu_deactivate), font_button, 0); |
1577 G_CALLBACK(pidgin_menu_deactivate), font_button, 0); |
| 1571 sep = gtk_separator_tool_item_new(); |
1582 sep = gtk_separator_tool_item_new(); |
| 1572 gtk_toolbar_insert(GTK_TOOLBAR(priv->lean_view), sep, -1); |
1583 gtk_toolbar_insert(GTK_TOOLBAR(priv->lean_view), sep, -1); |
| 1573 |
1584 |
| 1574 /* Insert */ |
1585 /* Insert */ |
| 1575 insert_button = gtk_toggle_tool_button_new(); |
1586 insert_button = gtk_toggle_tool_button_new(); |
| |
1587 g_object_set_data_full(G_OBJECT(insert_button), "action-name", |
| |
1588 g_strdup("insert"), g_free); |
| 1576 gtk_toolbar_insert(GTK_TOOLBAR(priv->lean_view), insert_button, -1); |
1589 gtk_toolbar_insert(GTK_TOOLBAR(priv->lean_view), insert_button, -1); |
| 1577 gtk_tool_item_set_is_important(insert_button, TRUE); |
1590 gtk_tool_item_set_is_important(insert_button, TRUE); |
| 1578 gtk_tool_button_set_stock_id(GTK_TOOL_BUTTON(insert_button), |
1591 gtk_tool_button_set_stock_id(GTK_TOOL_BUTTON(insert_button), |
| 1579 PIDGIN_STOCK_TOOLBAR_INSERT); |
1592 PIDGIN_STOCK_TOOLBAR_INSERT); |
| 1580 label = gtk_label_new_with_mnemonic(_("_Insert")); |
1593 label = gtk_label_new_with_mnemonic(_("_Insert")); |
| 1581 gtk_tool_button_set_label_widget(GTK_TOOL_BUTTON(insert_button), label); |
1594 gtk_tool_button_set_label_widget(GTK_TOOL_BUTTON(insert_button), label); |
| 1582 |
1595 |
| 1583 priv->insert_menu = insert_menu = gtk_menu_new(); |
1596 priv->insert_menu = insert_menu = gtk_menu_new(); |
| 1584 |
1597 g_object_set_data(G_OBJECT(insert_button), "menu", insert_menu); |
| 1585 ADD_MENU_ITEM(insert_menu, priv->image); |
1598 |
| 1586 ADD_MENU_ITEM(insert_menu, priv->link); |
1599 lean_view_add_menu_item(insert_menu, priv->image); |
| 1587 ADD_MENU_ITEM(insert_menu, priv->hr); |
1600 lean_view_add_menu_item(insert_menu, priv->link); |
| |
1601 lean_view_add_menu_item(insert_menu, priv->hr); |
| 1588 |
1602 |
| 1589 g_signal_connect(G_OBJECT(insert_button), "toggled", |
1603 g_signal_connect(G_OBJECT(insert_button), "toggled", |
| 1590 G_CALLBACK(pidgin_menu_clicked), insert_menu); |
1604 G_CALLBACK(pidgin_menu_clicked), insert_menu); |
| 1591 g_signal_connect_object(G_OBJECT(insert_menu), "deactivate", |
1605 g_signal_connect_object(G_OBJECT(insert_menu), "deactivate", |
| 1592 G_CALLBACK(pidgin_menu_deactivate), insert_button, 0); |
1606 G_CALLBACK(pidgin_menu_deactivate), insert_button, 0); |
| 1595 sep = gtk_separator_tool_item_new(); |
1609 sep = gtk_separator_tool_item_new(); |
| 1596 gtk_toolbar_insert(GTK_TOOLBAR(priv->lean_view), sep, -1); |
1610 gtk_toolbar_insert(GTK_TOOLBAR(priv->lean_view), sep, -1); |
| 1597 |
1611 |
| 1598 /* Smiley */ |
1612 /* Smiley */ |
| 1599 smiley_button = gtk_action_create_tool_item(priv->smiley); |
1613 smiley_button = gtk_action_create_tool_item(priv->smiley); |
| |
1614 g_object_set_data_full(G_OBJECT(smiley_button), "action-name", |
| |
1615 g_strdup("smiley"), g_free); |
| 1600 gtk_toolbar_insert(GTK_TOOLBAR(priv->lean_view), |
1616 gtk_toolbar_insert(GTK_TOOLBAR(priv->lean_view), |
| 1601 GTK_TOOL_ITEM(smiley_button), -1); |
1617 GTK_TOOL_ITEM(smiley_button), -1); |
| 1602 |
1618 |
| 1603 /* Sep */ |
1619 /* Sep */ |
| 1604 sep = gtk_separator_tool_item_new(); |
1620 sep = gtk_separator_tool_item_new(); |
| 1605 gtk_toolbar_insert(GTK_TOOLBAR(priv->lean_view), sep, -1); |
1621 gtk_toolbar_insert(GTK_TOOLBAR(priv->lean_view), sep, -1); |
| 1606 |
1622 |
| 1607 /* Attention */ |
1623 /* Attention */ |
| 1608 attention_button = gtk_action_create_tool_item(priv->attention); |
1624 attention_button = gtk_action_create_tool_item(priv->attention); |
| |
1625 g_object_set_data_full(G_OBJECT(attention_button), "action-name", |
| |
1626 g_strdup("attention"), g_free); |
| 1609 gtk_toolbar_insert(GTK_TOOLBAR(priv->lean_view), |
1627 gtk_toolbar_insert(GTK_TOOLBAR(priv->lean_view), |
| 1610 GTK_TOOL_ITEM(attention_button), -1); |
1628 GTK_TOOL_ITEM(attention_button), -1); |
| 1611 |
|
| 1612 #undef ADD_MENU_ITEM |
|
| 1613 } |
1629 } |
| 1614 |
1630 |
| 1615 static void |
1631 static void |
| 1616 pidgin_webviewtoolbar_init(PidginWebViewToolbar *toolbar) |
1632 pidgin_webviewtoolbar_init(PidginWebViewToolbar *toolbar) |
| 1617 { |
1633 { |