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