Focusing the text entry without selecting all the text is needed in
some places (GtkTreeView, and some uses of GtkSearchEntry) so
create a private helper to avoid replicating the hacks.
https://bugzilla.gnome.org/show_bug.cgi?id=700787
This commit moves all the entry completion implementation
into gtkentrycompletion.c. It also gets rid of an unnecessary
completion_device member in GtkEntryPrivate.
- Removed most of GtkCellLayout implementation in favor of ->get_area()
- This allows GtkBuildable cell layout implementation to implement
the child "cell-properties"
- Also allows feeding a custom/different GtkCellArea implementation to
layout cells.
- Share the internal area with the created GtkTreeViewColumn.
* gtk/gtkentry.c:
* gtk/gtkentrycompletion.c:
* gtk/gtkentrycompletion.h:
* gtk/gtkentryprivate.h:
Rember the user input that triggered the completion, add
API to the retrieve it and reset the entry contents to it
if the user cancels the tentative completion during
the inline-selection.
svn path=/trunk/; revision=17666
Support inline-selection in entries (#318459)
* gtk/gtkentry.c:
* gtk/gtkentrycompletion.c:
* gtk/gtkentrycompletion.h:
* gtk/gtkentryprivate.h:
When enabled cursor-match is emited when the cursor is on
a possible completion on the list. The default implementation
will replace the contents on the entry with the contents of
the text column in the completion model.
Review and improvements by Matthias Clasen.
svn path=/trunk/; revision=17660
2006-08-15 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkentryprivate.h:
* gtk/gtkentry.c (_gtk_entry_effective_inner_border): Export
privately. Adjust all callers.
* gtk/gtkspinbutton.c (gtk_spin_button_size_request): Use it
here to get the actual inner border. (#349429, Benjamin Berg)
2005-05-26 Matthias Clasen <mclasen@redhat.com>
* gtk/gtk.symbols:
* gtk/gtkentrycompletion.c: Add a property to suppress the
popup for single matches. (#154711)
* gtk/gtkentry.c (gtk_entry_completion_timeout): Respect it here.
* gtk/gtkfilechooserentry.c (_gtk_file_chooser_entry_set_action):
Use it here.
2004-07-19 Matthias Clasen <mclasen@redhat.com>
Support inline autocompletion in entries (#135953)
* gtk/gtkentryprivate.h:
* gtk/gtkentrycompletion.h:
* gtk/gtkentrycompletion.c (gtk_entry_completion_class_init):
Add a new signal ::insert-prefix which can be used to override
the default inline-completion behaviour. Add two new boolean
properties, :popup_completion and :inline_completion which
determine how the possible completions should be presented.
(gtk_entry_completion_insert_prefix): New function to request
a prefix insertion.
* gtk/gtkentry.c: Add the necessary glue for inline completion.
Sat Jun 5 23:07:30 2004 Matthias Clasen <maclas@gmx.de>
* gtk/gtkentrycompletion.c: (gtk_entry_completion_init),
(gtk_entry_completion_list_enter_notify),
(gtk_entry_completion_list_motion_notify),
(_gtk_entry_completion_popup), (_gtk_entry_completion_popdown):
* gtk/gtkentryprivate.h: Add an ignore_enter flag and
use it as in the menu code to avoid the initial selection if
the window pops up under the pointer. (Anders Carlsson)
2004-04-12 Matthias Clasen <mclasen@dhcp64-228.boston.redhat.com>
* gtk/gtktreeview.c (gtk_tree_view_get_cell_area): Typo fix.
* gtk/gtkentrycompletion.c (gtk_entry_completion_init): Don't add
a shadow inside the scrolled window, add it around the vbox.
* gtk/gtkentryprivate.h:
* gtk/gtkentrycompletion.c (_gtk_entry_completion_resize_popup):
Return a boolean indicating whether the popup is positioned above
or below. Scroll the completions to the beginning or the end,
depending on the positioning.
* gtk/gtkentry.c (gtk_entry_completion_key_press): Make keynav
wrap around in the entry completion popup, and allow GDK_UP to
enter the popup. (#137440)
2004-04-12 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkentry.c (gtk_entry_size_request): Make sure the style is
there before using it.
Mon Nov 17 22:56:09 2003 Kristian Rietveld <kris@gtk.org>
* gtk/gtkentryprivate.h: add _gtk_entry_completion_resize_popup.
* gtk/gtkentry.c (gtk_entry_completion_timeout): popup when not
mapped, else resize_popup.
* gtk/gtkentrycompletion.c (_gtk_entry_completion_resize_popup),
(_gtk_entry_completion_popup): moved all popup resizing code to
_gtk_entry_completion_resize_popup, and show the window when there
are more than zero items in the completion list again (sigh).
Sat Oct 11 15:23:27 2003 Kristian Rietveld <kris@gtk.org>
Fixes based on comments from Marco Pesenti Gritti.
* gtk/gtkentry.c (gtk_entry_set_text): block the completion changed
signal handler, avoids the completion popup to popup when text is
set programmatically in most cases (we actually have to handle this
in the _editable functions as well, but that will break popping up
when the user actually typed something :),
(gtk_entry_completion_key_press): when handling enter, bail out
when nothing has been selected,
(gtk_entry_completion_changed): don't popdown when the entry content
changed.
* gtk/gtkentrycompletion.c (gtk_entry_completion_init),
(gtk_entry_completion_selected_changed): unselect_all on the
first selected changed signal. Avoids having a default row selected,
(_gtk_entry_completion_popup): don't select the first row by default.
* gtk/gtkentryprivate.h (struct _GtkEntryCompletionPrivate): add a
first_sel_changed field.
Fri Jul 11 14:32:43 2003 Kristian Rietveld <kris@gtk.org>
Landing GtkTreeModelFilter and the completion code. (Test program
and documentation will follow next week).
* gtk/gtkcellayout.[ch], gtk/gtkentrycompletion.[ch],
gtk/gtktreemodelfilter.[ch], gtk/gtkentryprivate.h: new files.
* gtkentry.[ch]: added gtk_entry_{get,set}_completion, wrote
necessary code to hook up completion.
* gtktreeviewcolumn.c: made GtkTreeViewColumn implement the new
GtkCellLayout interface.
* gtkmarshalers.list: added BOOLEAN:OBJECT,BOXED.
* gtk/gtk.h, gtk/Makefile.am, po/POTFILES.in: all updated for the new
source files.