This includes the addition of a "small" helper function,
_gtk_pango_fill_layout() that ignores color information. This
functionality is not available inside Pango and until that happens, we
need this fix. The bug is filed at:
https://bugzilla.gnome.org/show_bug.cgi?id=624917
Includes fixing all callers to use the cairo region API instead. This is
usually just replacing the function names, the only difference is
gdk_region_get_rectangles() being replaced by
cairo_region_num_rectangles() and cairo_region_get_rectangle() which
required a bit more work.
https://bugzilla.gnome.org/show_bug.cgi?id=613284
This commit makes a few massive changes to the extended layout
code:
a.) gtkextendedlayout.c --> gtksizerequest.c
b.) _is_height_for_width --> get_request_mode()
c.) get_desired_size(), get_desired_width(), get_desired_height() -->
get_size(), get_width(), get_height()
This is the first partial commit and only effects portions
of the tree that have already been merged in master (in order to
easily cherry pick this commit).
Conflicts:
gtk/Makefile.am
gtk/gtk.h
gtk/gtk.symbols
gtk/gtkextendedlayout.h
This fixes the label layout in cases where gtk_widget_size_request()
is called on a label without a following size_allocate(), for instance
when a button state changes.
After fixing height requests this works much smoother, although in
some places pango seems to ellipsize a rotated label when given
the width it requested.
This is the correct support for the opposing orientation for widgets
that support height-for-width, in an interface that was realized as
width-for-height, a height-for-width supporting widget should return
the minimum height for the minimum width when the initial
get_desired_height() is run.
Now (when wrapping), if no "width-chars" was specified for a minimum
width, default to the width guessed by gtk_label_ensure_layout(), small
specified widths will otherwise result in very large height requests.
This commit makes GtkLabel use "max-width-chars" to determine the
desired natural width for wrapping labels as well as all around refactoring
the initially reported values in get_desired_width/height. this also
addresses some issues with rotating ellipsizing text.
Since GtkLabel is returning invalid natural sizes for now,
in order to test regressions well with the new width-for-height
api, I've temporarily disabled the natural values.
Added a function to update sizegroups in multiple passes, this
way the width and height can be updated in the sizegroups after
querying the extended layout implementor for these.
Implemented this in GtkExtendedLayout, sizegroups should be working reasonably now.
This commit changes gtk_extended_layout_get_desired_size() for
per dimension variants. Furthermore this commit reverts the actions
done in size-groups for now as it needs a different approach.
The natural width/height parameters added to aux_info have been changed
for a per width cache for heights and a per height cache for widths.
gtk-demo is still working, currently sizegroups are not taken
into account as mentioned above - size groups need to be alerted both
when the widths and heights are updated independantly and then that
information needs to repropagate also to other extended layout implementors.
Merged in fixes from the old branch in a patch prepared by Matthias Clasen,
added some fixes of my own to make sure that label wrapping follows allocation
and not requisition at show time (allocate time).
Getting the desired size of a GtkWidget must always be done with
gtk_widget_get_desired_size() and never with
gtk_extended_layout_get_desired_size() directly as the former passes
through size group logic and updates the widget->requisition cache.
This commit was created using a script that searched for all docstrings
containing a parameter and the string 'or %NULL'.
Gdk backends and demos excluded as they are not part of a public API
https://bugzilla.gnome.org/show_bug.cgi?id=610474
Deprecate widget flag macros GTK_WIDGET_STATE, GTK_WIDGET_SAVED_STATE,
GTK_WIDGET_FLAGS, GTK_WIDGET_TOPLEVEL, GTK_WIDGET_NO_WINDOW and
GTK_WIDGET_COMPOSITE_CHILD.
Also deprecate the type macros GTK_WIDGET_TYPE, GTK_OBJECT_TYPE_NAME and
GTK_OBJECT_TYPE which have become redundant.
Instances of GTK_WIDGET_TOPLEVEL are replaced with gtk_widget_is_toplevel,
GTK_WIDGET_TYPE is replaced with G_OBJECT_TYPE, GTK_WIDGET_COMPOSITE_CHILD
is replaced with use of the "composite-child" property and uses of
GTK_WIDGET_NO_WINDOW are adjusted to use gtk_widget_get_has_window.
Uses of GTK_WIDGET_SAVED_STATE and GTK_WIDGET_FLAGS inside GtkWidget are
changed to direct flag usage.
Documentation is updated to refer to gtk_widget_set_has_window and
gtk_widget_get_has_window.
Gail and tests are updated as well.
Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=69872
...and show them in menus when navigating the menu with the keyboard.
This is similar to what other platforms do, and reduces visual clutter.
There is a setting to control this. Most of the work on this patch was
done by Thomas Wood. See bug 588554.
The Gtk-custom.c file in gir-repository contained a number of
introspection annotations. Merge those into the GTK source files.
Some documentation was moved from the tmpl/ files to accomodate
the addition of annotations.
This commit was created using a script that searched for all docstrings
containing a parameter and the string 'or %NULL'.
Gdk backends and demos excluded as they are not part of a public API
https://bugzilla.gnome.org/show_bug.cgi?id=610474
Deprecate widget flag macros GTK_WIDGET_STATE, GTK_WIDGET_SAVED_STATE,
GTK_WIDGET_FLAGS, GTK_WIDGET_TOPLEVEL, GTK_WIDGET_NO_WINDOW and
GTK_WIDGET_COMPOSITE_CHILD.
Also deprecate the type macros GTK_WIDGET_TYPE, GTK_OBJECT_TYPE_NAME and
GTK_OBJECT_TYPE which have become redundant.
Instances of GTK_WIDGET_TOPLEVEL are replaced with gtk_widget_is_toplevel,
GTK_WIDGET_TYPE is replaced with G_OBJECT_TYPE, GTK_WIDGET_COMPOSITE_CHILD
is replaced with use of the "composite-child" property and uses of
GTK_WIDGET_NO_WINDOW are adjusted to use gtk_widget_get_has_window.
Uses of GTK_WIDGET_SAVED_STATE and GTK_WIDGET_FLAGS inside GtkWidget are
changed to direct flag usage.
Documentation is updated to refer to gtk_widget_set_has_window and
gtk_widget_get_has_window.
Gail and tests are updated as well.
Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=69872
...and show them in menus when navigating the menu with the keyboard.
This is similar to what other platforms do, and reduces visual clutter.
There is a setting to control this. Most of the work on this patch was
done by Thomas Wood. See bug 588554.
The Gtk-custom.c file in gir-repository contained a number of
introspection annotations. Merge those into the GTK source files.
Some documentation was moved from the tmpl/ files to accomodate
the addition of annotations.
Previously we would always align the top of the text with the label's allocation-plus-padding.
However, this makes a single-line label inside a GtkButton look badly clipped when the button
has a smaller allocation than its requisition. So, for single-line labels we respect the
alignment even if it doesn't fit within the label's allocation. But for multi-line labels, we
give preference to showing the first line, to give the user some context.
Signed-off-by: Federico Mena Quintero <federico@novell.com>
* gtk/gtkentry.c:
* gtk/gtklabel.c:
* gtk/gtktextview.c: Correct some copy-and-paste mistakes in
keybinding signal docs. Pointed out by Pascal Terjan.
svn path=/trunk/; revision=22140
* gtk/gtklabel.c: gtk_label_set_attributes() now applies attributes
on top of any markup or mnemonic attributes (bug 558409).
* README: Updated and added release notes for 2.16
svn path=/trunk/; revision=21764
2008-08-12 Michael Natterer <mitch@imendio.com>
* gtk/*.c: consistently chain up using
GTK_FOO_CLASS(parent_class)->bar(instance) instead of
(*GTK_FOO_CLASS(parent_class))->bar(instance).
svn path=/trunk/; revision=21085
2008-06-30 Cody Russell <bratsche@gnome.org>
* Practically everything changed.
Change all references of GIMP Toolkit (and variations of it)
to GTK+ Toolkit, showing no mercy at all to our beloved
ancestry. (#540529)
svn path=/trunk/; revision=20709
2008-05-25 Jan Arne Petersen <jpetersen@jpetersen.org>
* gtk/gtklabel.c: (get_layout_location): Subtract logical.x from x to
fix the wrong position for right and center justified labels with
logical.x > 0 (#530255).
svn path=/trunk/; revision=20146
2007-07-09 Matthias Clasen <mclasen@redhat.com>
* gtklabel.[ch]: Use a bit of the GtkLabel structure to
remember that a pattern has been set.
(gtk_label_set_pattern_internal): Don't do anything if
a specific pattern has been set.
(gtk_label_set_pattern): set the new bit to TRUE when
setting a pattern, and recalculate everything if the
pattern is unset. Fix gtk_label_set_pattern() not working
anymore. (#452861, Vincent Untz)
svn path=/trunk/; revision=18426
2007-06-13 Michael Natterer <mitch@imendio.com>
* gtk/gtklabel.c (gtk_label_set_label): added calls to
g_object_freeze/thaw_notify() so gtk_label_get_text() doesn't
return the old text when called from a "notify::label" callback.
svn path=/trunk/; revision=18120
2007-02-05 Michael Natterer <mitch@imendio.com>
* gtk/gtksettings.c: add new boolean settings gtk-enable-accels
and gtk-enable-mnemonics which enable/disable accelerators and
mnemonics (bug #72375, based on a patch from Tommi Komulainen).
* gtk/gtkwindow.c (gtk_window_activate_key)
* gtk/gtkmenushell.c (gtk_menu_shell_key_press): don't invoke them
if the resp. setting is FALSE.
* gtk/gtkaccellabel.c (gtk_accel_label_refetch)
* gtk/gtklabel.c (gtk_label_set_pattern_internal): don't display
them if the setting is FALSE.
* gtk/gtklabel.c: added signal connection to the screen's settings
object and traverse all widgets on the screen when the setting
changes. It's slightly ugly to also update GtkAccelLabels here,
but less ugly than connecting and traversing all widgets twice.
svn path=/trunk/; revision=17262
2007-01-06 Matthias Clasen <mclasen@redhat.com>
* gtk/gtklabel.c: Make line wrapping work with width-chars
and max-width-chars, and simplify the storage of wrap-width.
(#322580, Itai Bar-Haim)
svn path=/trunk/; revision=17098
2007-01-03 Matthias Clasen <mclasen@redhat.com>
Fix#332604, reported by Joe Wreschnig, patch
by Jan Arne Petersen and Behdad Esfahbod.
* gtk/gtklabel.c (gtk_label_size_allocate): Only
set the width of the layout when necessary.
(get_layout_location): Use pango_layout_get_pixel_extents()
instead of pango_layout_get_width().
svn path=/trunk/; revision=17052
2006-11-16 Michael Natterer <mitch@imendio.com>
Add new infrastructure for notifications of failed keyboard
navigation and navigation with restricted set of keys.
The patch handles configurable beeping, navigating the GUI with
cursor keys only (as in phone environments), and configurable
wrap-around. Fixes bugs #322640, #70986, #318827, #334726, #334742
and #309291.
* gtk/gtksettings.c: added properties gtk-keynav-cursor-only,
gtk-keynav-wrap-around and gtk-error-bell.
* gtk/gtkwidget.[ch]: added new signal "keynav-failed" and public
API to emit it. Added New function gtk_widget_error_bell() which
looks at the gtk-error-bell setting and calls gdk_window_beep()
accordingly.
* gtk/gtk.symbols: add the new widget symbols.
* gtk/gtkcellrendereraccel.c
* gtk/gtkimcontextsimple.c
* gtk/gtkmenu.c
* gtk/gtknotebook.c: use gtk_widget_error_bell() or look at the
gtk-error-bell setting instead of calling gdk_display_beep()
unconditionally.
* gtk/gtkcombobox.c
* gtk/gtkentry.c
* gtk/gtkiconview.c
* gtk/gtklabel.c
* gtk/gtkmenushell.c
* gtk/gtkspinbutton.c
* gtk/gtktextview.c
* gtk/gtktreeview.c: call gtk_widget_error_bell() on failed keynav.
* gtk/gtkentry.c
* gtk/gtklabel.c
* gtk/gtkrange.c
* gtk/gtktextview.c: consult gtk_widget_keynav_failed() on failed
cursor navigation and leave the widget if it returns FALSE.
* gtk/gtkmenushell.c
* gtk/gtknotebook.c: only wrap around if gtk-keynav-wrap-around
is TRUE.
* gtk/gtkradiobutton.c: ask gtk_widget_keynav_failed() to decide
whether to to wrap-around, and don't select active items on cursor
navigation if gtk-keynav-cursor-only is TRUE. Should look at
gtk-keynav-wrap-around too, will look into that.
2006-06-19 Alexander Larsson <alexl@redhat.com>
* gtk/gtk.symbols:
* gtk/gtklabel.[ch]:
Add gtk_label_set_line_wrap_mode, gtk_label_get_line_wrap_mode, and
a wrap-mode property that lets you set the PangoWrapMode.
2006-05-02 Michael Natterer <mitch@imendio.com>
* gtk/gtklabel.c (gtk_label_set_line_wrap): added note about the
inablity to do height-for-width text layout and suggest to use
gtk_widget_set_size_request() for getting a label that wraps at
some specific position.
2006-01-25 Behdad Esfahbod <behdad@gnome.org>
* gtk/gtklabel.c (get_layout_location): Use logical extents of the
layout instead of ink extents. According to Pango docs, that's what
should be used for placement. Moreover, simply use
pango_layout_get_pixel_size instead of getting the extents and
dividing ourselves.
2006-01-23 Behdad Esfahbod <behdad@gnome.org>
* gtk/gtklabel.c (get_layout_location): Fix misalignment of RTL
text in ellipsized GtkLabel: use layout width if set, otherwise
fallback to ink extents width. (#322042)
2005-12-26 Matthias Clasen <mclasen@redhat.com>
* gtk/gtklabel.c (gtk_label_class_init): Add a gtk-label-select-on-focus
setting.
(gtk_label_grab_focus): And use it here to select the contents of
the label when appropriate.
(gtk_label_class_init): Use the same keybindings for select all/
unselect all as GtkEntry and GtkTextView.
* gtk/gtkdialog.c (gtk_dialog_map): When looking for the initial
focus, avoid leaving a selection in a label.
2005-10-20 Matthias Clasen <mclasen@redhat.com>
* gtk/gtklabel.c (gtk_label_create_window): Use GDK_WINDOW_CHILD
for the selection window. (#318806, Alex Larsson)
2005-09-14 Matthias Clasen <mclasen@redhat.com>
* gtk/gtklabel.c (gtk_label_get_type):
* gtk/gtkbutton.c (gtk_button_get_type):
* gtk/gtkwindow.c (gtk_window_group_get_type): No point in
using a mem chunk for window groups, buttons, labels.
2005-09-01 Matthias Clasen <mclasen@redhat.com>
* gdk/*.c: Intern some more strings.
* gtk/gtkintl.h:
* gtk/*.c: Define an I_() macro and use it instead of the
bulky g_intern_static_string().
2005-08-31 Matthias Clasen <mclasen@redhat.com>
* gdk/Makefile.am:
* gtk/Makefile.am: Intern type names in code generated by
glib-mkenums, too.
* gtk/*.c:
* gdk/x11/*.c:
* gdk/*.c: Intern type names before registering the type to avoid
unnecessary copies.
2005-07-11 Matthias Clasen <mclasen@redhat.com>
When dragging text, use a drag icon showing the (ellipsized)
text that is being dragged: (#161132, Kevin Duffus, patch
by Carlos Garnacho Parro)
* gtk/gtktextutil.h:
* gtk/gtktextutil.c (_gtk_text_util_create_drag_icon): Add
a function to create a pixmap for use when dragging text.
* gtk/gtktextview.c (gtk_text_view_start_selection_dnd):
* gtk/gtklabel.c (gtk_label_motion):
* gtk/gtkentry.c (gtk_entry_motion_notify): Use a drag icon
showing the text being dragged.
2005-07-11 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkentry.c (gtk_entry_move_forward_word)
(gtk_entry_move_backward_word): Match the text view change
to allow selecting whitespace with double-click.
2005-06-21 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkarrow.c:
* gtk/gtkimage.c:
* gtk/gtklabel.c:
* gtk/gtkpixmap.c: Modify all of the GtkMisc widgets to round down
on centering calculations to match the behaviour of other parts
of GTK+. (#307419, Ryan Lortie)
2005-03-21 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkprivate.h: Define macros GTK_PARAM_READABLE,
GTK_PARAM_WRITABLE, GTK_PARAM_READWRITE which are like
their G_ counterparts, but also mark the name, nick
and blurb as static.
* gtk/*.c: Mark param spec strings as static, using
the new macros.
2005-03-20 Matthias Clasen <mclasen@redhat.com>
Make PLT-reduction work with gcc4, and don't include
everything in gdkalias.h:
* gtk/grk.symbols: Group symbols by header and source file.
* gtk/makegtkalias.pl: Protect definitions by the same
preprocessor symbols used to guard the headers. Move
the alias declarations to a separate file which is
produced when calling makegtkalias.pl -def
* gdk/Makefile.am (gtkaliasdef.c): Add a rule to generate
this file.
* gtk/*.c: Include gtkalias.h after the other headers,
include gtkaliasdef.c at the bottom.
* gtk/*.h: Small cleanups.
2005-03-17 Matthias Clasen <mclasen@redhat.com>
* gtk/gtklabel.c (gtk_label_set_markup): Fix formatting
in example in the docs. (#170611, Jianfei Wang)
2005-02-23 Matthias Clasen <mclasen@redhat.com>
* gtk/gtklabel.c (gtk_label_style_set): Revert the last
change, since gtk_widget_set_style_internal() already
queues a resize.
2005-02-23 Matthias Clasen <mclasen@redhat.com>
* gtk/gtklabel.c (gtk_label_style_set): Queue a resize, since
fonts may have changed. (#164128, Phil Blundell)
2005-01-09 Anders Carlsson <andersca@gnome.org>
* gtk/gtkcellrenderertext.c: (get_size):
* gtk/gtklabel.c: (gtk_label_size_request):
* gtk/gtkprogressbar.c: (gtk_progress_bar_size_request):
Don't pass NULL to pango_context_get_metrics. Use
pango_context_get_language instead, which is way faster.
2004-12-22 Matthias Clasen <mclasen@redhat.com>
* gtk/gtklabel.c (gtk_label_setup_mnemonic): Don't forget to
null the mnemonic_menu when unsetting a mnemonic, reported
by Owen Taylor.
2004-12-13 Matthias Clasen <mclasen@redhat.com>
* gtk/gtklabel.[hc]: Add a max-width-chars property, which can
be used to specify the width of the label in characters, while
still allowing it to fall short of this length if the text
is shorter. (#155944, Christian Persch)
* gtk/gtk.symbols: Add new symbols.
2004-12-10 Matthias Clasen <mclasen@redhat.com>
Support no-Alt mnemnonics in menu bars (#101309, Owen Taylor)
* gtk/gtkwindow.c: Factor out mnemonic hash code into
a separate file.
* gtk/gtkmnemonichash.[hc]: Factored out mnemonic hash
code from gtkwindow.c.
* gtk/Makefile.am (gtk_c_sources): Add gtkmnemonichash.[hc].
* gtk/gtkmenushell.c (struct _GtkMenuShellPrivate): Give
menu shells their own mnemonic hash.
* gtk/gtkmenushell.h: Add private api to support mnemonics.
* gtk/gtklabel.c (gtk_label_setup_mnemonic): Add mnemonic to
the menushell mnemonic hash when inside a menu.
Sat Nov 20 15:13:51 2004 Owen Taylor <otaylor@redhat.com>
* gdk/gdkpango.[ch]: Add GdkPangoRenderer, a subclass of
PangoRenderer targeting GDK drawables. Use to implement the old
gdk_draw_layout() and friends.
* gdk/gdkdraw.c gdk/gdkdrawable.h gdk/gdkwindow.c gdk/gdkpixmap.c:
Add gdk_draw_glyphs_transformed() gdk_draw_trapezoids() and
the corresponding members of GdkDrawableClass. Add a fallback
implementation of gdk_draw_trapezoids() in terms of pixbufs.
* gdk/gdkwindowing.h gdk/x11/gdkg-x11.h: Add
_gdk_windowing_gc_get_foreground() to enable the fallback
trapezoid implementation.
* gdk/x11/gdkdrawable-x11.c gdk/x11/gdkdisplay-x11.h: Implement
draw_glyph_transformed, draw_trapezoids.
* gdk/x11/gdkdrawable-x11.[ch]: Add
_gdk_x11_drawable_draw_xtrapezoids, _gdk_x11_drawable_draw_xft_glyphs
for use of GdkX11Renderer.
* gdk/x11/gdkgc-x11.c gdk/x11/gdkprivate-x11.h: Implement
GDK_TILED, GDK_STIPPLED, GDK_OPAQUE_STIPPLED in the RENDER codepath.
* gdk/gdkpango-x11.c: Add GdkX11Renderer... a subclass of
PangoXftRenderer that does tiles/stipples and fallback rendering
of trapezoids without the RENDER extension.
* gdk/gdkpango-x11.c gdk/x11/gdkscreen-x11.[ch] _gdk_x11_renderer_get:
Add _gdk_x11_renderer_get() to get a singleton GdkX11Renderer
for the screen.
* gdk/x11/gdkdrawable-x11.c (get_impl_drawable): Fix a None/NULL
confusion.
* gtk/gtklabel.[ch] gtk/gtk.symbols: Add gtk_label_set/get_angle(),
and an ::angle property.
* gtk/gtklabel.c: Remove #if 0'd dead code gtk_label_paint_word().
* gtk/gtktextdisplay.c: Switch to using a GtkTextRenderer subclass
of GdkPangoRenderer for drawing.
* gtk/gtktextlayout.[ch] gtk/gtktextdisplay.c: Switch to using
gtk_attr_shape_new_with_data() to store backreferences to
embedded pixmaps and widgets. Leave line_display->shaped_objects
around for backwords compatibility.
* gdk/gdkpango.[ch] (gdk_pango_context_set_colormap): Describe
as deprecated, remove implementation.
* gtk/gtkwidget.c (gtk_widget_create_pango_context): Remove
call to gdk_pango_context_set_colormap.
* demos/gtk-demo/Makefile.am demos/gtk-demo/rotated_text.c: Add
a demo showing drawing rotated text.
* tests/testgtk.c: Add a rotated-label test, and also a rotated
drawing test (differs from demos/gtk-demo/rotated_text by also
using a tile)
2004-11-09 Matthias Clasen <mclasen@redhat.com>
* gtk/gtklabel.c (draw_insertion_cursor, gtk_label_expose):
Clip when drawing the cursor. This prevents bits of a
selectable label leaking out from underneath the resize
grip in a statusbar. (#73359)
2004-11-09 Matthias Clasen <mclasen@redhat.com>
Avoid resizing GtkStatusbar if the text of the label
changes (#90955, He Qiangqiang, fix proposed by
Owen Taylor, patch by Christian Persch)
* gtk/gtklabel.[hc]: Add a boolean single-line-mode property
which causes the label height not to depend on the actual
text, but only on the font.
* gtk/gtkstatusbar.c (gtk_statusbar_init): Turn on
single-line-mode for the label.
2004-09-29 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkdialog.c (gtk_dialog_map): Skip selectable labels when
looking for the initial focus widget.
* gtk/gtklabel.c (gtk_label_focus): Remove to put selectable labels
in the regular focus chain again.
2004-08-23 Matthias Clasen <mclasen@redhat.com>
Fix#150822, reported by Christian Persch
* gtk/gtklabel.c (gtk_label_ensure_layout): Set the layout width
appropriately when ellipsized.
(gtk_label_size_allocate): Only set the layout width if there
is a layout.
Mon Aug 9 12:48:04 2004 Matthias Clasen <maclas@gmx.de>
Add hidden aliases for exported symbols which are
used internally in order to get rid of many PLT
entries. (#145519, Arjan van de Ven)
* gtk/Makefile.am: Add rules to generate gtk.def and
from gtk.symbols, and make make check check the abi
with abicheck.sh.
(gtk_private_h_sources): Add gtkinternals.h
(gtk_built_private_headers): Add gtkalias.h
(gtk_extra_sources): Add gtk.symbols
(EXTRA_DIST): Add makegtkalias.pl and abicheck.sh
* gtk/gtk.symbols: New file. Definition of the GTK+ ABI.
The file can be processed by cpp to filter out certain
subsets of symbols.
* gtk/abicheck.sh: New file. Script to check the actually
symbols exported from libgtk-x11.2.0.so against the symbols
found in gtk.symbols.
* gtk/makegtkalias.pl: New file. Perl script to generate the
header containing the alias definitions for internally used
exported symbols from a list of symbols.
* gtk/gtkinternals.h: New file. An uninstalled header listing
symbols which must be exported for some reason and do not appear
in any other header.
* gtk/*.c: Include gtkalias.h
Thu Jul 22 01:05:16 2004 Matthias Clasen <maclas@gmx.de>
* configure.in: Require Pango 1.5.1 (for ellipsisation).
* gtk/gtklabel.h:
* gtk/gtklabel.c (gtk_label_class_init): Add a new :ellipsise
property which controls ellipsisation of the label. (#125250,
Tim Van Wassenhove, patch by James M. Cape)
* tests/testellipsise.c: Simple test for ellipsisation.
Mon Mar 15 09:54:36 2004 Owen Taylor <otaylor@redhat.com>
* gtk/gtklabel.c (gtk_label_focus): Check for
Control-Tab or Control-Shift-Tab, not any Control-key
as a current event ... handles the case where a dialog
is triggered from a control accelerator better.
Thu Mar 11 13:58:24 2004 Owen Taylor <otaylor@redhat.com>
* gtk/gtkmessagedialog.c gtk/gtklabel.c: Back out the
put-labels-into-the-standard-focus-chain patches
from bug #59707.
* gtk/gtklabel.c (gtk_label_focus): Only put the
label in the tab chain when the control key is pressed.
2004-03-05 Federico Mena Quintero <federico@ximian.com>
Fixes#136082 and #135265, patch by Morten Welinder.
* configure.in: Use AC_SYS_LARGEFILE.
* */*.c: #include <config.h>
Mon Mar 1 12:23:06 2004 Owen Taylor <otaylor@redhat.com>
* gtk/gtklabel.c: Handle dynamically resolved bidi direction
when drawing the cursor. (#118541)
* gtk/gtkentry.c (get_better_cursor_x): Use entry->resolved_dir;
* gtk/gtkentry.c (draw_insertion_cursor): Fix up
some confusion in parameter ordering.
Wed Feb 25 12:21:32 2004 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwidget.[ch] gtk/gtklabel.c: Patch from
Padraig O'Briain to add gtk_widget_add/remove_mnemonic_label,
gtk_widget_get_mnemonic_labels(). (#103456)
2004-02-04 Federico Mena Quintero <federico@ximian.com>
Fix#59707.
* gtk/gtklabel.c (gtk_label_focus): Removed, so we don't ignore
the focus chain.
(gtk_label_button_press): Fix prototype.
(gtk_label_button_release): Likewise.
(gtk_label_motion): Likewise.
* tests/testgtk.c (create_message_dialog): For the dialog with
only GTK_BUTTONS_CLOSE, make GTK_RESPONSE_CLOSE the default.
Fri Jan 16 23:59:01 2004 Matthias Clasen <maclas@gmx.de>
The first part of the fix for #114351 (see also
gdk-pixbuf/ChangeLog and po/ChangeLog):
* gtk/gtkintl.h:
* gdk-pixbuf/gdk-pixbuf-i18n.h:
* gdk/gdkintl.h: Define P_() for property blurbs and nicks.
* gdk/gdkdisplaymanager.c:
* gdk-pixbuf/gdk-pixbuf.c:
* modules/input/gtkimcontextxim.c:
* gtk/*.c: Mark property blurbs and nicks with P_().
* po/Makefile.in.in: Add --keyword=P_ to the xgettext
invocation, since property blurbs and nicks are
now marked with P_().
2003-12-04 Mark McLoughlin <mark@skynet.ie>
* gtk/gtklabel.c: (gtk_label_set_attributes_internal): Allow
gtk_label_set_attributes() take NULL. See bug #128517.
Tue Dec 10 12:40:30 2002 Soeren Sandmann <sandmann@daimi.au.dk>
* gtk/gtkmenuitem.c, gtk/gtkstyle.c, gtk/gtkrc.c: new default
color scheme based on the GNOME stock icon palette. (#80691,
Tuomas Kuosmanen, Garrett LeSage, Owen Taylor)
* gtk/gtknotebook.c (gtk_notebook_real_remove): take a new
parameter, "destroying", and don't emit the switch-page signals
when it is true (fix#64832, reported by Jarred Keuch)
* gtk/gtklabel.c (gtk_label_set_property): remove unused
variable.
Tue Nov 12 15:13:58 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwidget.c gtk/gtkwindow.[ch]: Add
_gtk_window_unset_focus_and_default(), use to clear
the focus and default out of parts of the widget
heirarchy that we are hiding.
* gtk/gtkwidget.c (gtk_widget_propagate_screen_changed_recurse):
Fix typo that was resulting in missed screen-change
notifies.
* gtk/gtkwindow.c (do_focus_change): Allow for
widget->window == NULL.
* gtk/gtklabel.c (gtk_label_screen_changed): Clear the
layout here not in hierarchy changed to handle the case
where the toplevel was moved between screens.
Wed Oct 2 17:46:53 2002 Owen Taylor <otaylor@redhat.com>
* gdk/gdkdrawable.h gdk/gdkinternals.h gdk/gdkdraw.c
gdk/gdkwindow.c gdk/gdkdrawable.c: Export _gdk_draw_pixbuf
as gdk_draw_pixbuf(), rename the _draw_pixbuf virtual
function to draw_pixbuf. (#60582)
* gdk/gdkpixbuf-render.c (gdk_pixbuf_render_to_drawable[_alpha]):
Note that these functions are obsolete in the docs.
* gdk/gdkpixbuf-render.c (gdk_pixbuf_render_to_drawable):
Remove all the sanity checks now we make it clear
that it is obsolete name for gdk_draw_pixbuf().
* gdk/gdkpixmap.c gtk/gtkcellrendererpixbuf.c gtk/gtkimage.c
gtk/gtkpixmap.c demos/testpixbuf-scale.c demos/testpixbuf.c
tests/testrgb.c: Use gdk_draw_pixbuf() everywhere.
* gtk/gtklabel.c (gtk_label_set_mnemonic_widget): Fix
some warnings.
* gdk/gdkinternals.h (struct _GdkEventPrivate): Fix missed
bit from last gdk_event_get_screen() change.
* gdk/gdkevents.c: Couple of small fixes.i
Mon Sep 30 15:45:49 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtklabel.c (gtk_label_set_mnemonic_widget):
Make the reference to the mnemonic widget weak.
(#93334, Murray Cumming)
* gtk/gtklabel.c : Replaced instances where strlen (label->label) is
used to get a byte code with strlen (label->text) as label->text
contains the actual display text, while label->label contains
markup / mnemonics. (#92683, Patch from Shivram U
<shivaram.upadhyayula@wipro.com>, with some additions.)
* gtk/gtklabel.c (gtk_label_set_uline_text_internal):
Fix a leftover, now incorrect comment.
Mon Aug 5 17:20:45 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtklabel.c: Patch from Soeren Sandmann
to improve GtkLabel behavior when it gets
a too small allocation. (Always display the
initial portion.) (#71742)
Tue May 14 16:44:09 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtklabel.c (gtk_label_ensure_layout): Set
the width of the layout to the actual wrap width
(our requisition) not the width we set when calculating
the width. This results in the lines being justified
within the correct area. (#79157, Anders Carlsson)
* gtk/gtkaccelgroup.c gtk/gtkmarshelers.list: Corrected
registered parameter types of "accel_activate" and
"accel_changed" signals. (Patch from Murray Cumming, #78798)
* gtk/gtkrc.c (gtk_rc_make_default_dir): Switch
binary-version and type to correspond to the
current ordering in _gtk_get_module_path.
(#78746, Sergey Kuzminov)
* gtk/gtkrc.c (gtk_rc_get_module_dir): Add docs
pointing to the GTK_PATH documentation.
* gtk/Makefile.am (uninstall-local): Delete
key themes as well. (#81286, Kristian Rietveld.)
Mon Apr 29 18:28:00 2002 Owen Taylor <otaylor@redhat.com>
Integrate Erwann Chenede's multihead changes for the gtk/ directory.
* gtk/gtkclipboard.[ch]: Add gtk_clipboard_get_for_display(),
make internals multihead aware.
* gtk/gtkcolorsel.[ch]: Add
gtk_color_selection_set_change_palette_with_screen_hook () [ugh!]
make up for non-multihead safety of
gtk_color_selection_set_change_palette_hook()
* gtk/gtkinvisible.[ch] gtk/gtkmenu.[ch] gtkwindow.[ch]: Add
gtk_{invisible,menu,window}_set_screen(); add "screen" properties
for GtkWindow and GtkMenu.
* gtk/gtkplug.[ch]: Add gtk_plug_construct_for_display(),
gtk_plug_new_for_display(). Multihead fixes.
* gtk/gtkselection.[ch]: Add gtk_selection_owner_set_for_display(),
make internals multihead aware.
* gtk/gtksettings.[ch]: Add gtk_settings_get_for_screen(), get
rid of now-useless gtk_settings_constructor().
* gtk/gtkstyle.[ch]: Add gtk_style_get_font_for_display(), fix
check/radio button indicators bitmap handling to be multihead
safe.
* gtk/gtkwidget.[ch]: Add gtk_widget_get_screen(), gtk_widget_has_screen(),
gtk_widget_get_display(), gtk_widget_get_clipboard(),
gtk_widget_get_root_window().
* gtk/gtkbindings.c gtk/gtkbutton.c gtk/gtkclist.c gtk/gtkcombo.c
gtk/gtkctree.c gtk/gtkdnd.c gtk/gtkfilesel.c gtk/gtkgamma.c
gtk/gtkhandlebox.c gtk/gtkhsv.c gtk/gtkimcontext.c gtk/gtklabel.c
gtk/gtklist.c gtk/gtkmain.c gtk/gtkmenuitem.c gtk/gtkmenushell.c
gtk/gtknotebook.c gtk/gtkoldeditable.c gtk/gtkoptionmenu.c
gtk/gtkpaned.c gtk/gtkpreview.c gtk/gtksocket.c gtk/gtktext.c
gtk/gtktextbuffer.c gtk/gtktextview.c gtk/gtktipsquery.c
gtk/gtktooltips.c gtk/gtktreeview.c gtk/gtktreeviewcolumn.c:
misc mechanical multihead-safety fixes.
* gtk/gtkclipboard.c: Use a GtkImage rather than a pixmap for
the dropper, look up the color palette only at realization time,
other multihead fixes.
* gtk/gtkcombo.c (gtk_combo_unrealize): Popdown the list when
unrealizing.
* gtk/gtkentry.c: Only claim ownership of the primary selection
when realized, misc multihead fixes.
* gtk/gtkfontsel.c: Only fill in fonts when attached to a screen,
fix gtk_font_selection_get_font() for multihead.
* gtk/gtkgc.c: make the depth => drawable hash per-screen.
* gtk/gtkinvisible.c: Add a constructor that realizes the
widget, so we get a realized widget with g_object_new() as
well gtk_invisible_new() as before.
* gtk/gtkmain.c: Get rid of unused gtk_visual/gtk_colormap
variables.
* gtk/gtktextdisplay.c: Add warnings if stipple bitmaps
are used on the wrong screen.
* gtk/gtktoolbar.c: Make handling of GtkSettings-based layout
read properties and connect to settings when the screen is changed,
rather than on init/finalize.
* gtk/gtkwindow.c: Fix icon handing to be multihead safe ...
default icon pixmaps/mask are only shared between windows on the
same screen. Misc multihead fixes.
Sat Apr 27 13:49:53 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkclipboard.c (gtk_clipboard_get_for_display):
Update docs to reference GDK_SELECTION_CLIPBOARD rather GDK_NONE.
2002-04-29 Alex Larsson <alexl@redhat.com>
* gdk/linux-fb/gdkproperty-fb.c (gdk_property_get):
Fix silly bug, noticed by Sven Neumann.
Sun Apr 28 22:43:55 2002 Jonathan Blandford <jrb@gnome.org>
* gtk/gtktreemodelsort.c (gtk_tree_model_sort_set_sort_func): Fix
so that you can set a new sort func.
Sun Mar 3 14:26:33 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkstyle.[ch] (_gtk_get_insertion_cursor_gc):
Centralize lookup and caching of cursor GC's here.
* gtk/gtkentry.[ch] gtk/gtktextview.[ch] gtk/gtktextdisplay.c
gtk/gtklabel.c: Move to using _gtk_get_insertion_cursor_gc().
* gtk/gtkentry.c (gtk_entry_expose): Draw cursors
under the text, not over the text.
* gtk/gtkwidget.c (gtk_widget_class_init): add
a secondary-cursor-color property.
* gtk/gtkwidget.c (gtk_widget_class_init): Decrease
the default aspect ratio to 1/25 (0.04).
* tests/testgtkrc (bell_duration): Comment out
cursor color setting.
2002-02-24 Havoc Pennington <hp@pobox.com>
* gtk/gtkstyle.c (_gtk_draw_insertion_cursor): change to pass in
the cursor direction always, not just when we need an arrow, so we
can flip the cursor around its axis for RTL. Resolves#72372
* gtk/gtkentry.c (gtk_entry_draw_cursor): update for
draw_insertion_cursor change
* gtk/gtklabel.c (gtk_label_draw_cursor): ditto
* gtk/gtktextdisplay.c (gtk_text_layout_draw): ditto
Sun Feb 24 14:15:45 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtktextview.c (widget_to_buffer): Take border
width into account.
* gtk/gtklabel.c (get_label_wrap_width): Don't use GdkFont
to compute wrap width ... GdkFont will pull in X11 core
fonts.
Wed Feb 20 14:26:47 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkkeyhash.[ch]: Implement "fuzzy" key binding lookups;
allow matches on key and level but not group. Also, implement
ignoring "consumed modifiers correctly."
* gtk/gtkaccelgroup.c gtk/gtkbindings.c: Convert to using
GtkKeyHash.
* gtk/gtkdebug.h gtk/gtkmain.c: Support GTK_DEBUG=keybindings
* gdk/x11/gdkevents-x11.c (gdk_event_translate): Fill in
the group for key release events as well as key press events.
* gdk/gdkkeys.h gdk/x11/gdkkeys-x11.c (gdk_keymap_translate_keyboard_state):
Rename unused_modifiers to consumed_modifiers, make the docs and
non-Xkb implementation match the Xkb implementation.
* gdk/linux-fb/gdkkeyboard-fb.c gdk/win32/gdkkeys-win32.c: Propagate
doc and parameter name changes.
* gdk/x11/gdkkeys-x11.c (gdk_keymap_translate_keyboard_state):
XkbTranslateKeyCode doesn't handle LockMask, we need to handle
it ourselves.
* gdk/x11/gdkkeys-x11.c (gdk_keymap_translate_keyboard_state): Force
<Shift>Tab to give GDK_ISO_Left_Tab, since we need consistency
to allow dealing with ISO_Left_Tab.
* gtk/gtkwindow.c gtk/gtktextview.c gtk/gtkscrolledwindow.c
gtk/gtkpaned.c gtk/gtkcombo.c gtk/gtknotebook.c:
Remove inappropriate uses of GDK_ISO_Left_Tab. (GDK_ISO_Left_Tab
or <Shift>Tab both are equivalent as a binding specifier.)
* gtk/gtkbutton.c (gtk_button_class_init): Make ::activate
GTK_RUN_ACTION, so you can bind an accelerator to it.
* gtk/gtklabel.c (gtk_label_set_uline_text_internal): Call
gdk_unicode_to_keyval on the mnemonic character.
* tests/testgtk.c: Add a test for the new fuzzy key binding matching.
Thu Feb 14 16:46:48 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkentry.c gtk/gtktextdisplay.c gtk/gtklabel.c
gtk/gtkstyle.[ch] gtk/gtkwidget.c: Patch from Bill
Haneman and Padraig O'Briain to add cursor_aspect_ratio
style property to GtkWidget to allow theming the aspect
ratio of the cursor.
* gtk/gtkentry.c gtk/gtktextview.c gtk/gtklabel.c
gtk/gtkwidget.c tests/testgtkrc: Move cursor-color style property
to GtkWidget.
Wed Dec 12 15:01:33 2001 Jonathan Blandford <jrb@redhat.com>
* gtk/gtknotebook.c (gtk_notebook_set_tab_label): keep in sync
with insert_page_menu. Code duplication is bad.
* gtk/gtklabel.c (gtk_label_mnemonic_activate): Whoops -- got the
wrong fix yesterday.
Tue Dec 11 18:55:16 2001 Jonathan Blandford <jrb@redhat.com>
* gtk/gtklabel.c (gtk_label_mnemonic_activate): Small fix to let
mnemonics work with notebooks.
Mon Nov 19 14:08:18 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtklabel.c (gtk_label_init): Change default for
justify to GTK_JUSTIFY_LEFT. Assuming that multiline
labels are most often wrapped labels, this gives better
compatibility with GTK+-1.2, where justification was
ignored for wrapped labesl and is a more sensible
default in any case. (#64489)
* gtk/gtklabel.c (gtk_label_class_init): Fix default
for wrap property to FALSE.
Sat Nov 17 18:26:45 2001 Owen Taylor <otaylor@redhat.com>
* gtk/Makefile.am gtk/gtkmarshal.list gtk/gtkmarshalers.list
gtk/*.c gtk/gtksignal.h: Make gtkmarshal.list/gtkmarshal.h
only for compatibility with GTK+-1.2; and deprecate it;
put all marshalers we actually use into gtkmarshalers.list
and use the _gtk_marshal_ prefix for these marshalers.
Wed Oct 31 18:23:47 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkoptionmenu.c (gtk_option_menu_detacher):
Add a "menu" property and notify on it. (#62798,
Padraig O'Briain)
* gtk/gtkselection.[ch] gtk/{gtkentry.c, gtkfilesel.c,
gtkoldeditable.c, gtktextbuffer.c, gtktextview.c}:
Fix set_text to take a gchar, not a guchar, and to have
a len argument.
2001-10-27 Hans Breuer <hans@breuer.org>
* gtk/gtkbbox.c gtk/gtkctree.c gtk/gtkhbbox.c
gtk/gtkimmulticontext.c gtk/gtklabel.c gtk/gtkliststore.c
gtk/gtkmenu.c gtk/gtkpaned.c gtk/gtkrc.c gtk/gtkscale.c
gtk/gtkstyle.c gtk/gtktextbuffer.c gtk/gtktextlayout.c
gtk/gtktexttag.c gtk/gtktexttagtable.c gtk/gtktextview.c
gtk/gtktreestore.c gtk/gtkvbbox.c :
to simplify parsing for exported functions:
- made implementation signature static, when the local
prototype already was
- put the functions return value on it's own line
- added as space between the function name and the
opening bracket
* gtk/gtk.def : added the remaining exported functions
2001-10-24 Anders Carlsson <andersca@gnu.org>
* gtk/gtkentry.c: (append_action_signal): Use an image menu item here
(popup_targets_received): Call append_action_signal with stock items
* gtk/gtklabel.c: (append_action_signal): Use an image menu item here
(gtk_label_do_popup): Call append_action_signal with stock items
* gtk/gtktextview.c: (append_action_signal): Use an image menu item here
(popup_targets_received): Call append_action_signal with stock items
Mon Oct 22 11:47:47 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtklabel.c: Add cursor-position, selection-bound
properties. (#62148, reported by Padraig O'Briain)
* gtk/gtkentry.c (gtk_entry_class_init): Rename text_position
to cursor_position. (1.3.x addition, text_position is an awful
name.) Make cursor_position read-only to avoid sticky questions
of interaction with selection_bound. (#62636, reported by
Padraig O'Briain)
* configure.in: Version 1.3.9, interface age 0, binary age 0.
* configure.in: Require GLib-1.39, Pango 0.20, Atk 0.5.
* NEWS: Updates.
Mon Sep 24 11:59:09 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkstyle.[ch] (_gtk_draw_insertion_cursor): Shared
function for drawing cursors between gtkentry/gtklabel/gtktextview.
Should this be public? It has a bit of an odd interface, but
custom editing widgets probably should be using it.
Function will draw with wider width for taller cursors, and
draws a little indicator arrow to indicate directoin for split
cursors.
* gtk/gtktextview.c: Add a "cursor_color" property.
* gtk/gtktextdisplay.[ch]: Add a cursor_gc parameter to
gtk_text_layout_draw().
* gtk/gtkentry.c gtk/gtklabel.c gtk/gtktextdisplay.c: Use
_gtk_draw_insertion_cursor().
Tue Sep 25 11:22:23 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkcellrenderertext.c gtk/gtktexttag.c: Restore
the behavior where you could turn family_set (etc) back on
and get back the values you had before.
* demos/gtk-demo/stock_browser.c (id_to_macro): Use
g_string_ascii_up() rather than looping through the
string ourself.
2001-09-18 Alex Larsson <alexl@redhat.com>
* gtk/gtkcheckbutton.c:
* gtk/gtkradiobutton.c:
Don't draw with GTK_STATE_ACTIVE.
* gtk/gtkclist.c:
* gtk/gtkctree.c:
Draw lines between rows with base_gc[GTK_STATE_NORMAL].
* gtk/gtktextdisplay.c:
Focused selection is drawn with base_gc [GTK_STATE_SELECTED] and
unfocused with base_gc [GTK_STATE_ACTIVE].
* gtk/gtkentry.c:
Add select all menu-item.
Default cursor color is red.
Focused selection is drawn with base_gc [GTK_STATE_SELECTED] and
unfocused with base_gc [GTK_STATE_ACTIVE].
* gtk/gtklabel.[ch]:
Add keynav + menu to selectable lables.
Focused selection is drawn with base_gc [GTK_STATE_SELECTED] and
unfocused with base_gc [GTK_STATE_ACTIVE].
* gtk/gtkfilesel.c:
Add drag and drop support.
* gtk/gtkstyle.c:
(This was checked in earlier)
New default values for text/base SELECTED and ACTIVE
Wed Sep 12 11:21:14 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkcellrenderertext.[ch] gtk/gtktexttag.[ch]
gtk/gtktextview.c tests/testgtk.c: Fix up for changes to
PangoFontDescription.
* gtk/gtkentry.c gtk/gtkclist.c gtk/gtkcellrenderertext.c
gtk/gtkspinbutton.c: Fix up for change to PangoMetrics
structure.
* gtk/gtkfontsel.c: Fix up for new Pango font listing API.
* gtk/gtkstyle.[ch]: Add gtk_style_get_font/set_font to replace
direct access to style->font. Deprecate gtk_style_ref/unref.
* gtk/gtkclist.c gtk/gtkctree.c gtk/gtkstyle.c gtk/gtkwidget.c:
Remove gtk_style_ref/unref with g_object_ref/unref.
* gtk/gtkcalendar.c: Remove leftover macros accessing
style->font.
* gtk/gtkhruler.c (gtk_hruler_draw_ticks): Remove unused
variable.
* gtk/gtktext.c gtk/gtklabel.c: Use gtk_style_get_font() instead of
style->font.
2001-08-26 Alexander Larsson <alla@lysator.liu.se>
* gtk/gtkbutton.[ch]:
Add properties for labels, mnemonics and stock items.
Added C accessor functions for the properties.
Removed deprecated button->child.
* gtk/gtkradiobutton.c:
* gtk/gtktogglebutton.c:
Update to use the functions in GtkButton.
* gtk/gtkcheckbutton.c:
Update to use the functions in GtkButton.
Changed size allocation of child. Now only gets as much
space as it requests.
* gtk/gtkclist.c:
Don't use GtkButton->child
* gtk/gtklabel.c:
Fixed typo in docs
Wed Jul 18 19:28:46 2001 Owen Taylor <otaylor@redhat.com>
* gtk/*.c: Patch from Matthias Clasen to remove remove
all instances of g_return_if_fail (foo != NULL); that are
immediately before a g_return_if_fail (GTK_IS_FOO (foo));
since the second check catches the NULL anyways.
Wed Jul 4 22:35:40 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtklabel.c gtk/gtkmenubar.c gtk/gtktreeviewcolumn.c
gtk/gtkwidget.c:
Check GTK_WIDGET_TOPLEVEL(gtk_widget_get_toplevel (widget)),
not GTK_WIDGET_GET_ANCESTOR ... see
http://mail.gnome.org/archives/gtk-devel-list/2001-July/msg00072.html.
Indicate the best practice in the docs for gtk_widget_get_toplevel().
* gtk/gtkwidget.[ch]: Expose a private _gtk_widget_hierarchy_changed(),
so GtkPlug can give the correct signals when transforming
from a child to a toplevel.
* gtk/gtkdnd.c (gtk_drag_dest_hierarchy_changed): Handle
reparentation correctly.
* gtk/gtkwidget.c (gtk_widget_propagate_hierarchy_changed):
Propagate the previous_toplevel argument down properly.
* gtk/gtklabel.c (gtk_label_finalize): Fix unrefing
of wrong atr list.
* gtk/gtkplug.[ch]: Add an "embedded" signal.
* gtk/gtksocket.[ch]: Add "child_added", "child_removed"
signals.
* gtk/gtkplug.[ch] gtk/gtksocket.[ch]: Add
functions gtk_plug_get_id(), gtk_socket_get_id(),
to avoid the user having to worry about realization,
and gdkx.h.
* tests/testsocket.c: Extend to try out the new signals
and gtk_plug/socket_get_id().
* gtk/gtklabel.c (gtk_label_set_pattern_internal): Fix
setting of underline attributes.
* gdk/x11/gdkevents-x11.c (gdk_event_translate): Ignore
DestroyNotify events from SubstructureNotifyMask
* gdk/x11/gdkwindow-x11.c (gdk_window_reparent):
Switch GDK_WINDOW_TYPE (window) as needed.
* gdk/x11/gdkwindow-x11.c (gdk_window_new): Clean up,
allow creation of toplevel windows as children of
foreign windows.
* gtk/gtkplug.c: Remove hacks involving changing private
fields of GdkWindow.
* gtk/gtkplug.[ch] gtk/gtksocket.c: Work to make
exactly the same signals and notification
be emitted for local embedding as for inter-process
embedding.
Sat Jun 30 20:44:48 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtktypeutils.c (gtk_type_class): Remove
change check for GTK_TYPE_OBJECT derivation to
G_TYPE_OBJECTS - it's Tim-approved to use this
for arbitary objects.
* gtk/gtkwindow.c gtk/gtkcontainer.[ch]: underscore
prefix gtk_container_dequeue_resize_handler().
* gtk/gtkwidget.[ch]: Add a previous_toplevel argument
to the hierarachy_changed signal, since you otherwise
have to always keep that around.
* gtk/gtkmenubar.c gtk/gtklabel.c gtk/gtksocket.c: Adapt
for extra argument to hierarchy_changed.
Sun Jun 24 11:29:35 2001 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkimage-x11.c (gdk_image_new): Fix stupid error
introduced last night that was making things decidedly not work.
* gtk/*.[ch]: Patch from Kristian Rietveld adding 80 getters
so that we have getter/setter pairing everywhere it makes
sense. (#55767)
* gtk/gtkradiobutton.[ch] gtk/gtktoolbar.c tests/testgtk.:
Rename gtk_radio_button_group to gtk_radio_button_get_group, add a
deprecated compat macro. (#55516)
* gtk/gtklabel.[ch]: Add functions
gtk_label_set/get_use_underline(), gtk_label_set/get_use_markup(),
gtk_label_set_label(), which mirror the property API for GtkLabel.
Make gtk_label_get_attributes() only reflect the attributes
set by gtk_label_set_attributes.
* gtk/gtknotebook.c (gtk_notebook_set_current_page) gtk/gtkcompat.h: Rename
from gtk_notebook_set_page().
2001-06-08 Havoc Pennington <hp@redhat.com>
* gtk/gtkentry.c (gtk_entry_class_init): add read-only
"scroll_offset" property for notification when the layout offsets
may have changed
(gtk_entry_adjust_scroll): add notify for scroll_offset
(gtk_entry_layout_index_to_text_index): function to compensate for
preedit string when doing coordinate stuff on the entry's layout
(gtk_entry_text_index_to_layout_index): inverse function
(gtk_entry_get_layout_offsets): hook to get current position of
the layout
(gtk_entry_get_layout): hook to get the layout itself.
* gtk/gtklabel.c (gtk_label_get_layout): new function
2001-06-05 Havoc Pennington <hp@redhat.com>
* gtk/gtkcolorsel.c: Use new mnemonic convenience functions
Applying patch from Jeff Franks, with function docs added.
* gtk/gtkcheckbutton.c (gtk_check_button_new_with_mnemonic):
remove call to set_mnemonic_widget, change docs a bit.
* gtk/gtkimagemenuitem.c (gtk_image_menu_item_new_with_mnemonic):
new function
* gtk/gtkcheckmenuitem.c (gtk_check_menu_item_new_with_mnemonic):
new function
* gtk/gtkmenuitem.c (gtk_menu_item_new_with_mnemonic): new function
* gtk/gtkradiobutton.c (gtk_radio_button_new_with_mnemonic): new
function
(gtk_radio_button_new_with_mnemonic_from_widget): new function
* gtk/gtkradiomenuitem.c (gtk_radio_menu_item_new_with_mnemonic):
new function
* gtk/gtktogglebutton.c (gtk_toggle_button_new_with_mnemonic): new
function
* gtk/gtklabel.c (gtk_label_new_with_mnemonic): Improve docs on
auto-selection of mnemonic widget.
2001-06-01 Havoc Pennington <hp@redhat.com>
* gtk/gtkentry.c (gtk_entry_commit_cb): implement overwrite mode
* gtk/gtktextview.c (gtk_text_view_commit_handler): don't
overwrite in overwrite mode if we already deleted the selection
and replaced it with new text.
* gtk/gtklabel.c (gtk_label_select_region_index): if you set the
selection to an empty range, clear the clipboard if we owned it.
(gtk_label_set_selectable): give up selection if we become
unselectable.
(gtk_label_state_changed): override state changed to unselect text
when insensitive
(get_text_callback): add paranoia check that indexes aren't
outside of label->text
(gtk_label_select_region): make -1 for start_offset mean "end of
label," for consistency with GtkEditable
* gtk/gtkmessagedialog.c (gtk_message_dialog_new): honor
GTK_DIALOG_NO_SEPARATOR flag
2001-05-17 Alexander Larsson <alla@lysator.liu.se>
* gtk/gtkbbox.c:
Add properties, based on patch by Lee Mallabone.
* gtk/gtknotebook.c:
* gtk/gtktoolbar.c:
Convert from GtkArg to GParam, based on patch by John Margaglione.
* gtk/gtkhscale.c:
* gtk/gtkvscale.c:
* gtk/gtkhscrollbar.c:
* gtk/gtkvscrollbar.c:
* gtk/gtkrange.c:
Move adjustment property to GtkRange.
* gtk/gtklabel.c:
Setup mnemonics on property changes
* gtk/gtkwidget.c (gtk_widget_get_property):
GdkExtensionMode is an enum, not a flag. Set it with
g_value_set_enum ().
* tests/prop-editor.c:
Better propery editor.
* tests/testgtk.c:
Add new property test. Pass zero to the property editor to
get properties from all derived types.
Fri May 11 02:53:57 2001 Tim Janik <timj@gtk.org>
* gtk/gtktogglebutton.c (gtk_toggle_button_expose): don't
propagate exposes to NULL child.
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_adjustment_changed): guard
against not having one of the scrollbars.
* gtk/gtklabel.c (gtk_label_setup_mnemonic): clean up after us,
we don't keep a mnemonic window if we have no mnemonic installed.
Mon Apr 30 19:18:07 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkstyle.[ch] gtk/gtkaccellabel.c gtk/gtkcellrenderertext.c
gtk/gtkhruler.c gtk/gtkhscale.c gtk/gtklabel.c gtk/gtkprogressbar.c
gtk/gtkvruler.c gtk/gtkvscale.c: Add an extra parameter
use_text to gtk_paint_label() to deal with style->bg[] vs style->text[].
* gtk/gtkbbox.c gtk/gtkdialog.c: Tweak padding some to deal
with GtkWidget::interior_focus = TRUE better.
* gtk/gtkbutton.c
* gtk/gtkwidget.c (gtk_widget_style_get_valist): Remove
G_VALUE_NO_COPY_CONTENTS, to correspond with the recent
change that had to be made with g_object_get.
Sun Apr 1 08:00:13 2001 Tim Janik <timj@gtk.org>
* gtk/gtkwidget.[hc]: got rid of gtk_widget_popup(), a function that
bad needs to be nuked, not just deprecated.
* gtk/gtktooltips.c (gtk_tooltips_draw_tips): don't use
gtk_widget_popup().
* gtk/*.[hc]: s/activate_mnemonic/mnemonic_activate/g;
* gtk/gtkmenufactory.[hc]: removed this long-standingly deprecated
widget.
* docs/Changes-2.0.txt: updates.
Wed Mar 28 20:30:26 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwidget.[ch] (_gtk_widget_get_aux_info): Add private function
to get the aux info structure fo the widget.
* gtk/gtklabel.c gtk/gtkscrolledwindow.c gtk/gtkwindow.c: Use
above function.
[ Patch from Havoc Pennington <hp@redhat.com> ]
* gdk/x11/gdkwindow-x11.c (gdk_window_get_frame_extents): function
to get the size of the window manager frame, basically the same
code that gdk_window_get_root_origin() had
(gdk_window_get_root_origin): use gdk_window_get_frame_extents()
* gtk/gtkwindow.c (gtk_window_set_default_size): use
gdk_window_resize() if the window is realized and resizeable
* gdk/x11/gdkwindow-x11.c (gdk_window_set_geometry_hints): fix
typo so that setting gravity works
* gtk/gtkwindow.c (gtk_window_move_resize): don't ever use
allocation if auto_shrink is on, even if the default size
has not changed.
* gtk/gtkwidget.c (gtk_widget_render_icon): remove bogus
g_return_if_fail
Thu Mar 22 13:01:44 2001 Tim Janik <timj@gtk.org>
* gtk/gtklabel.[hc]: some cleanups, fixed mnemonic_widget handling,
added PROP_MNEMONIC_WIDGET.
* gtk/gtkwindow.c (gtk_window_activate_mnemonic):
(gtk_window_remove_mnemonic):
(gtk_window_add_mnemonic): fixed assertions.
(gtk_window_activate_mnemonic): constrain modifier checks to those
permitted by gtk_accelerator_get_default_mod_mask().
got rid of gtk_window_get_default_accel_group().
* gtk/gtkwidget.c (gtk_widget_real_activate_mnemonic): handle non
activatable widgets either by focussing or a warning.
added a signal accumulator to ::activate_mnemonic which stops the
emission once a handler returned TRUE.
2001-03-22 Havoc Pennington <hp@pobox.com>
* gtk/gtktoolbar.c (gtk_toolbar_insert_stock): handle mnemonics in
the stock item label
* gtk/gtklabel.c: s/@gtk_func/gtk_func()/ in docs
* gtk/gtkstock.c (builtin_items): add mnemonics where missing
* demos/gtk-demo/*.c: Add mnemonics all over the place
* gtk/gtklabel.h: mark parse_uline deprecated
2001-03-21 Alexander Larsson <alexl@redhat.com>
* gtk/gtkbutton.[ch]:
* gtk/gtkdialog.c:
Renamed gtk_button_new_stock() to gtk_button_new_from_stock() and
removed accel_group argument. Renamed gtk_button_new_accel() to
gtk_button_new_with_mnemonic() and removed accel_group argument.
* gtk/gtkcheckbutton.[ch]:
New function gtk_check_button_new_with_mnemonic().
* gtk/gtkentry.c:
Override activate_mnemonic and just grab focus.
* gtk/gtkitemfactory.c:
Don't add menu uline accel group, instead use mnemonics support.
* gtk/gtklabel.[ch]:
New support for mnemonics.
* gtk/gtkmarshal.list:
Needed BOOLEAN:BOOLEAN for activate_mnemonic.
* gtk/gtkmenu.[c]:
* gtkmenushell.c:
Use mnemonics instead of accel groups for uline
support in menu items.
Removed gtk_menu_get_uline_accel_group() and
gtk_menu_ensure_uline_accel_group().
* gtk/gtkmenuitem.c:
Override activate_mnemonic to handle switching between
menu items if there are collisions.
* gtk/gtknotebook.c:
Connect to activate_mnemonic on the tab_label, so that
activating it switches to that notebook page.
* gtk/gtkwidget.[ch]:
Add activate_mnemonic signal. New function
gtk_widget_activate_mnemonic() to emit it.
Default implementation does activate/grab_focus.
* gtk/gtkwindow.[ch]:
Add support for mnemonics in windows.
New functions:
gtk_window_add_mnemonic, gtk_window_remove_mnemonic,
gtk_window_activate_mnemonic, gtk_window_set_mnemonic_modifier
* gtk/testgtk.c:
Update to function name changes.
2001-03-07 Havoc Pennington <hp@redhat.com>
* gtk/gtkwindow.c (gtk_window_set_decorated): new function, turns
off decorations for a window.
* demos/gtk-demo/button_box.c (create_bbox): adapt to button box
changes
* gtk/gtklabel.c (gtk_label_get_layout_offsets): new function
to get location of PangoLayout inside the label, closes#51198
* gtk/testgtk.c (create_bbox): fix up button box usage
* gtk/testcalendar.c (create_calendar): fix up button box usage
* gtk/gtkfilesel.c (gtk_file_selection_init): fixup buttonbox usage
* gtk/gtkdialog.c (gtk_dialog_init): fixup buttonbox usage
* gtk/gtkhbbox.h: deprecations
* gtk/gtkvbbox.h: deprecations
* gtk/gtkbox.c (gtk_box_get_spacing): new function, used to
emulate deprecated gtk_button_box_get_spacing
* gtk/gtkbbox.h: deprecate some useless functions, remove entirely
the "set global default" functions
(struct _GtkButtonBox): remove "spacing" field, use the one from
GtkBox base class
* gtk/gtkbbox.c (_gtk_button_box_child_requisition): rename with uscore
* gtk/gtkiconfactory.c (gtk_icon_set_render_icon): If we fail to
render the icon, return the missing image icon.
* gtk/gtkimage.c (gtk_image_set_from_file): fall back to missing
image icon if the load fails.
* gtk/gtkstock.h (GTK_STOCK_MISSING_IMAGE): Add stock icon for use
when no image is found; should be the Netscape "missing image"
icon eventually but for now is a random image
* gtk/gtkwindow.c (gtk_window_set_role): new function, sets the
role for the session manager
* gtk/testgtk.c (dnd_drop): remove use of GTK_WINDOW_DIALOG
* gtk/gtkcompat.h (GTK_WINDOW_DIALOG): compat #define
GTK_WINDOW_DIALOG GTK_WINDOW_TOPLEVEL
* gtk/gtkenums.h (enum GtkWindowType): remove GTK_WINDOW_DIALOG
2001-03-05 Michael Natterer <mitch@gimp.org>
* gtk/gtklabel.c: Made the "parent_class" pointer static. The
pixbuf-engine coincidentially also failed to make one of it's
parent_class pointers static, causing overwriting of GtkLabel's
parent_class pointer in pixbuf_style_class_init().
(Will commit the fix to the pixbuf-engine too).