* GTK+ at ftp://ftp.gtk.org/pub/gtk/.
*/
+#undef GTK_DISABLE_DEPRECATED
+
+#include "config.h"
#include <string.h>
#include "gdk/gdkkeysyms.h"
#include "gdk/gdki18n.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
TARGET_COMPOUND_TEXT
};
-static void gtk_old_editable_class_init (GtkOldEditableClass *klass);
static void gtk_old_editable_editable_init (GtkEditableClass *iface);
-static void gtk_old_editable_init (GtkOldEditable *editable);
static void gtk_old_editable_set_arg (GtkObject *object,
GtkArg *arg,
guint arg_id);
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 GtkWidgetClass *parent_class = NULL;
static guint editable_signals[LAST_SIGNAL] = { 0 };
-GtkType
-gtk_old_editable_get_type (void)
-{
- static GtkType old_editable_type = 0;
-
- if (!old_editable_type)
- {
- static const GTypeInfo old_editable_info =
- {
- sizeof (GtkOldEditableClass),
- NULL, /* base_init */
- NULL, /* base_finalize */
- (GClassInitFunc) gtk_old_editable_class_init,
- NULL, /* class_finalize */
- NULL, /* class_data */
- sizeof (GtkOldEditable),
- 0, /* n_preallocs */
- (GInstanceInitFunc) gtk_old_editable_init,
- NULL /* value_table */
- };
-
- static const GInterfaceInfo editable_info =
- {
- (GInterfaceInitFunc) gtk_old_editable_editable_init, /* interface_init */
- NULL, /* interface_finalize */
- NULL /* interface_data */
- };
-
- old_editable_type = g_type_register_static (GTK_TYPE_WIDGET, "GtkOldEditable",
- &old_editable_info, G_TYPE_FLAG_ABSTRACT);
- g_type_add_interface_static (old_editable_type,
- GTK_TYPE_EDITABLE,
- &editable_info);
- }
-
- return old_editable_type;
-}
+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;
- parent_class = gtk_type_class (GTK_TYPE_WIDGET);
-
+ 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;
class->set_position = NULL;
editable_signals[ACTIVATE] =
- gtk_signal_new ("activate",
+ gtk_signal_new (I_("activate"),
GTK_RUN_LAST | GTK_RUN_ACTION,
GTK_CLASS_TYPE (object_class),
GTK_SIGNAL_OFFSET (GtkOldEditableClass, activate),
- _gtk_marshal_NONE__NONE,
+ _gtk_marshal_VOID__VOID,
GTK_TYPE_NONE, 0);
widget_class->activate_signal = editable_signals[ACTIVATE];
editable_signals[SET_EDITABLE] =
- gtk_signal_new ("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_NONE__BOOLEAN,
+ _gtk_marshal_VOID__BOOLEAN,
GTK_TYPE_NONE, 1,
GTK_TYPE_BOOL);
editable_signals[MOVE_CURSOR] =
- gtk_signal_new ("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_NONE__INT_INT,
+ _gtk_marshal_VOID__INT_INT,
GTK_TYPE_NONE, 2,
GTK_TYPE_INT,
GTK_TYPE_INT);
editable_signals[MOVE_WORD] =
- gtk_signal_new ("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_NONE__INT,
+ _gtk_marshal_VOID__INT,
GTK_TYPE_NONE, 1,
GTK_TYPE_INT);
editable_signals[MOVE_PAGE] =
- gtk_signal_new ("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_NONE__INT_INT,
+ _gtk_marshal_VOID__INT_INT,
GTK_TYPE_NONE, 2,
GTK_TYPE_INT,
GTK_TYPE_INT);
editable_signals[MOVE_TO_ROW] =
- gtk_signal_new ("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_NONE__INT,
+ _gtk_marshal_VOID__INT,
GTK_TYPE_NONE, 1,
GTK_TYPE_INT);
editable_signals[MOVE_TO_COLUMN] =
- gtk_signal_new ("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_NONE__INT,
+ _gtk_marshal_VOID__INT,
GTK_TYPE_NONE, 1,
GTK_TYPE_INT);
editable_signals[KILL_CHAR] =
- gtk_signal_new ("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_NONE__INT,
+ _gtk_marshal_VOID__INT,
GTK_TYPE_NONE, 1,
GTK_TYPE_INT);
editable_signals[KILL_WORD] =
- gtk_signal_new ("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_NONE__INT,
+ _gtk_marshal_VOID__INT,
GTK_TYPE_NONE, 1,
GTK_TYPE_INT);
editable_signals[KILL_LINE] =
- gtk_signal_new ("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_NONE__INT,
+ _gtk_marshal_VOID__INT,
GTK_TYPE_NONE, 1,
GTK_TYPE_INT);
editable_signals[CUT_CLIPBOARD] =
- gtk_signal_new ("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_NONE__NONE,
+ _gtk_marshal_VOID__VOID,
GTK_TYPE_NONE, 0);
editable_signals[COPY_CLIPBOARD] =
- gtk_signal_new ("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_NONE__NONE,
+ _gtk_marshal_VOID__VOID,
GTK_TYPE_NONE, 0);
editable_signals[PASTE_CLIPBOARD] =
- gtk_signal_new ("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_NONE__NONE,
+ _gtk_marshal_VOID__VOID,
GTK_TYPE_NONE, 0);
- gtk_object_add_arg_type ("GtkOldEditable::text_position", GTK_TYPE_INT, GTK_ARG_READWRITE, ARG_TEXT_POSITION);
- gtk_object_add_arg_type ("GtkOldEditable::editable", GTK_TYPE_BOOL, GTK_ARG_READWRITE, ARG_EDITABLE);
+ 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
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,
gchar buf[64];
gchar *text;
- gtk_widget_ref (GTK_WIDGET (editable));
+ g_object_ref (editable);
if (new_text_length <= 63)
text = buf;
text[new_text_length] = '\0';
strncpy (text, new_text, new_text_length);
- g_signal_emit_by_name (editable, "insert_text", 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);
- gtk_widget_unref (GTK_WIDGET (editable));
+ g_object_unref (editable);
}
static void
{
GtkOldEditable *old_editable = GTK_OLD_EDITABLE (editable);
- gtk_widget_ref (GTK_WIDGET (old_editable));
+ g_object_ref (old_editable);
- g_signal_emit_by_name (editable, "delete_text", start_pos, end_pos);
+ 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);
- gtk_widget_unref (GTK_WIDGET (old_editable));
+ g_object_unref (old_editable);
}
static void
/* Let the selection handling code know that the selection
* has been changed, since we've overriden the default handler */
- if (!gtk_selection_clear (widget, event))
+ if (!GTK_WIDGET_CLASS (gtk_old_editable_parent_class)->selection_clear_event (widget, event))
return FALSE;
if (old_editable->has_selection)
{
GtkOldEditable *old_editable = GTK_OLD_EDITABLE (widget);
- gchar *text = gtk_selection_data_get_text (selection_data);
+ guchar *text = gtk_selection_data_get_text (selection_data);
if (!text)
{
* 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 ("UTF8_STRING", FALSE))
+ if (selection_data->target == gdk_atom_intern_static_string ("UTF8_STRING"))
{
gtk_selection_convert (widget, GDK_SELECTION_PRIMARY,
- gdk_atom_intern ("TEXT", FALSE),
+ gdk_atom_intern_static_string ("TEXT"),
time);
return;
}
- else if (selection_data->target == gdk_atom_intern ("TEXT", FALSE))
+ else if (selection_data->target == gdk_atom_intern_static_string ("TEXT"))
{
gtk_selection_convert (widget, GDK_SELECTION_PRIMARY,
GDK_TARGET_STRING,
if (text)
{
- gtk_old_editable_paste_received (old_editable, text, FALSE);
+ gtk_old_editable_paste_received (old_editable, (gchar *) text, FALSE);
g_free (text);
}
}
* @old_editable: a #GtkOldEditable
* @claim: if %TRUE, claim ownership of the selection, if %FALSE, give
* up ownership
- * @time: timestamp for this operation
+ * @time_: timestamp for this operation
*
* Claims or gives up ownership of the selection.
*/
g_signal_emit_by_name (old_editable, "changed");
}
+
+#define __GTK_OLD_EDITABLE_C__
+#include "gtkaliasdef.c"