From a01de808cd46baea31419a42b221cb65974a9fb1 Mon Sep 17 00:00:00 2001 From: Chris Lahey Date: Tue, 11 Jan 2000 06:44:57 +0000 Subject: Removed some code which got in the way of testing properly. * widgets/test-minicard.c: Removed some code which got in the way of testing properly. * widgets/e-minicard-label.c (e_minicard_label_realize): Made the field text item editable. * widgets/Makefile.am: Added e-text-event-process*.[ch]. * widgets/e-text.c, widgets/e-text.h: Changed these to support editing. * widgets/e-text-event-processor.c, widgets/e-text-event-processor.h, widgets/e-text-event-processor-types.h, widgets/e-text-event-processor-emacs-like.c, widgets/e-text-event-processor-emacs-like.h: These are a new pair of classes which handle all events from the text item and convert them into commands. svn path=/trunk/; revision=1553 --- widgets/text/e-text-event-processor-types.h | 131 ++++++++++++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 widgets/text/e-text-event-processor-types.h (limited to 'widgets/text/e-text-event-processor-types.h') diff --git a/widgets/text/e-text-event-processor-types.h b/widgets/text/e-text-event-processor-types.h new file mode 100644 index 0000000000..30b7bcafc9 --- /dev/null +++ b/widgets/text/e-text-event-processor-types.h @@ -0,0 +1,131 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ +/* e-text-event-processor.h + * Copyright (C) 2000 Helix Code, Inc. + * Author: Chris Lahey + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program 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 + * General Public License for more details. + * + * You should have received a copy of the GNU 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-1999. 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 __E_TEXT_EVENT_PROCESSOR_TYPES_H__ +#define __E_TEXT_EVENT_PROCESSOR_TYPES_H__ + +#ifdef __cplusplus +extern "C" { +#pragma } +#endif /* __cplusplus */ + +#include + +typedef enum _ETextEventProcessorCommandPosition ETextEventProcessorCommandPosition; +typedef enum _ETextEventProcessorCommandAction ETextEventProcessorCommandAction; +typedef struct _ETextEventProcessorCommand ETextEventProcessorCommand; + +typedef union _ETextEventProcessorEvent ETextEventProcessorEvent; +typedef struct _ETextEventProcessorEventButton ETextEventProcessorEventButton; +typedef struct _ETextEventProcessorEventKey ETextEventProcessorEventKey; +typedef struct _ETextEventProcessorEventMotion ETextEventProcessorEventMotion; + +enum _ETextEventProcessorCommandPosition { + E_TEP_VALUE, + E_TEP_SELECTION, + + E_TEP_START_OF_BUFFER, + E_TEP_END_OF_BUFFER, + + E_TEP_START_OF_LINE, + E_TEP_END_OF_LINE, + + E_TEP_FORWARD_CHARACTER, + E_TEP_BACKWARD_CHARACTER, + + E_TEP_FORWARD_WORD, + E_TEP_BACKWARD_WORD, + + E_TEP_FORWARD_LINE, + E_TEP_BACKWARD_LINE, + + E_TEP_FORWARD_PARAGRAPH, + E_TEP_BACKWARD_PARAGRAPH, + + E_TEP_FORWARD_PAGE, + E_TEP_BACKWARD_PAGE +}; + +enum _ETextEventProcessorCommandAction { + E_TEP_MOVE, + E_TEP_SELECT, + E_TEP_DELETE, + + E_TEP_INSERT, + E_TEP_COPY, + E_TEP_PASTE, + E_TEP_SET_SELECT_BY_WORD, + E_TEP_ACTIVATE, + + E_TEP_NOP +}; + +struct _ETextEventProcessorCommand { + ETextEventProcessorCommandPosition position; + ETextEventProcessorCommandAction action; + int value; + char *string; +}; + +struct _ETextEventProcessorEventButton { + GdkEventType type; + guint32 time; + guint state; + guint button; + gint position; +}; + +struct _ETextEventProcessorEventKey { + GdkEventType type; + guint32 time; + guint state; + guint keyval; + gint length; + gchar *string; +}; + +struct _ETextEventProcessorEventMotion { + GdkEventType type; + guint32 time; + guint state; + gint position; +}; + +union _ETextEventProcessorEvent { + GdkEventType type; + ETextEventProcessorEventButton button; + ETextEventProcessorEventKey key; + ETextEventProcessorEventMotion motion; +}; + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + + +#endif /* __E_TEXT_EVENT_PROCESSOR_TYPES_H__ */ -- cgit v1.2.3