From 07501cf02e8cbbec7b55792e867469562fbc8f03 Mon Sep 17 00:00:00 2001 From: Christian Dywan Date: Wed, 7 Oct 2009 18:27:21 +0200 Subject: [PATCH] Remove GtkOldEditable completely --- gtk/gtkoldeditable.c | 829 ------------------------------------------- gtk/gtkoldeditable.h | 126 ------- 2 files changed, 955 deletions(-) delete mode 100644 gtk/gtkoldeditable.c delete mode 100644 gtk/gtkoldeditable.h diff --git a/gtk/gtkoldeditable.c b/gtk/gtkoldeditable.c deleted file mode 100644 index 983e99fd3..000000000 --- a/gtk/gtkoldeditable.c +++ /dev/null @@ -1,829 +0,0 @@ -/* GTK - The GIMP Toolkit - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GTK+ Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GTK+ at ftp://ftp.gtk.org/pub/gtk/. - */ - -#undef GTK_DISABLE_DEPRECATED - -#include "config.h" -#include -#include "gdk/gdkkeysyms.h" -#include "gdk/gdki18n.h" -#include "gtkclipboard.h" -#include "gtkoldeditable.h" -#include "gtkmain.h" -#include "gtkmarshalers.h" -#include "gtkselection.h" -#include "gtksignal.h" -#include "gtkintl.h" - -#include "gtkalias.h" - -#define MIN_EDITABLE_WIDTH 150 -#define DRAW_TIMEOUT 20 -#define INNER_BORDER 2 - -enum { - /* Binding actions */ - ACTIVATE, - SET_EDITABLE, - MOVE_CURSOR, - MOVE_WORD, - MOVE_PAGE, - MOVE_TO_ROW, - MOVE_TO_COLUMN, - KILL_CHAR, - KILL_WORD, - KILL_LINE, - CUT_CLIPBOARD, - COPY_CLIPBOARD, - PASTE_CLIPBOARD, - LAST_SIGNAL -}; - -enum { - ARG_0, - ARG_TEXT_POSITION, - ARG_EDITABLE -}; - -/* values for selection info */ - -enum { - TARGET_STRING, - TARGET_TEXT, - TARGET_COMPOUND_TEXT -}; - -static void gtk_old_editable_editable_init (GtkEditableClass *iface); -static void gtk_old_editable_set_arg (GtkObject *object, - GtkArg *arg, - guint arg_id); -static void gtk_old_editable_get_arg (GtkObject *object, - GtkArg *arg, - guint arg_id); -static void *gtk_old_editable_get_public_chars (GtkOldEditable *old_editable, - gint start, - gint end); - -static gint gtk_old_editable_selection_clear (GtkWidget *widget, - GdkEventSelection *event); -static void gtk_old_editable_selection_get (GtkWidget *widget, - GtkSelectionData *selection_data, - guint info, - guint time); -static void gtk_old_editable_selection_received (GtkWidget *widget, - GtkSelectionData *selection_data, - guint time); - -static void gtk_old_editable_set_selection (GtkOldEditable *old_editable, - gint start, - gint end); - -static void gtk_old_editable_real_set_editable (GtkOldEditable *old_editable, - gboolean is_editable); -static void gtk_old_editable_real_cut_clipboard (GtkOldEditable *old_editable); -static void gtk_old_editable_real_copy_clipboard (GtkOldEditable *old_editable); -static void gtk_old_editable_real_paste_clipboard (GtkOldEditable *old_editable); - -static void gtk_old_editable_insert_text (GtkEditable *editable, - const gchar *new_text, - gint new_text_length, - gint *position); -static void gtk_old_editable_delete_text (GtkEditable *editable, - gint start_pos, - gint end_pos); -static gchar * gtk_old_editable_get_chars (GtkEditable *editable, - gint start, - gint end); -static void gtk_old_editable_set_selection_bounds (GtkEditable *editable, - gint start, - gint end); -static gboolean gtk_old_editable_get_selection_bounds (GtkEditable *editable, - gint *start, - gint *end); -static void gtk_old_editable_set_position (GtkEditable *editable, - gint position); -static gint gtk_old_editable_get_position (GtkEditable *editable); -static void gtk_old_editable_finalize (GObject *object); - -static guint editable_signals[LAST_SIGNAL] = { 0 }; - -G_DEFINE_ABSTRACT_TYPE_WITH_CODE (GtkOldEditable, gtk_old_editable, GTK_TYPE_WIDGET, - G_IMPLEMENT_INTERFACE (GTK_TYPE_EDITABLE, - gtk_old_editable_editable_init)) - -static void -gtk_old_editable_class_init (GtkOldEditableClass *class) -{ - GObjectClass *gobject_class; - GtkObjectClass *object_class; - GtkWidgetClass *widget_class; - - gobject_class = (GObjectClass*) class; - object_class = (GtkObjectClass*) class; - widget_class = (GtkWidgetClass*) class; - - gobject_class->finalize = gtk_old_editable_finalize; - - object_class->set_arg = gtk_old_editable_set_arg; - object_class->get_arg = gtk_old_editable_get_arg; - - widget_class->selection_clear_event = gtk_old_editable_selection_clear; - widget_class->selection_received = gtk_old_editable_selection_received; - widget_class->selection_get = gtk_old_editable_selection_get; - - class->activate = NULL; - class->set_editable = gtk_old_editable_real_set_editable; - - class->move_cursor = NULL; - class->move_word = NULL; - class->move_page = NULL; - class->move_to_row = NULL; - class->move_to_column = NULL; - - class->kill_char = NULL; - class->kill_word = NULL; - class->kill_line = NULL; - - class->cut_clipboard = gtk_old_editable_real_cut_clipboard; - class->copy_clipboard = gtk_old_editable_real_copy_clipboard; - class->paste_clipboard = gtk_old_editable_real_paste_clipboard; - - class->update_text = NULL; - class->get_chars = NULL; - class->set_selection = NULL; - class->set_position = NULL; - - editable_signals[ACTIVATE] = - gtk_signal_new (I_("activate"), - GTK_RUN_LAST | GTK_RUN_ACTION, - GTK_CLASS_TYPE (object_class), - GTK_SIGNAL_OFFSET (GtkOldEditableClass, activate), - _gtk_marshal_VOID__VOID, - GTK_TYPE_NONE, 0); - widget_class->activate_signal = editable_signals[ACTIVATE]; - - editable_signals[SET_EDITABLE] = - gtk_signal_new (I_("set-editable"), - GTK_RUN_LAST | GTK_RUN_ACTION, - GTK_CLASS_TYPE (object_class), - GTK_SIGNAL_OFFSET (GtkOldEditableClass, set_editable), - _gtk_marshal_VOID__BOOLEAN, - GTK_TYPE_NONE, 1, - GTK_TYPE_BOOL); - - editable_signals[MOVE_CURSOR] = - gtk_signal_new (I_("move-cursor"), - GTK_RUN_LAST | GTK_RUN_ACTION, - GTK_CLASS_TYPE (object_class), - GTK_SIGNAL_OFFSET (GtkOldEditableClass, move_cursor), - _gtk_marshal_VOID__INT_INT, - GTK_TYPE_NONE, 2, - GTK_TYPE_INT, - GTK_TYPE_INT); - - editable_signals[MOVE_WORD] = - gtk_signal_new (I_("move-word"), - GTK_RUN_LAST | GTK_RUN_ACTION, - GTK_CLASS_TYPE (object_class), - GTK_SIGNAL_OFFSET (GtkOldEditableClass, move_word), - _gtk_marshal_VOID__INT, - GTK_TYPE_NONE, 1, - GTK_TYPE_INT); - - editable_signals[MOVE_PAGE] = - gtk_signal_new (I_("move-page"), - GTK_RUN_LAST | GTK_RUN_ACTION, - GTK_CLASS_TYPE (object_class), - GTK_SIGNAL_OFFSET (GtkOldEditableClass, move_page), - _gtk_marshal_VOID__INT_INT, - GTK_TYPE_NONE, 2, - GTK_TYPE_INT, - GTK_TYPE_INT); - - editable_signals[MOVE_TO_ROW] = - gtk_signal_new (I_("move-to-row"), - GTK_RUN_LAST | GTK_RUN_ACTION, - GTK_CLASS_TYPE (object_class), - GTK_SIGNAL_OFFSET (GtkOldEditableClass, move_to_row), - _gtk_marshal_VOID__INT, - GTK_TYPE_NONE, 1, - GTK_TYPE_INT); - - editable_signals[MOVE_TO_COLUMN] = - gtk_signal_new (I_("move-to-column"), - GTK_RUN_LAST | GTK_RUN_ACTION, - GTK_CLASS_TYPE (object_class), - GTK_SIGNAL_OFFSET (GtkOldEditableClass, move_to_column), - _gtk_marshal_VOID__INT, - GTK_TYPE_NONE, 1, - GTK_TYPE_INT); - - editable_signals[KILL_CHAR] = - gtk_signal_new (I_("kill-char"), - GTK_RUN_LAST | GTK_RUN_ACTION, - GTK_CLASS_TYPE (object_class), - GTK_SIGNAL_OFFSET (GtkOldEditableClass, kill_char), - _gtk_marshal_VOID__INT, - GTK_TYPE_NONE, 1, - GTK_TYPE_INT); - - editable_signals[KILL_WORD] = - gtk_signal_new (I_("kill-word"), - GTK_RUN_LAST | GTK_RUN_ACTION, - GTK_CLASS_TYPE (object_class), - GTK_SIGNAL_OFFSET (GtkOldEditableClass, kill_word), - _gtk_marshal_VOID__INT, - GTK_TYPE_NONE, 1, - GTK_TYPE_INT); - - editable_signals[KILL_LINE] = - gtk_signal_new (I_("kill-line"), - GTK_RUN_LAST | GTK_RUN_ACTION, - GTK_CLASS_TYPE (object_class), - GTK_SIGNAL_OFFSET (GtkOldEditableClass, kill_line), - _gtk_marshal_VOID__INT, - GTK_TYPE_NONE, 1, - GTK_TYPE_INT); - - editable_signals[CUT_CLIPBOARD] = - gtk_signal_new (I_("cut-clipboard"), - GTK_RUN_LAST | GTK_RUN_ACTION, - GTK_CLASS_TYPE (object_class), - GTK_SIGNAL_OFFSET (GtkOldEditableClass, cut_clipboard), - _gtk_marshal_VOID__VOID, - GTK_TYPE_NONE, 0); - - editable_signals[COPY_CLIPBOARD] = - gtk_signal_new (I_("copy-clipboard"), - GTK_RUN_LAST | GTK_RUN_ACTION, - GTK_CLASS_TYPE (object_class), - GTK_SIGNAL_OFFSET (GtkOldEditableClass, copy_clipboard), - _gtk_marshal_VOID__VOID, - GTK_TYPE_NONE, 0); - - editable_signals[PASTE_CLIPBOARD] = - gtk_signal_new (I_("paste-clipboard"), - GTK_RUN_LAST | GTK_RUN_ACTION, - GTK_CLASS_TYPE (object_class), - GTK_SIGNAL_OFFSET (GtkOldEditableClass, paste_clipboard), - _gtk_marshal_VOID__VOID, - GTK_TYPE_NONE, 0); - - gtk_object_add_arg_type ("GtkOldEditable::text-position", GTK_TYPE_INT, GTK_ARG_READWRITE | G_PARAM_STATIC_NAME, ARG_TEXT_POSITION); - gtk_object_add_arg_type ("GtkOldEditable::editable", GTK_TYPE_BOOL, GTK_ARG_READWRITE | G_PARAM_STATIC_NAME, ARG_EDITABLE); -} - -static void -gtk_old_editable_editable_init (GtkEditableClass *iface) -{ - iface->do_insert_text = gtk_old_editable_insert_text; - iface->do_delete_text = gtk_old_editable_delete_text; - iface->get_chars = gtk_old_editable_get_chars; - iface->set_selection_bounds = gtk_old_editable_set_selection_bounds; - iface->get_selection_bounds = gtk_old_editable_get_selection_bounds; - iface->set_position = gtk_old_editable_set_position; - iface->get_position = gtk_old_editable_get_position; -} - -static void -gtk_old_editable_set_arg (GtkObject *object, - GtkArg *arg, - guint arg_id) -{ - GtkEditable *editable = GTK_EDITABLE (object); - - switch (arg_id) - { - case ARG_TEXT_POSITION: - gtk_editable_set_position (editable, GTK_VALUE_INT (*arg)); - break; - case ARG_EDITABLE: - gtk_signal_emit (object, editable_signals[SET_EDITABLE], - GTK_VALUE_BOOL (*arg) != FALSE); - break; - default: - break; - } -} - -static void -gtk_old_editable_get_arg (GtkObject *object, - GtkArg *arg, - guint arg_id) -{ - GtkOldEditable *old_editable; - - old_editable = GTK_OLD_EDITABLE (object); - - switch (arg_id) - { - case ARG_TEXT_POSITION: - GTK_VALUE_INT (*arg) = old_editable->current_pos; - break; - case ARG_EDITABLE: - GTK_VALUE_BOOL (*arg) = old_editable->editable; - break; - default: - arg->type = GTK_TYPE_INVALID; - break; - } -} - -static void -gtk_old_editable_init (GtkOldEditable *old_editable) -{ - static const GtkTargetEntry targets[] = { - { "UTF8_STRING", 0, 0 }, - { "STRING", 0, 0 }, - { "TEXT", 0, 0 }, - { "COMPOUND_TEXT", 0, 0 } - }; - - gtk_widget_set_can_focus (GTK_WIDGET (old_editable), TRUE); - - old_editable->selection_start_pos = 0; - old_editable->selection_end_pos = 0; - old_editable->has_selection = FALSE; - old_editable->editable = 1; - old_editable->visible = 1; - old_editable->clipboard_text = NULL; - - gtk_selection_add_targets (GTK_WIDGET (old_editable), GDK_SELECTION_PRIMARY, - targets, G_N_ELEMENTS (targets)); -} - -static void -gtk_old_editable_finalize (GObject *object) -{ - gtk_selection_clear_targets (GTK_WIDGET (object), GDK_SELECTION_PRIMARY); - - G_OBJECT_CLASS (gtk_old_editable_parent_class)->finalize (object); -} - -static void -gtk_old_editable_insert_text (GtkEditable *editable, - const gchar *new_text, - gint new_text_length, - gint *position) -{ - gchar buf[64]; - gchar *text; - - g_object_ref (editable); - - if (new_text_length <= 63) - text = buf; - else - text = g_new (gchar, new_text_length + 1); - - text[new_text_length] = '\0'; - strncpy (text, new_text, new_text_length); - - g_signal_emit_by_name (editable, "insert-text", text, new_text_length, - position); - g_signal_emit_by_name (editable, "changed"); - - if (new_text_length > 63) - g_free (text); - - g_object_unref (editable); -} - -static void -gtk_old_editable_delete_text (GtkEditable *editable, - gint start_pos, - gint end_pos) -{ - GtkOldEditable *old_editable = GTK_OLD_EDITABLE (editable); - - g_object_ref (old_editable); - - g_signal_emit_by_name (editable, "delete-text", start_pos, end_pos); - g_signal_emit_by_name (editable, "changed"); - - if (old_editable->selection_start_pos == old_editable->selection_end_pos && - old_editable->has_selection) - gtk_old_editable_claim_selection (old_editable, FALSE, GDK_CURRENT_TIME); - - g_object_unref (old_editable); -} - -static void -gtk_old_editable_update_text (GtkOldEditable *old_editable, - gint start_pos, - gint end_pos) -{ - GtkOldEditableClass *klass = GTK_OLD_EDITABLE_GET_CLASS (old_editable); - klass->update_text (GTK_OLD_EDITABLE (old_editable), start_pos, end_pos); -} - -static gchar * -gtk_old_editable_get_chars (GtkEditable *editable, - gint start, - gint end) -{ - GtkOldEditableClass *klass = GTK_OLD_EDITABLE_GET_CLASS (editable); - return klass->get_chars (GTK_OLD_EDITABLE (editable), start, end); -} - -/* - * Like gtk_editable_get_chars, but if the editable is not - * visible, return asterisks; also convert result to UTF-8. - */ -static void * -gtk_old_editable_get_public_chars (GtkOldEditable *old_editable, - gint start, - gint end) -{ - gchar *str = NULL; - const gchar *charset; - gboolean need_conversion = !g_get_charset (&charset); - - if (old_editable->visible) - { - GError *error = NULL; - gchar *tmp = gtk_editable_get_chars (GTK_EDITABLE (old_editable), start, end); - - if (need_conversion) - { - str = g_convert (tmp, -1, - "UTF-8", charset, - NULL, NULL, &error); - - if (!str) - { - g_warning ("Cannot convert text from charset to UTF-8 %s: %s", charset, error->message); - g_error_free (error); - } - - g_free (tmp); - } - else - str = tmp; - } - else - { - gint i; - gint nchars = end - start; - - if (nchars < 0) - nchars = -nchars; - - str = g_new (gchar, nchars + 1); - for (i = 0; iset_selection (old_editable, start_pos, end_pos); -} - -static void -gtk_old_editable_set_position (GtkEditable *editable, - gint position) -{ - GtkOldEditableClass *klass = GTK_OLD_EDITABLE_GET_CLASS (editable); - - klass->set_position (GTK_OLD_EDITABLE (editable), position); -} - -static gint -gtk_old_editable_get_position (GtkEditable *editable) -{ - return GTK_OLD_EDITABLE (editable)->current_pos; -} - -static gint -gtk_old_editable_selection_clear (GtkWidget *widget, - GdkEventSelection *event) -{ - GtkOldEditable *old_editable = GTK_OLD_EDITABLE (widget); - - /* Let the selection handling code know that the selection - * has been changed, since we've overriden the default handler */ - if (!GTK_WIDGET_CLASS (gtk_old_editable_parent_class)->selection_clear_event (widget, event)) - return FALSE; - - if (old_editable->has_selection) - { - old_editable->has_selection = FALSE; - gtk_old_editable_update_text (old_editable, old_editable->selection_start_pos, - old_editable->selection_end_pos); - } - - return TRUE; -} - -static void -gtk_old_editable_selection_get (GtkWidget *widget, - GtkSelectionData *selection_data, - guint info, - guint time) -{ - GtkOldEditable *old_editable = GTK_OLD_EDITABLE (widget); - gint selection_start_pos; - gint selection_end_pos; - - gchar *str; - - selection_start_pos = MIN (old_editable->selection_start_pos, old_editable->selection_end_pos); - selection_end_pos = MAX (old_editable->selection_start_pos, old_editable->selection_end_pos); - - str = gtk_old_editable_get_public_chars (old_editable, - selection_start_pos, - selection_end_pos); - - if (str) - { - gtk_selection_data_set_text (selection_data, str, -1); - g_free (str); - } -} - -static void -gtk_old_editable_paste_received (GtkOldEditable *old_editable, - const gchar *text, - gboolean is_clipboard) -{ - const gchar *str = NULL; - const gchar *charset; - gboolean need_conversion = FALSE; - - if (text) - { - GError *error = NULL; - - need_conversion = !g_get_charset (&charset); - - if (need_conversion) - { - str = g_convert_with_fallback (text, -1, - charset, "UTF-8", NULL, - NULL, NULL, &error); - if (!str) - { - g_warning ("Cannot convert text from UTF-8 to %s: %s", - charset, error->message); - g_error_free (error); - return; - } - } - else - str = text; - } - - if (str) - { - gboolean reselect; - gint old_pos; - gint tmp_pos; - - reselect = FALSE; - - if ((old_editable->selection_start_pos != old_editable->selection_end_pos) && - (!old_editable->has_selection || is_clipboard)) - { - reselect = TRUE; - - /* Don't want to call gtk_editable_delete_selection here if we are going - * to reclaim the selection to avoid extra server traffic */ - if (old_editable->has_selection) - { - gtk_editable_delete_text (GTK_EDITABLE (old_editable), - MIN (old_editable->selection_start_pos, old_editable->selection_end_pos), - MAX (old_editable->selection_start_pos, old_editable->selection_end_pos)); - } - else - gtk_editable_delete_selection (GTK_EDITABLE (old_editable)); - } - - tmp_pos = old_pos = old_editable->current_pos; - - gtk_editable_insert_text (GTK_EDITABLE (old_editable), str, -1, &tmp_pos); - - if (reselect) - gtk_old_editable_set_selection (old_editable, old_pos, old_editable->current_pos); - - if (str && str != text) - g_free ((gchar *) str); - } -} - -static void -gtk_old_editable_selection_received (GtkWidget *widget, - GtkSelectionData *selection_data, - guint time) -{ - GtkOldEditable *old_editable = GTK_OLD_EDITABLE (widget); - - guchar *text = gtk_selection_data_get_text (selection_data); - - if (!text) - { - /* If we asked for UTF8 and didn't get it, try text; if we asked - * for text and didn't get it, try string. If we asked for - * anything else and didn't get it, give up. - */ - if (selection_data->target == gdk_atom_intern_static_string ("UTF8_STRING")) - { - gtk_selection_convert (widget, GDK_SELECTION_PRIMARY, - gdk_atom_intern_static_string ("TEXT"), - time); - return; - } - else if (selection_data->target == gdk_atom_intern_static_string ("TEXT")) - { - gtk_selection_convert (widget, GDK_SELECTION_PRIMARY, - GDK_TARGET_STRING, - time); - return; - } - } - - if (text) - { - gtk_old_editable_paste_received (old_editable, (gchar *) text, FALSE); - g_free (text); - } -} - -static void -old_editable_text_received_cb (GtkClipboard *clipboard, - const gchar *text, - gpointer data) -{ - GtkOldEditable *old_editable = GTK_OLD_EDITABLE (data); - - gtk_old_editable_paste_received (old_editable, text, TRUE); - g_object_unref (G_OBJECT (old_editable)); -} - -/** - * gtk_old_editable_claim_selection: - * @old_editable: a #GtkOldEditable - * @claim: if %TRUE, claim ownership of the selection, if %FALSE, give - * up ownership - * @time_: timestamp for this operation - * - * Claims or gives up ownership of the selection. - */ -void -gtk_old_editable_claim_selection (GtkOldEditable *old_editable, - gboolean claim, - guint32 time) -{ - GtkWidget *widget; - GdkDisplay *display; - - g_return_if_fail (GTK_IS_OLD_EDITABLE (old_editable)); - widget = GTK_WIDGET (old_editable); - g_return_if_fail (gtk_widget_get_realized (widget)); - - display = gtk_widget_get_display (widget); - old_editable->has_selection = FALSE; - - if (claim) - { - if (gtk_selection_owner_set_for_display (display, widget, - GDK_SELECTION_PRIMARY, time)) - old_editable->has_selection = TRUE; - } - else - { - if (gdk_selection_owner_get_for_display (display, GDK_SELECTION_PRIMARY) == widget->window) - gtk_selection_owner_set_for_display (display, - NULL, - GDK_SELECTION_PRIMARY, time); - } -} - -static void -gtk_old_editable_set_selection_bounds (GtkEditable *editable, - gint start, - gint end) -{ - GtkOldEditable *old_editable = GTK_OLD_EDITABLE (editable); - - if (gtk_widget_get_realized (GTK_WIDGET (editable))) - gtk_old_editable_claim_selection (old_editable, start != end, GDK_CURRENT_TIME); - - gtk_old_editable_set_selection (old_editable, start, end); -} - -static gboolean -gtk_old_editable_get_selection_bounds (GtkEditable *editable, - gint *start, - gint *end) -{ - GtkOldEditable *old_editable = GTK_OLD_EDITABLE (editable); - - *start = old_editable->selection_start_pos; - *end = old_editable->selection_end_pos; - - return (old_editable->selection_start_pos != old_editable->selection_end_pos); -} - -static void -gtk_old_editable_real_set_editable (GtkOldEditable *old_editable, - gboolean is_editable) -{ - is_editable = is_editable != FALSE; - - if (old_editable->editable != is_editable) - { - old_editable->editable = is_editable; - gtk_widget_queue_draw (GTK_WIDGET (old_editable)); - } -} - -static void -gtk_old_editable_real_cut_clipboard (GtkOldEditable *old_editable) -{ - gtk_old_editable_real_copy_clipboard (old_editable); - gtk_editable_delete_selection (GTK_EDITABLE (old_editable)); -} - -static void -gtk_old_editable_real_copy_clipboard (GtkOldEditable *old_editable) -{ - gint selection_start_pos; - gint selection_end_pos; - - selection_start_pos = MIN (old_editable->selection_start_pos, old_editable->selection_end_pos); - selection_end_pos = MAX (old_editable->selection_start_pos, old_editable->selection_end_pos); - - if (selection_start_pos != selection_end_pos) - { - gchar *text = gtk_old_editable_get_public_chars (old_editable, - selection_start_pos, - selection_end_pos); - - if (text) - { - GtkClipboard *clipboard = gtk_widget_get_clipboard (GTK_WIDGET (old_editable), - GDK_SELECTION_CLIPBOARD); - - gtk_clipboard_set_text (clipboard, text, -1); - g_free (text); - } - } -} - -static void -gtk_old_editable_real_paste_clipboard (GtkOldEditable *old_editable) -{ - GtkClipboard *clipboard = gtk_widget_get_clipboard (GTK_WIDGET (old_editable), - GDK_SELECTION_CLIPBOARD); - - g_object_ref (G_OBJECT (old_editable)); - gtk_clipboard_request_text (clipboard, old_editable_text_received_cb, old_editable); -} - -/** - * gtk_old_editable_changed: - * @old_editable: a #GtkOldEditable - * - * Emits the ::changed signal on @old_editable. - */ -void -gtk_old_editable_changed (GtkOldEditable *old_editable) -{ - g_return_if_fail (GTK_IS_OLD_EDITABLE (old_editable)); - - g_signal_emit_by_name (old_editable, "changed"); -} - -#define __GTK_OLD_EDITABLE_C__ -#include "gtkaliasdef.c" diff --git a/gtk/gtkoldeditable.h b/gtk/gtkoldeditable.h deleted file mode 100644 index ba497cd1c..000000000 --- a/gtk/gtkoldeditable.h +++ /dev/null @@ -1,126 +0,0 @@ -/* GTK - The GIMP Toolkit - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GTK+ Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GTK+ at ftp://ftp.gtk.org/pub/gtk/. - */ - -#ifndef GTK_DISABLE_DEPRECATED - -#ifndef __GTK_OLD_EDITABLE_H__ -#define __GTK_OLD_EDITABLE_H__ - -#include - - -G_BEGIN_DECLS - -#define GTK_TYPE_OLD_EDITABLE (gtk_old_editable_get_type ()) -#define GTK_OLD_EDITABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_OLD_EDITABLE, GtkOldEditable)) -#define GTK_OLD_EDITABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_OLD_EDITABLE, GtkOldEditableClass)) -#define GTK_IS_OLD_EDITABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_OLD_EDITABLE)) -#define GTK_IS_OLD_EDITABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_OLD_EDITABLE)) -#define GTK_OLD_EDITABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_OLD_EDITABLE, GtkOldEditableClass)) - - -typedef struct _GtkOldEditable GtkOldEditable; -typedef struct _GtkOldEditableClass GtkOldEditableClass; - -typedef void (*GtkTextFunction) (GtkOldEditable *editable, guint32 time_); - -struct _GtkOldEditable -{ - GtkWidget widget; - - /*< public >*/ - guint current_pos; - - guint selection_start_pos; - guint selection_end_pos; - guint has_selection : 1; - - /*< private >*/ - guint editable : 1; - guint visible : 1; - - gchar *clipboard_text; -}; - -struct _GtkOldEditableClass -{ - GtkWidgetClass parent_class; - - /* Bindings actions */ - void (* activate) (GtkOldEditable *editable); - void (* set_editable) (GtkOldEditable *editable, - gboolean is_editable); - void (* move_cursor) (GtkOldEditable *editable, - gint x, - gint y); - void (* move_word) (GtkOldEditable *editable, - gint n); - void (* move_page) (GtkOldEditable *editable, - gint x, - gint y); - void (* move_to_row) (GtkOldEditable *editable, - gint row); - void (* move_to_column) (GtkOldEditable *editable, - gint row); - void (* kill_char) (GtkOldEditable *editable, - gint direction); - void (* kill_word) (GtkOldEditable *editable, - gint direction); - void (* kill_line) (GtkOldEditable *editable, - gint direction); - void (* cut_clipboard) (GtkOldEditable *editable); - void (* copy_clipboard) (GtkOldEditable *editable); - void (* paste_clipboard) (GtkOldEditable *editable); - - /* Virtual functions. get_chars is in paricular not a signal because - * it returns malloced memory. The others are not signals because - * they would not be particularly useful as such. (All changes to - * selection and position do not go through these functions) - */ - void (* update_text) (GtkOldEditable *editable, - gint start_pos, - gint end_pos); - gchar* (* get_chars) (GtkOldEditable *editable, - gint start_pos, - gint end_pos); - void (* set_selection)(GtkOldEditable *editable, - gint start_pos, - gint end_pos); - void (* set_position) (GtkOldEditable *editable, - gint position); -}; - -GType gtk_old_editable_get_type (void) G_GNUC_CONST; -void gtk_old_editable_claim_selection (GtkOldEditable *old_editable, - gboolean claim, - guint32 time_); -void gtk_old_editable_changed (GtkOldEditable *old_editable); - -G_END_DECLS - -#endif /* __GTK_OLD_EDITABLE_H__ */ - -#endif /* GTK_DISABLE_DEPRECATED */ -- 2.43.2