| 1339 } |
1340 } |
| 1340 |
1341 |
| 1341 static gboolean imhtml_message_send(GtkIMHtml *imhtml) |
1342 static gboolean imhtml_message_send(GtkIMHtml *imhtml) |
| 1342 { |
1343 { |
| 1343 return FALSE; |
1344 return FALSE; |
| |
1345 } |
| |
1346 |
| |
1347 static void |
| |
1348 imhtml_paste_cb(GtkIMHtml *imhtml, const char *str) |
| |
1349 { |
| |
1350 if (!str || !*str || !strcmp(str, "html")) |
| |
1351 g_signal_emit_by_name(imhtml, "paste_clipboard"); |
| |
1352 else if (!strcmp(str, "text")) |
| |
1353 paste_unformatted_cb(NULL, imhtml); |
| 1344 } |
1354 } |
| 1345 |
1355 |
| 1346 static void imhtml_toggle_format(GtkIMHtml *imhtml, GtkIMHtmlButtons buttons) |
1356 static void imhtml_toggle_format(GtkIMHtml *imhtml, GtkIMHtmlButtons buttons) |
| 1347 { |
1357 { |
| 1348 /* since this function is the handler for the formatting keystrokes, |
1358 /* since this function is the handler for the formatting keystrokes, |
| 1511 G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, |
1521 G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, |
| 1512 G_STRUCT_OFFSET(GtkIMHtmlClass, message_send), |
1522 G_STRUCT_OFFSET(GtkIMHtmlClass, message_send), |
| 1513 NULL, |
1523 NULL, |
| 1514 0, g_cclosure_marshal_VOID__VOID, |
1524 0, g_cclosure_marshal_VOID__VOID, |
| 1515 G_TYPE_NONE, 0); |
1525 G_TYPE_NONE, 0); |
| 1516 signals [UNDO] = g_signal_new ("undo", |
1526 signals[PASTE] = g_signal_new("paste", |
| 1517 G_TYPE_FROM_CLASS (klass), |
1527 G_TYPE_FROM_CLASS(gobject_class), |
| 1518 G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, |
1528 G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, |
| 1519 G_STRUCT_OFFSET (GtkIMHtmlClass, undo), |
1529 0, |
| 1520 NULL, |
1530 NULL, |
| 1521 NULL, |
1531 0, g_cclosure_marshal_VOID__STRING, |
| 1522 gtksourceview_marshal_VOID__VOID, |
1532 G_TYPE_NONE, 1, G_TYPE_STRING); |
| 1523 G_TYPE_NONE, |
1533 signals [UNDO] = g_signal_new ("undo", |
| 1524 0); |
1534 G_TYPE_FROM_CLASS (klass), |
| 1525 signals [REDO] = g_signal_new ("redo", |
1535 G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, |
| 1526 G_TYPE_FROM_CLASS (klass), |
1536 G_STRUCT_OFFSET (GtkIMHtmlClass, undo), |
| 1527 G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, |
1537 NULL, |
| 1528 G_STRUCT_OFFSET (GtkIMHtmlClass, redo), |
1538 NULL, |
| 1529 NULL, |
1539 gtksourceview_marshal_VOID__VOID, |
| 1530 NULL, |
1540 G_TYPE_NONE, |
| 1531 gtksourceview_marshal_VOID__VOID, |
1541 0); |
| 1532 G_TYPE_NONE, |
1542 signals [REDO] = g_signal_new ("redo", |
| 1533 0); |
1543 G_TYPE_FROM_CLASS (klass), |
| |
1544 G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, |
| |
1545 G_STRUCT_OFFSET (GtkIMHtmlClass, redo), |
| |
1546 NULL, |
| |
1547 NULL, |
| |
1548 gtksourceview_marshal_VOID__VOID, |
| |
1549 G_TYPE_NONE, |
| |
1550 0); |
| 1534 |
1551 |
| 1535 |
1552 |
| 1536 |
1553 |
| 1537 klass->toggle_format = imhtml_toggle_format; |
1554 klass->toggle_format = imhtml_toggle_format; |
| 1538 klass->message_send = imhtml_message_send; |
1555 klass->message_send = imhtml_message_send; |
| 1613 gtk_binding_entry_add_signal (binding_set, GDK_minus, GDK_CONTROL_MASK, "format_function_toggle", 1, G_TYPE_INT, GTK_IMHTML_SHRINK); |
1630 gtk_binding_entry_add_signal (binding_set, GDK_minus, GDK_CONTROL_MASK, "format_function_toggle", 1, G_TYPE_INT, GTK_IMHTML_SHRINK); |
| 1614 binding_set = gtk_binding_set_by_class(klass); |
1631 binding_set = gtk_binding_set_by_class(klass); |
| 1615 gtk_binding_entry_add_signal (binding_set, GDK_r, GDK_CONTROL_MASK, "format_function_clear", 0); |
1632 gtk_binding_entry_add_signal (binding_set, GDK_r, GDK_CONTROL_MASK, "format_function_clear", 0); |
| 1616 gtk_binding_entry_add_signal (binding_set, GDK_KP_Enter, 0, "message_send", 0); |
1633 gtk_binding_entry_add_signal (binding_set, GDK_KP_Enter, 0, "message_send", 0); |
| 1617 gtk_binding_entry_add_signal (binding_set, GDK_Return, 0, "message_send", 0); |
1634 gtk_binding_entry_add_signal (binding_set, GDK_Return, 0, "message_send", 0); |
| 1618 gtk_binding_entry_add_signal (binding_set, GDK_z, GDK_CONTROL_MASK, "undo", 0); |
1635 gtk_binding_entry_add_signal (binding_set, GDK_z, GDK_CONTROL_MASK, "undo", 0); |
| 1619 gtk_binding_entry_add_signal (binding_set, GDK_z, GDK_CONTROL_MASK | GDK_SHIFT_MASK, "redo", 0); |
1636 gtk_binding_entry_add_signal (binding_set, GDK_z, GDK_CONTROL_MASK | GDK_SHIFT_MASK, "redo", 0); |
| 1620 gtk_binding_entry_add_signal (binding_set, GDK_F14, 0, "undo", 0); |
1637 gtk_binding_entry_add_signal (binding_set, GDK_F14, 0, "undo", 0); |
| 1621 |
1638 gtk_binding_entry_add_signal(binding_set, GDK_v, GDK_CONTROL_MASK | GDK_SHIFT_MASK, "paste", 1, G_TYPE_STRING, "text"); |
| 1622 } |
1639 } |
| 1623 |
1640 |
| 1624 static void gtk_imhtml_init (GtkIMHtml *imhtml) |
1641 static void gtk_imhtml_init (GtkIMHtml *imhtml) |
| 1625 { |
1642 { |
| 1626 imhtml->text_buffer = gtk_text_buffer_new(NULL); |
1643 imhtml->text_buffer = gtk_text_buffer_new(NULL); |
| 1687 g_signal_connect(G_OBJECT(imhtml), "copy-clipboard", G_CALLBACK(copy_clipboard_cb), NULL); |
1704 g_signal_connect(G_OBJECT(imhtml), "copy-clipboard", G_CALLBACK(copy_clipboard_cb), NULL); |
| 1688 g_signal_connect(G_OBJECT(imhtml), "cut-clipboard", G_CALLBACK(cut_clipboard_cb), NULL); |
1705 g_signal_connect(G_OBJECT(imhtml), "cut-clipboard", G_CALLBACK(cut_clipboard_cb), NULL); |
| 1689 g_signal_connect(G_OBJECT(imhtml), "paste-clipboard", G_CALLBACK(paste_clipboard_cb), NULL); |
1706 g_signal_connect(G_OBJECT(imhtml), "paste-clipboard", G_CALLBACK(paste_clipboard_cb), NULL); |
| 1690 g_signal_connect_after(G_OBJECT(imhtml), "realize", G_CALLBACK(imhtml_realized_remove_primary), NULL); |
1707 g_signal_connect_after(G_OBJECT(imhtml), "realize", G_CALLBACK(imhtml_realized_remove_primary), NULL); |
| 1691 g_signal_connect(G_OBJECT(imhtml), "unrealize", G_CALLBACK(imhtml_destroy_add_primary), NULL); |
1708 g_signal_connect(G_OBJECT(imhtml), "unrealize", G_CALLBACK(imhtml_destroy_add_primary), NULL); |
| |
1709 g_signal_connect(G_OBJECT(imhtml), "paste", G_CALLBACK(imhtml_paste_cb), NULL); |
| 1692 |
1710 |
| 1693 #ifndef _WIN32 |
1711 #ifndef _WIN32 |
| 1694 g_signal_connect_after(G_OBJECT(GTK_IMHTML(imhtml)->text_buffer), "mark-set", |
1712 g_signal_connect_after(G_OBJECT(GTK_IMHTML(imhtml)->text_buffer), "mark-set", |
| 1695 G_CALLBACK(mark_set_so_update_selection_cb), imhtml); |
1713 G_CALLBACK(mark_set_so_update_selection_cb), imhtml); |
| 1696 #endif |
1714 #endif |