/usr/include/evolution-3.10/e-util/e-text.h is in evolution-dev 3.10.4-0ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 | /*
* e-text.h - Text item for evolution.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with the program; if not, see <http://www.gnu.org/licenses/>
*
*
* Authors:
* Chris Lahey <clahey@ximian.com>
* Jon Trowbridge <trow@ximian.com>
*
* A majority of code taken from:
*
* Text item type for GnomeCanvas widget
*
* GnomeCanvas is basically a port of the Tk toolkit's most excellent
* canvas widget. Tk is copyrighted by the Regents of the University
* of California, Sun Microsystems, and other parties.
*
* Copyright (C) 1998 The Free Software Foundation
*
* Author: Federico Mena <federico@nuclecu.unam.mx>
*
* Copyright (C) 1999-2008 Novell, Inc. (www.novell.com)
*
*/
#if !defined (__E_UTIL_H_INSIDE__) && !defined (LIBEUTIL_COMPILATION)
#error "Only <e-util/e-util.h> should be included directly."
#endif
#ifndef E_TEXT_H
#define E_TEXT_H
#include <gtk/gtk.h>
#include <e-util/e-canvas.h>
#include <e-util/e-text-event-processor.h>
#include <e-util/e-text-model.h>
/* Text item for the canvas. Text items are positioned by an anchor point and an anchor direction.
*
* A clipping rectangle may be specified for the text. The rectangle is anchored at the text's anchor
* point, and is specified by clipping width and height parameters. If the clipping rectangle is
* enabled, it will clip the text.
*
* In addition, x and y offset values may be specified. These specify an offset from the anchor
* position. If used in conjunction with the clipping rectangle, these could be used to implement
* simple scrolling of the text within the clipping rectangle.
*
* The following object arguments are available:
*
* name type read/write description
* ------------------------------------------------------------------------------------------
* text string RW The string of the text label
* bold boolean RW Bold?
* justification GtkJustification RW Justification for multiline text
* fill_color string W X color specification for text
* fill_color_gdk GdkColor* RW Pointer to an allocated GdkColor
* clip_width gdouble RW Width of clip rectangle
* clip_height gdouble RW Height of clip rectangle
* clip boolean RW Use clipping rectangle?
* fill_clip_rect boolean RW Whether the text item represents itself as being the size of the clipping rectangle.
* x_offset gdouble RW Horizontal offset distance from anchor position
* y_offset gdouble RW Vertical offset distance from anchor position
* text_width gdouble R Used to query the width of the rendered text
* text_height gdouble R Used to query the rendered height of the text
* width gdouble RW A synonym for clip_width
* height gdouble R A synonym for text_height
*
* These are currently ignored in the AA version:
* editable boolean RW Can this item be edited
* use_ellipsis boolean RW Whether to use ellipsises if text gets cut off. Meaningless if clip == false.
* ellipsis string RW The characters to use as ellipsis. NULL = "...".
* line_wrap boolean RW Line wrap when not editing.
* break_characters string RW List of characters to optionally break on.
* max_lines gint RW Number of lines possible when doing line wrap.
*/
/* Standard GObject macros */
#define E_TYPE_TEXT \
(e_text_get_type ())
#define E_TEXT(obj) \
(G_TYPE_CHECK_INSTANCE_CAST \
((obj), E_TYPE_TEXT, EText))
#define E_TEXT_CLASS(cls) \
(G_TYPE_CHECK_CLASS_CAST \
((cls), E_TYPE_TEXT, ETextClass))
#define E_IS_TEXT(obj) \
(G_TYPE_CHECK_INSTANCE_TYPE \
((obj), E_TYPE_TEXT))
#define E_IS_TEXT_CLASS(cls) \
(G_TYPE_CHECK_CLASS_TYPE \
((cls), E_TYPE_TEXT))
#define E_TEXT_GET_CLASS(obj) \
(G_TYPE_INSTANCE_GET_CLASS \
((obj), E_TYPE_TEXT, ETextClass))
G_BEGIN_DECLS
typedef struct _EText EText;
typedef struct _ETextClass ETextClass;
struct _EText {
GnomeCanvasItem item;
ETextModel *model;
gint model_changed_signal_id;
gint model_repos_signal_id;
const gchar *text; /* Text to display --- from the ETextModel */
gint preedit_len; /* preedit length to display */
gint preedit_pos; /* preedit cursor position */
PangoLayout *layout;
gint num_lines; /* Number of lines of text */
gchar *revert; /* Text to revert to */
GtkJustification justification; /* Justification for text */
gdouble clip_width; /* Width of optional clip rectangle */
gdouble clip_height; /* Height of optional clip rectangle */
gdouble xofs, yofs; /* Text offset distance from anchor position */
gint cx, cy; /* Top-left canvas coordinates for text */
gint text_cx, text_cy; /* Top-left canvas coordinates for text */
gint clip_cx, clip_cy; /* Top-left canvas coordinates for clip rectangle */
gint clip_cwidth, clip_cheight; /* Size of clip rectangle in pixels */
gint max_width; /* Maximum width of text lines */
gint width; /* Rendered text width in pixels */
gint height; /* Rendered text height in pixels */
guint32 rgba; /* RGBA color for text */
gboolean rgba_set; /* whether RGBA is set */
gchar *ellipsis; /* The ellipsis characters. NULL = "...". */
gdouble ellipsis_width; /* The width of the ellipsis. */
gint xofs_edit; /* Offset because of editing */
gint yofs_edit; /* Offset because of editing */
/* This needs to be reworked a bit once we get line wrapping. */
gint selection_start; /* Start of selection IN BYTES */
gint selection_end; /* End of selection IN BYTES */
gboolean select_by_word; /* Current selection is by word */
/* This section is for drag scrolling and blinking cursor. */
gint timeout_id; /* Current timeout id for scrolling */
GTimer *timer; /* Timer for blinking cursor and scrolling */
gint lastx, lasty; /* Last x and y motion events */
gint last_state; /* Last state */
gulong scroll_start; /* Starting time for scroll (microseconds) */
gint show_cursor; /* Is cursor currently shown */
gboolean button_down; /* Is mouse button 1 down */
ETextEventProcessor *tep; /* Text Event Processor */
gint tep_command_id;
gboolean has_selection; /* TRUE if we have the selection */
guint clip : 1; /* Use clip rectangle? */
guint fill_clip_rectangle : 1; /* Fill the clipping rectangle. */
guint pointer_in : 1; /* Is the pointer currently over us? */
guint default_cursor_shown : 1; /* Is the default cursor currently shown? */
guint line_wrap : 1; /* Do line wrap */
guint needs_redraw : 1; /* Needs redraw */
guint needs_recalc_bounds : 1; /* Need recalc_bounds */
guint needs_calc_height : 1; /* Need calc_height */
guint needs_split_into_lines : 1; /* Needs split_into_lines */
guint needs_reset_layout : 1; /* Needs split_into_lines */
guint bold : 1;
guint strikeout : 1;
guint tooltip_owner : 1;
guint allow_newlines : 1;
guint use_ellipsis : 1; /* Whether to use the ellipsis. */
guint editable : 1; /* Item is editable */
guint editing : 1; /* Item is currently being edited */
gchar *break_characters; /* Characters to optionally break after */
gint max_lines; /* Max number of lines (-1 = infinite) */
GdkCursor *default_cursor; /* Default cursor (arrow) */
GdkCursor *i_cursor; /* I beam cursor */
gint tooltip_timeout; /* Timeout for the tooltip */
gint tooltip_count; /* GDK_ENTER_NOTIFY count. */
gint dbl_timeout; /* Double click timeout */
gint tpl_timeout; /* Triple click timeout */
gint last_type_request; /* Last selection type requested. */
guint32 last_time_request; /* The time of the last selection request. */
GdkAtom last_selection_request; /* The time of the last selection request. */
GList *queued_requests; /* Queued selection requests. */
GtkIMContext *im_context;
gboolean need_im_reset;
gboolean im_context_signals_registered;
gboolean handle_popup;
PangoFontDescription *font_desc;
};
struct _ETextClass {
GnomeCanvasItemClass parent_class;
void (*changed) (EText *text);
void (*activate) (EText *text);
void (*keypress) (EText *text,
guint keyval,
guint state);
void (*populate_popup) (EText *text,
GdkEvent *button_event,
gint pos,
GtkMenu *menu);
void (*style_set) (EText *text,
GtkStyle *previous_style);
};
GType e_text_get_type (void) G_GNUC_CONST;
void e_text_cancel_editing (EText *text);
void e_text_stop_editing (EText *text);
void e_text_delete_selection (EText *text);
void e_text_cut_clipboard (EText *text);
void e_text_copy_clipboard (EText *text);
void e_text_paste_clipboard (EText *text);
void e_text_select_all (EText *text);
G_END_DECLS
#endif /* E_TEXT_H */
|