X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gtk%2Fgtkentry.h;h=db80b9e5a51ab5a698143524055d527384a6f343;hb=32825a66ac8e65bf98cafed26a339fa1f31eddd4;hp=c8dbcdd8359732d9eddcc7628cf690ba7d5a9ce2;hpb=ef4356b567e59d98e837ec41993e50d20dd65a46;p=~andy%2Fgtk diff --git a/gtk/gtkentry.h b/gtk/gtkentry.h index c8dbcdd83..db80b9e5a 100644 --- a/gtk/gtkentry.h +++ b/gtk/gtkentry.h @@ -1,6 +1,10 @@ /* GTK - The GIMP Toolkit * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald * + * Copyright (C) 2004-2006 Christian Hammond + * Copyright (C) 2008 Cody Russell + * Copyright (C) 2008 Red Hat, Inc. + * * 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 @@ -12,164 +16,289 @@ * 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. + * License along with this library. If not, see . */ /* * 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/. + * GTK+ at ftp://ftp.gtk.org/pub/gtk/. */ #ifndef __GTK_ENTRY_H__ #define __GTK_ENTRY_H__ -#include +#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION) +#error "Only can be included directly." +#endif + #include #include -#include +#include +#include +#include +#include +#include -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ +G_BEGIN_DECLS #define GTK_TYPE_ENTRY (gtk_entry_get_type ()) -#define GTK_ENTRY(obj) (GTK_CHECK_CAST ((obj), GTK_TYPE_ENTRY, GtkEntry)) -#define GTK_ENTRY_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), GTK_TYPE_ENTRY, GtkEntryClass)) -#define GTK_IS_ENTRY(obj) (GTK_CHECK_TYPE ((obj), GTK_TYPE_ENTRY)) -#define GTK_IS_ENTRY_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GTK_TYPE_ENTRY)) -#define GTK_ENTRY_GET_CLASS(obj) (GTK_CHECK_GET_CLASS ((obj), GTK_TYPE_ENTRY, GtkEntryClass)) +#define GTK_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_ENTRY, GtkEntry)) +#define GTK_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_ENTRY, GtkEntryClass)) +#define GTK_IS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_ENTRY)) +#define GTK_IS_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_ENTRY)) +#define GTK_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_ENTRY, GtkEntryClass)) +/** + * GtkEntryIconPosition: + * @GTK_ENTRY_ICON_PRIMARY: At the beginning of the entry (depending on the text direction). + * @GTK_ENTRY_ICON_SECONDARY: At the end of the entry (depending on the text direction). + * + * Specifies the side of the entry at which an icon is placed. + * + * Since: 2.16 + */ +typedef enum +{ + GTK_ENTRY_ICON_PRIMARY, + GTK_ENTRY_ICON_SECONDARY +} GtkEntryIconPosition; -typedef struct _GtkEntry GtkEntry; -typedef struct _GtkEntryClass GtkEntryClass; +typedef struct _GtkEntry GtkEntry; +typedef struct _GtkEntryPrivate GtkEntryPrivate; +typedef struct _GtkEntryClass GtkEntryClass; struct _GtkEntry { - GtkWidget widget; - - gchar *text; - - guint editable : 1; - guint visible : 1; - guint overwrite_mode : 1; - guint in_drag : 1; /* Dragging within the selection */ - - guint16 text_length; /* length in use, in chars */ - guint16 text_max_length; - /*< private >*/ - GdkWindow *text_area; - GtkIMContext *im_context; - GtkWidget *popup_menu; - - gint current_pos; - gint selection_bound; - - PangoLayout *cached_layout; - guint cache_includes_preedit : 1; - - guint need_im_reset : 1; - - guint has_frame : 1; - - guint button; - guint timer; - guint recompute_idle; - gint scroll_offset; - gint ascent; /* font ascent, in pango units */ - gint descent; /* font descent, in pango units */ - - guint16 text_size; /* allocated size, in bytes */ - guint16 n_bytes; /* length in use, in bytes */ - - guint16 preedit_length; /* length of preedit string, in bytes */ - guint16 preedit_cursor; /* offset of cursor within preedit string, in chars */ - - gint dnd_position; /* In chars, -1 == no DND cursor */ - - gint drag_start_x; - gint drag_start_y; - - gunichar invisible_char; + GtkWidget parent_instance; + + GtkEntryPrivate *priv; }; struct _GtkEntryClass { GtkWidgetClass parent_class; - - /* Notification of changes - */ - void (* changed) (GtkEntry *entry); - void (* insert_text) (GtkEntry *entry, - const gchar *text, - gint length, - gint *position); - void (* delete_text) (GtkEntry *entry, - gint start_pos, - gint end_pos); + + /* Hook to customize right-click popup */ + void (* populate_popup) (GtkEntry *entry, + GtkWidget *popup); /* Action signals */ - void (* activate) (GtkEntry *entry); - void (* move_cursor) (GtkEntry *entry, - GtkMovementStep step, - gint count, - gboolean extend_selection); - void (* insert_at_cursor) (GtkEntry *entry, - const gchar *str); - void (* delete_from_cursor) (GtkEntry *entry, - GtkDeleteType type, - gint count); - void (* cut_clipboard) (GtkEntry *entry); - void (* copy_clipboard) (GtkEntry *entry); - void (* paste_clipboard) (GtkEntry *entry); - void (* toggle_overwrite) (GtkEntry *entry); + void (* activate) (GtkEntry *entry); + void (* move_cursor) (GtkEntry *entry, + GtkMovementStep step, + gint count, + gboolean extend_selection); + void (* insert_at_cursor) (GtkEntry *entry, + const gchar *str); + void (* delete_from_cursor) (GtkEntry *entry, + GtkDeleteType type, + gint count); + void (* backspace) (GtkEntry *entry); + void (* cut_clipboard) (GtkEntry *entry); + void (* copy_clipboard) (GtkEntry *entry); + void (* paste_clipboard) (GtkEntry *entry); + void (* toggle_overwrite) (GtkEntry *entry); + + /* hooks to add other objects beside the entry (like in GtkSpinButton) */ + void (* get_text_area_size) (GtkEntry *entry, + gint *x, + gint *y, + gint *width, + gint *height); + void (* get_frame_size) (GtkEntry *entry, + gint *x, + gint *y, + gint *width, + gint *height); + + /* Padding for future expansion */ + void (*_gtk_reserved1) (void); + void (*_gtk_reserved2) (void); + void (*_gtk_reserved3) (void); + void (*_gtk_reserved4) (void); + void (*_gtk_reserved5) (void); + void (*_gtk_reserved6) (void); + void (*_gtk_reserved7) (void); }; -GtkType gtk_entry_get_type (void) G_GNUC_CONST; +GType gtk_entry_get_type (void) G_GNUC_CONST; GtkWidget* gtk_entry_new (void); +GtkWidget* gtk_entry_new_with_buffer (GtkEntryBuffer *buffer); + +GtkEntryBuffer* gtk_entry_get_buffer (GtkEntry *entry); +void gtk_entry_set_buffer (GtkEntry *entry, + GtkEntryBuffer *buffer); + +void gtk_entry_get_text_area (GtkEntry *entry, + GdkRectangle *text_area); + void gtk_entry_set_visibility (GtkEntry *entry, gboolean visible); +gboolean gtk_entry_get_visibility (GtkEntry *entry); + void gtk_entry_set_invisible_char (GtkEntry *entry, gunichar ch); -void gtk_entry_set_editable (GtkEntry *entry, - gboolean editable); +gunichar gtk_entry_get_invisible_char (GtkEntry *entry); +void gtk_entry_unset_invisible_char (GtkEntry *entry); + void gtk_entry_set_has_frame (GtkEntry *entry, gboolean setting); gboolean gtk_entry_get_has_frame (GtkEntry *entry); + +GDK_DEPRECATED_IN_3_4 +void gtk_entry_set_inner_border (GtkEntry *entry, + const GtkBorder *border); +GDK_DEPRECATED_IN_3_4 +const GtkBorder* gtk_entry_get_inner_border (GtkEntry *entry); + +void gtk_entry_set_overwrite_mode (GtkEntry *entry, + gboolean overwrite); +gboolean gtk_entry_get_overwrite_mode (GtkEntry *entry); + /* text is truncated if needed */ void gtk_entry_set_max_length (GtkEntry *entry, - guint16 max); + gint max); +gint gtk_entry_get_max_length (GtkEntry *entry); +guint16 gtk_entry_get_text_length (GtkEntry *entry); + +void gtk_entry_set_activates_default (GtkEntry *entry, + gboolean setting); +gboolean gtk_entry_get_activates_default (GtkEntry *entry); + +void gtk_entry_set_width_chars (GtkEntry *entry, + gint n_chars); +gint gtk_entry_get_width_chars (GtkEntry *entry); /* Somewhat more convenient than the GtkEditable generic functions */ -void gtk_entry_set_text (GtkEntry *entry, - const gchar *text); +void gtk_entry_set_text (GtkEntry *entry, + const gchar *text); /* returns a reference to the text */ -gchar* gtk_entry_get_text (GtkEntry *entry); +const gchar* gtk_entry_get_text (GtkEntry *entry); + +PangoLayout* gtk_entry_get_layout (GtkEntry *entry); +void gtk_entry_get_layout_offsets (GtkEntry *entry, + gint *x, + gint *y); +void gtk_entry_set_alignment (GtkEntry *entry, + gfloat xalign); +gfloat gtk_entry_get_alignment (GtkEntry *entry); + +void gtk_entry_set_completion (GtkEntry *entry, + GtkEntryCompletion *completion); +GtkEntryCompletion *gtk_entry_get_completion (GtkEntry *entry); + +gint gtk_entry_layout_index_to_text_index (GtkEntry *entry, + gint layout_index); +gint gtk_entry_text_index_to_layout_index (GtkEntry *entry, + gint text_index); -/* Deprecated compatibility functions +/* For scrolling cursor appropriately */ -GtkWidget* gtk_entry_new_with_max_length (guint16 max); -void gtk_entry_append_text (GtkEntry *entry, - const gchar *text); -void gtk_entry_prepend_text (GtkEntry *entry, - const gchar *text); -void gtk_entry_set_position (GtkEntry *entry, - gint position); -void gtk_entry_select_region (GtkEntry *entry, - gint start, - gint end); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ +void gtk_entry_set_cursor_hadjustment (GtkEntry *entry, + GtkAdjustment *adjustment); +GtkAdjustment* gtk_entry_get_cursor_hadjustment (GtkEntry *entry); + +/* Progress API + */ +void gtk_entry_set_progress_fraction (GtkEntry *entry, + gdouble fraction); +gdouble gtk_entry_get_progress_fraction (GtkEntry *entry); + +void gtk_entry_set_progress_pulse_step (GtkEntry *entry, + gdouble fraction); +gdouble gtk_entry_get_progress_pulse_step (GtkEntry *entry); + +void gtk_entry_progress_pulse (GtkEntry *entry); +GDK_AVAILABLE_IN_3_2 +const gchar* gtk_entry_get_placeholder_text (GtkEntry *entry); +GDK_AVAILABLE_IN_3_2 +void gtk_entry_set_placeholder_text (GtkEntry *entry, + const gchar *text); +/* Setting and managing icons + */ +void gtk_entry_set_icon_from_pixbuf (GtkEntry *entry, + GtkEntryIconPosition icon_pos, + GdkPixbuf *pixbuf); +void gtk_entry_set_icon_from_stock (GtkEntry *entry, + GtkEntryIconPosition icon_pos, + const gchar *stock_id); +void gtk_entry_set_icon_from_icon_name (GtkEntry *entry, + GtkEntryIconPosition icon_pos, + const gchar *icon_name); +void gtk_entry_set_icon_from_gicon (GtkEntry *entry, + GtkEntryIconPosition icon_pos, + GIcon *icon); +GtkImageType gtk_entry_get_icon_storage_type (GtkEntry *entry, + GtkEntryIconPosition icon_pos); +GdkPixbuf* gtk_entry_get_icon_pixbuf (GtkEntry *entry, + GtkEntryIconPosition icon_pos); +const gchar* gtk_entry_get_icon_stock (GtkEntry *entry, + GtkEntryIconPosition icon_pos); +const gchar* gtk_entry_get_icon_name (GtkEntry *entry, + GtkEntryIconPosition icon_pos); +GIcon* gtk_entry_get_icon_gicon (GtkEntry *entry, + GtkEntryIconPosition icon_pos); +void gtk_entry_set_icon_activatable (GtkEntry *entry, + GtkEntryIconPosition icon_pos, + gboolean activatable); +gboolean gtk_entry_get_icon_activatable (GtkEntry *entry, + GtkEntryIconPosition icon_pos); +void gtk_entry_set_icon_sensitive (GtkEntry *entry, + GtkEntryIconPosition icon_pos, + gboolean sensitive); +gboolean gtk_entry_get_icon_sensitive (GtkEntry *entry, + GtkEntryIconPosition icon_pos); +gint gtk_entry_get_icon_at_pos (GtkEntry *entry, + gint x, + gint y); +void gtk_entry_set_icon_tooltip_text (GtkEntry *entry, + GtkEntryIconPosition icon_pos, + const gchar *tooltip); +gchar * gtk_entry_get_icon_tooltip_text (GtkEntry *entry, + GtkEntryIconPosition icon_pos); +void gtk_entry_set_icon_tooltip_markup (GtkEntry *entry, + GtkEntryIconPosition icon_pos, + const gchar *tooltip); +gchar * gtk_entry_get_icon_tooltip_markup (GtkEntry *entry, + GtkEntryIconPosition icon_pos); +void gtk_entry_set_icon_drag_source (GtkEntry *entry, + GtkEntryIconPosition icon_pos, + GtkTargetList *target_list, + GdkDragAction actions); +gint gtk_entry_get_current_icon_drag_source (GtkEntry *entry); +void gtk_entry_get_icon_area (GtkEntry *entry, + GtkEntryIconPosition icon_pos, + GdkRectangle *icon_area); + +gboolean gtk_entry_im_context_filter_keypress (GtkEntry *entry, + GdkEventKey *event); +void gtk_entry_reset_im_context (GtkEntry *entry); + +GDK_AVAILABLE_IN_3_6 +void gtk_entry_set_input_purpose (GtkEntry *entry, + GtkInputPurpose purpose); +GDK_AVAILABLE_IN_3_6 +GtkInputPurpose gtk_entry_get_input_purpose (GtkEntry *entry); + +GDK_AVAILABLE_IN_3_6 +void gtk_entry_set_input_hints (GtkEntry *entry, + GtkInputHints hints); +GDK_AVAILABLE_IN_3_6 +GtkInputHints gtk_entry_get_input_hints (GtkEntry *entry); + +GDK_AVAILABLE_IN_3_6 +void gtk_entry_set_attributes (GtkEntry *entry, + PangoAttrList *attrs); +GDK_AVAILABLE_IN_3_6 +PangoAttrList *gtk_entry_get_attributes (GtkEntry *entry); +G_END_DECLS #endif /* __GTK_ENTRY_H__ */