summaryrefslogtreecommitdiff
path: root/eel/eel-editable-label.h
diff options
context:
space:
mode:
Diffstat (limited to 'eel/eel-editable-label.h')
-rw-r--r--eel/eel-editable-label.h145
1 files changed, 145 insertions, 0 deletions
diff --git a/eel/eel-editable-label.h b/eel/eel-editable-label.h
new file mode 100644
index 00000000..559ac6a1
--- /dev/null
+++ b/eel/eel-editable-label.h
@@ -0,0 +1,145 @@
+/* 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., 675 Mass Ave, Cambridge, MA 02139, 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 __EEL_EDITABLE_LABEL_H__
+#define __EEL_EDITABLE_LABEL_H__
+
+
+#include <gdk/gdk.h>
+#include <gtk/gtk.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+#define EEL_TYPE_EDITABLE_LABEL eel_editable_label_get_type()
+#define EEL_EDITABLE_LABEL(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), EEL_TYPE_EDITABLE_LABEL, EelEditableLabel))
+#define EEL_EDITABLE_LABEL_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST ((klass), EEL_TYPE_EDITABLE_LABEL, EelEditableLabelClass))
+#define EEL_IS_EDITABLE_LABEL(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EEL_TYPE_EDITABLE_LABEL))
+#define EEL_IS_EDITABLE_LABEL_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), EEL_TYPE_EDITABLE_LABEL))
+#define EEL_EDITABLE_LABEL_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS ((obj), EEL_TYPE_EDITABLE_LABEL, EelEditableLabelClass))
+
+ typedef struct _EelEditableLabel EelEditableLabel;
+ typedef struct _EelEditableLabelClass EelEditableLabelClass;
+
+ typedef struct _EelEditableLabelSelectionInfo EelEditableLabelSelectionInfo;
+
+ struct _EelEditableLabel
+ {
+ GtkMisc misc;
+
+ /*< private >*/
+ guint jtype : 2;
+ guint wrap : 1;
+ guint overwrite_mode : 1;
+ guint draw_outline : 1;
+ PangoWrapMode wrap_mode;
+
+ gchar *text;
+ int text_size; /* allocated size, in bytes */
+ int n_bytes; /* length in use (not including terminating zero), in bytes */
+
+ PangoLayout *layout;
+ guint layout_includes_preedit : 1;
+
+ int selection_anchor; /* cursor pos, byte index */
+ int selection_end; /* byte index */
+
+ GtkWidget *popup_menu;
+
+ GtkIMContext *im_context;
+ gboolean need_im_reset;
+ int preedit_length; /* length of preedit string, in bytes */
+ int preedit_cursor; /* offset of cursor within preedit string, in chars */
+
+ GdkGC *primary_cursor_gc;
+ GdkGC *secondary_cursor_gc;
+
+ PangoFontDescription *font_desc;
+ };
+
+ struct _EelEditableLabelClass
+ {
+ GtkMiscClass parent_class;
+
+ void (* move_cursor) (EelEditableLabel *label,
+ GtkMovementStep step,
+ gint count,
+ gboolean extend_selection);
+ void (* insert_at_cursor) (EelEditableLabel *label,
+ const gchar *str);
+ void (* delete_from_cursor) (EelEditableLabel *label,
+ GtkDeleteType type,
+ gint count);
+ void (* cut_clipboard) (EelEditableLabel *label);
+ void (* copy_clipboard) (EelEditableLabel *label);
+ void (* paste_clipboard) (EelEditableLabel *label);
+ void (* toggle_overwrite) (EelEditableLabel *label);
+
+ /* Hook to customize right-click popup for selectable labels */
+ void (* populate_popup) (EelEditableLabel *label,
+ GtkMenu *menu);
+ };
+
+ GType eel_editable_label_get_type (void) G_GNUC_CONST;
+ GtkWidget* eel_editable_label_new (const char *str);
+ void eel_editable_label_set_text (EelEditableLabel *label,
+ const char *str);
+ const gchar* eel_editable_label_get_text(EelEditableLabel* label);
+ void eel_editable_label_set_justify (EelEditableLabel *label,
+ GtkJustification jtype);
+ GtkJustification eel_editable_label_get_justify (EelEditableLabel *label);
+ void eel_editable_label_set_line_wrap (EelEditableLabel *label,
+ gboolean wrap);
+ void eel_editable_label_set_line_wrap_mode (EelEditableLabel *label,
+ PangoWrapMode mode);
+ gboolean eel_editable_label_get_line_wrap (EelEditableLabel *label);
+ void eel_editable_label_set_draw_outline (EelEditableLabel *label,
+ gboolean wrap);
+ void eel_editable_label_select_region (EelEditableLabel *label,
+ gint start_offset,
+ gint end_offset);
+ gboolean eel_editable_label_get_selection_bounds (EelEditableLabel *label,
+ gint *start,
+ gint *end);
+ PangoLayout * eel_editable_label_get_layout (EelEditableLabel *label);
+ void eel_editable_label_get_layout_offsets (EelEditableLabel *label,
+ gint *x,
+ gint *y);
+ PangoFontDescription *eel_editable_label_get_font_description (EelEditableLabel *label);
+ void eel_editable_label_set_font_description (EelEditableLabel *label,
+ const PangoFontDescription *desc);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+
+#endif /* __EEL_EDITABLE_LABEL_H__ */