Mercurial > pidgin.yaz
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 |