X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gtk%2Fgtkentry.h;h=db80b9e5a51ab5a698143524055d527384a6f343;hb=HEAD;hp=be8b4a64460606c5f942cfdb3864f3d79ce2976d;hpb=8130a8a227f891d0d3aab433c7b19ccaf51e5fa7;p=~andy%2Fgtk diff --git a/gtk/gtkentry.h b/gtk/gtkentry.h index be8b4a644..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,33 +16,34 @@ * 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) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_ENTRY, GtkEntry)) @@ -47,74 +52,31 @@ extern "C" { #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 activates_default : 1; - - guint cursor_visible : 1; - - guint in_click : 1; /* Flag so we don't select all when clicking in entry to focus in */ - - guint is_cell_renderer : 1; - guint editing_canceled : 1; /* Only used by GtkCellRendererText */ - - guint mouse_cursor_obscured : 1; - - guint select_words : 1; - guint select_lines : 1; - guint resolved_dir : 4; /* PangoDirection */ - guint button; - guint blink_timeout; - 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; - - gint width_chars; + GtkWidget parent_instance; + + GtkEntryPrivate *priv; }; struct _GtkEntryClass @@ -123,47 +85,88 @@ struct _GtkEntryClass /* Hook to customize right-click popup */ void (* populate_popup) (GtkEntry *entry, - GtkMenu *menu); - + 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_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); }; 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); 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, 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); @@ -174,10 +177,10 @@ gint gtk_entry_get_width_chars (GtkEntry *entry); /* Somewhat more convenient than the GtkEditable generic functions */ -void gtk_entry_set_text (GtkEntry *entry, +void gtk_entry_set_text (GtkEntry *entry, const gchar *text); /* returns a reference to the text */ -G_CONST_RETURN 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, @@ -191,27 +194,111 @@ void gtk_entry_set_completion (GtkEntry *entry, GtkEntryCompletion *completion); GtkEntryCompletion *gtk_entry_get_completion (GtkEntry *entry); -/* Deprecated compatibility functions - */ +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); -#ifndef GTK_DISABLE_DEPRECATED -GtkWidget* gtk_entry_new_with_max_length (gint 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); -void gtk_entry_set_editable (GtkEntry *entry, - gboolean editable); -#endif /* GTK_DISABLE_DEPRECATED */ - -#ifdef __cplusplus -} -#endif /* __cplusplus */ +/* For scrolling cursor appropriately + */ +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__ */