comparison pidgin/gtkimhtml.c @ 30037:f988f25259c7

merged with im.pidgin.pidgin
author Yoshiki Yazawa <yaz@honeyplanet.jp>
date Wed, 24 Mar 2010 17:44:40 +0900
parents 2292d8896b0b ffb8cd9fb528
children 06fa97f637a7
comparison
equal deleted inserted replaced
29995:2292d8896b0b 30037:f988f25259c7
154 CLEAR_FORMAT, 154 CLEAR_FORMAT,
155 UPDATE_FORMAT, 155 UPDATE_FORMAT,
156 MESSAGE_SEND, 156 MESSAGE_SEND,
157 UNDO, 157 UNDO,
158 REDO, 158 REDO,
159 PASTE,
159 LAST_SIGNAL 160 LAST_SIGNAL
160 }; 161 };
161 static guint signals [LAST_SIGNAL] = { 0 }; 162 static guint signals [LAST_SIGNAL] = { 0 };
162 163
163 static char *html_clipboard = NULL; 164 static char *html_clipboard = NULL;
1353 } 1354 }
1354 1355
1355 static gboolean imhtml_message_send(GtkIMHtml *imhtml) 1356 static gboolean imhtml_message_send(GtkIMHtml *imhtml)
1356 { 1357 {
1357 return FALSE; 1358 return FALSE;
1359 }
1360
1361 static void
1362 imhtml_paste_cb(GtkIMHtml *imhtml, const char *str)
1363 {
1364 if (!str || !*str || !strcmp(str, "html"))
1365 g_signal_emit_by_name(imhtml, "paste_clipboard");
1366 else if (!strcmp(str, "text"))
1367 paste_unformatted_cb(NULL, imhtml);
1358 } 1368 }
1359 1369
1360 static void imhtml_toggle_format(GtkIMHtml *imhtml, GtkIMHtmlButtons buttons) 1370 static void imhtml_toggle_format(GtkIMHtml *imhtml, GtkIMHtmlButtons buttons)
1361 { 1371 {
1362 /* since this function is the handler for the formatting keystrokes, 1372 /* since this function is the handler for the formatting keystrokes,
1525 G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, 1535 G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
1526 G_STRUCT_OFFSET(GtkIMHtmlClass, message_send), 1536 G_STRUCT_OFFSET(GtkIMHtmlClass, message_send),
1527 NULL, 1537 NULL,
1528 0, g_cclosure_marshal_VOID__VOID, 1538 0, g_cclosure_marshal_VOID__VOID,
1529 G_TYPE_NONE, 0); 1539 G_TYPE_NONE, 0);
1530 signals [UNDO] = g_signal_new ("undo", 1540 signals[PASTE] = g_signal_new("paste",
1531 G_TYPE_FROM_CLASS (klass), 1541 G_TYPE_FROM_CLASS(gobject_class),
1532 G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, 1542 G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
1533 G_STRUCT_OFFSET (GtkIMHtmlClass, undo), 1543 0,
1534 NULL, 1544 NULL,
1535 NULL, 1545 0, g_cclosure_marshal_VOID__STRING,
1536 gtksourceview_marshal_VOID__VOID, 1546 G_TYPE_NONE, 1, G_TYPE_STRING);
1537 G_TYPE_NONE, 1547 signals [UNDO] = g_signal_new ("undo",
1538 0); 1548 G_TYPE_FROM_CLASS (klass),
1539 signals [REDO] = g_signal_new ("redo", 1549 G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
1540 G_TYPE_FROM_CLASS (klass), 1550 G_STRUCT_OFFSET (GtkIMHtmlClass, undo),
1541 G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, 1551 NULL,
1542 G_STRUCT_OFFSET (GtkIMHtmlClass, redo), 1552 NULL,
1543 NULL, 1553 gtksourceview_marshal_VOID__VOID,
1544 NULL, 1554 G_TYPE_NONE,
1545 gtksourceview_marshal_VOID__VOID, 1555 0);
1546 G_TYPE_NONE, 1556 signals [REDO] = g_signal_new ("redo",
1547 0); 1557 G_TYPE_FROM_CLASS (klass),
1558 G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
1559 G_STRUCT_OFFSET (GtkIMHtmlClass, redo),
1560 NULL,
1561 NULL,
1562 gtksourceview_marshal_VOID__VOID,
1563 G_TYPE_NONE,
1564 0);
1548 1565
1549 1566
1550 1567
1551 klass->toggle_format = imhtml_toggle_format; 1568 klass->toggle_format = imhtml_toggle_format;
1552 klass->message_send = imhtml_message_send; 1569 klass->message_send = imhtml_message_send;
1627 gtk_binding_entry_add_signal (binding_set, GDK_minus, GDK_CONTROL_MASK, "format_function_toggle", 1, G_TYPE_INT, GTK_IMHTML_SHRINK); 1644 gtk_binding_entry_add_signal (binding_set, GDK_minus, GDK_CONTROL_MASK, "format_function_toggle", 1, G_TYPE_INT, GTK_IMHTML_SHRINK);
1628 binding_set = gtk_binding_set_by_class(klass); 1645 binding_set = gtk_binding_set_by_class(klass);
1629 gtk_binding_entry_add_signal (binding_set, GDK_r, GDK_CONTROL_MASK, "format_function_clear", 0); 1646 gtk_binding_entry_add_signal (binding_set, GDK_r, GDK_CONTROL_MASK, "format_function_clear", 0);
1630 gtk_binding_entry_add_signal (binding_set, GDK_KP_Enter, 0, "message_send", 0); 1647 gtk_binding_entry_add_signal (binding_set, GDK_KP_Enter, 0, "message_send", 0);
1631 gtk_binding_entry_add_signal (binding_set, GDK_Return, 0, "message_send", 0); 1648 gtk_binding_entry_add_signal (binding_set, GDK_Return, 0, "message_send", 0);
1632 gtk_binding_entry_add_signal (binding_set, GDK_z, GDK_CONTROL_MASK, "undo", 0); 1649 gtk_binding_entry_add_signal (binding_set, GDK_z, GDK_CONTROL_MASK, "undo", 0);
1633 gtk_binding_entry_add_signal (binding_set, GDK_z, GDK_CONTROL_MASK | GDK_SHIFT_MASK, "redo", 0); 1650 gtk_binding_entry_add_signal (binding_set, GDK_z, GDK_CONTROL_MASK | GDK_SHIFT_MASK, "redo", 0);
1634 gtk_binding_entry_add_signal (binding_set, GDK_F14, 0, "undo", 0); 1651 gtk_binding_entry_add_signal (binding_set, GDK_F14, 0, "undo", 0);
1635 1652 gtk_binding_entry_add_signal(binding_set, GDK_v, GDK_CONTROL_MASK | GDK_SHIFT_MASK, "paste", 1, G_TYPE_STRING, "text");
1636 } 1653 }
1637 1654
1638 static void gtk_imhtml_init (GtkIMHtml *imhtml) 1655 static void gtk_imhtml_init (GtkIMHtml *imhtml)
1639 { 1656 {
1640 imhtml->text_buffer = gtk_text_buffer_new(NULL); 1657 imhtml->text_buffer = gtk_text_buffer_new(NULL);
1701 g_signal_connect(G_OBJECT(imhtml), "copy-clipboard", G_CALLBACK(copy_clipboard_cb), NULL); 1718 g_signal_connect(G_OBJECT(imhtml), "copy-clipboard", G_CALLBACK(copy_clipboard_cb), NULL);
1702 g_signal_connect(G_OBJECT(imhtml), "cut-clipboard", G_CALLBACK(cut_clipboard_cb), NULL); 1719 g_signal_connect(G_OBJECT(imhtml), "cut-clipboard", G_CALLBACK(cut_clipboard_cb), NULL);
1703 g_signal_connect(G_OBJECT(imhtml), "paste-clipboard", G_CALLBACK(paste_clipboard_cb), NULL); 1720 g_signal_connect(G_OBJECT(imhtml), "paste-clipboard", G_CALLBACK(paste_clipboard_cb), NULL);
1704 g_signal_connect_after(G_OBJECT(imhtml), "realize", G_CALLBACK(imhtml_realized_remove_primary), NULL); 1721 g_signal_connect_after(G_OBJECT(imhtml), "realize", G_CALLBACK(imhtml_realized_remove_primary), NULL);
1705 g_signal_connect(G_OBJECT(imhtml), "unrealize", G_CALLBACK(imhtml_destroy_add_primary), NULL); 1722 g_signal_connect(G_OBJECT(imhtml), "unrealize", G_CALLBACK(imhtml_destroy_add_primary), NULL);
1723 g_signal_connect(G_OBJECT(imhtml), "paste", G_CALLBACK(imhtml_paste_cb), NULL);
1706 1724
1707 #ifndef _WIN32 1725 #ifndef _WIN32
1708 g_signal_connect_after(G_OBJECT(GTK_IMHTML(imhtml)->text_buffer), "mark-set", 1726 g_signal_connect_after(G_OBJECT(GTK_IMHTML(imhtml)->text_buffer), "mark-set",
1709 G_CALLBACK(mark_set_so_update_selection_cb), imhtml); 1727 G_CALLBACK(mark_set_so_update_selection_cb), imhtml);
1710 #endif 1728 #endif