70282691c49ef958886c369eb65f8fc51c520de1
diff --git a/ChangeLog.gtk-extended-layout b/ChangeLog.gtk-extended-layout
new file mode 100644
index 0000000..11db457
--- /dev/null
+++ b/ChangeLog.gtk-extended-layout
@@ -0,0 +1,438 @@
+2007-08-28  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* gtk/gtktable.c: Make sure natural_delta is initialized.
+
+2007-08-28  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* tests/testextendedlayout.c: Test size-for-allocation for GtkTable.
+	* gtk/gtk.symbols, gtk/gtktable.c, gtk/gtktable.h: Add orientation
+	property needed for choosing a size-for-allocation strategy.
+
+2007-08-28  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* gtk/gtkhbox.c: Consider width-for-height information.
+	* gtk/gtkvbox.c, gtk/gtkprivate.h: Move GtkChildSizeRequest
+	to gtkprivate.h.
+
+2007-08-20  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* gtk/gtkvbox.c: Properly calculate minimum_height in size-allocate.
+	So I yell it into the night: Height-for-width is shiny and bright!
+
+2007-08-20  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* gtk/gtklabel.c: Announce size-for-allocation features only when
+	ellipsis or wrapping with full size allocation are active.
+	* tests/testextendedlayout.c: Display size-for-allocation information
+	in statusbar.
+
+2007-08-20  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* tests/testextendedlayout.c: Improve contrast for currently
+	selected widget, show pointer address of widget in status bar.
+	Provider names in size-for-allocation test.
+
+2007-08-20  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* tests/testextendedlayout.c: Start real testing of height-for-width
+	and width-for-height.
+	* gtk/gtklabel.c, gtk/gtklabel.h, gtk/gtk.symbols: Add "full-size"
+	property to be able to provide a meaningfull implementation of
+	height-for-width and width-for-height.
+	* gtk/gtkvbox.c: Consider height-for-width information.
+
+2007-08-13  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* tests/testextendedlayout.c: Provide context menu to directly select
+	testable widgets. Defer self invokation for socket testing until
+	sockets are realized: Plugs cannot receive the "embedded" signal
+	before their socket is realized.
+
+2007-08-13  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* tests/testellipsise.c: Pimped the test for better demonstration.
+	* gtk/gtklabel.c: Correctly calulate layout width for rotated
+	text when ellipses are used.
+
+2007-08-12  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* gtk/gtkbin.c: Filter feature set returned by the child to match
+	the subset supported by bins. Ensure natural size matches at least
+	the requested size.
+	* gtk/gtkextendedlayout.c: Ensure natural size matches at least
+	the requested size by considering explicit size requests.
+	* gtk/gtkhbox.c, gtk/gtkvbox.c, gtk/gtktable.c, gtk/gtktable.h:
+	Delegate natural size calculation to the (modified) size_request
+	method for more accurate resutls. This trick was developed already
+	for GtkLabel, but not recognized before working on GtkScrolledWindow.
+	* gtk/gtktreeview.c: Skip invisible columns for natural size.
+	* tests/autotestextendedlayout.c: Test natural size properties
+	for all classes implementing GtkExtendLayout.
+
+2007-08-06  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* gtk/gtklabel.c: Practice consistent pixel rounding to avoid GtkLabel
+	showing ellipses when PANGO_PIXELS and PANGO_PIXELS_FLOOR differ by
+	less then 0.5 pixels.
+
+2007-08-06  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* gtk/gtktreeviewcolumn.c:
+	Rename gtk_tree_view_column_cell_get_size_impl
+	to gtk_tree_view_column_cell_get_real_size to
+	fit naming conventions.
+	* gtk/gtkscrolledwindow.c:
+	Provide and consider natural size information.
+	* tests/testextendedlayout.c:
+	Show natural size of the hovered widget in statusbar.
+
+2007-08-06  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* gtk/gtktreeprivate.h, gtk/gtktreeviewcolumn.h:
+	Introduce GtkTreeViewColumnPrivate.
+	* gtk/gtktreeview.c, gtk/gtktreeviewcolumn.c:
+	Provide and consider natural size information.
+
+2007-08-06  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* tests/testextendedlayout.c: Use tree-view instead of notebook
+	tabs for test case navigation. Support running a sub-set of tests.
+	Display plug-id of sockets as tooltip.
+
+2007-08-06  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* tests/testextendedlayout.c: Improve layout of natural size for
+	various widgets test and add a test for GtkTreeViews within
+	GtkScrolledWindows to it.
+
+2007-08-06  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* gtk/gtksocket.c: Repair sizing algorithm - gtk_socket_size_request
+	and gtk_socket_extended_layout_get_natural_size were calling each
+	other's windowing backend function. Was I drunk when commiting the
+	previous revision?
+
+2007-08-01  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* gtk/gtkcellrenderertext.c: Provide natural size information.
+	* gtk/gtkcellview.c: Consider and provide natural size information.
+	* tests/testextendedlayout.c: Change background of testing cell view.
+
+2007-08-01  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* gtk/gtkcellview.c: Seems there is no point in distinguishing between
+	GTK_PACK_START and GTK_PACK_END during size allocation. The loops only
+	differ in the packing check.
+
+2007-08-01  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* gtk/gtkcellview.c: Fix up the mess I commited before.
+	Rule of the thumb: Never write code when tired or in hurry.
+
+2007-07-29  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* gtk/gtkcellview.c: Avoid rounding errors in size
+	allocation by adopting the algorithm used by GtkHBox.
+
+2007-07-28  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* tests/testextendedlayout.c: Preparing natural
+	size tests for GtkCellView and GtkTreeView.
+
+2007-07-27  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* tests/testextendedlayout.c: Add paned widgets to
+	the natural size test for GtkAlignment and GtkSocket.
+	* gtk/gtksocket-x11.c: Fix some cast.
+
+2007-07-27  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* gtk/gtkalignment.c, gtk/gtksocket.c, gtk/gtksocket-x11.c,
+	gtk/gtksocketprivate.h: Consider natural size of the child.
+	* gtk/gtkplug.c, gtk/gtkplug-x11.c, gtk/gtkplugprivate.h:
+	Expose natural size via _GTK_NATURAL_SIZE window property.
+	* tests/testextendedlayout.c: Test natural size handling
+	of GtkAlignment, GtkPlug and GtkSocket.
+
+2007-07-26  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* gtk/gtktable.c: Seems natural size for spanning cells worked already.
+	* tests/testextendedlayout.c: Test spanning cells. Do not expand
+	succeeded root nodes.
+
+2007-07-24  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* gtk/gtkhbox.c, gtk/gtktable.c, gtk/gtkvbox.c: Also apply natural
+	size, when there are no expandable children. Fix natural size
+	calculation for GtkVBox.
+	* tests/testextendedlayout.c: More extensive natural size testing.
+	Make sure that really all guide groups are tested. Add detail
+	to test case label in results page.
+
+2007-07-24  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* gtk/gtktable.c, gtk/gtktable.h: Consider natural size to allocate
+	widgets spanning a single, rename GtkTableRowCol::natural_size.
+	Remove some lost g_print statements.
+	* tests/testextendedlayout.c: Test natural size allocation in
+	GtkTable for simple cases.
+
+2007-07-23  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* gtk/gtktable.c, gtk/gtktable.h: Provide natural size information.
+	* tests/autotestextendedlayout.c: Implemented some initial natural
+	size tests for GtkTable.
+
+2007-07-18  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* gtk/gtkextendedlayout.h, gtk/gtkhbox.c, gtk/gtkvbox.c:
+	Make the type check part of the extended layout feature check macros.
+
+2007-07-16  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* tests/testellipsise.c: Extend the test to support rotations.
+	* gtk/gtklabel.c: Support ellipsizing and wrapping on labels
+	rotated by multiples of 90°.
+
+2007-07-16  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* gtk/gtkvbox.c, tests/testextendedlayout.c:
+	Implement and test natural size support for GtkVBox.
+	* gtk/gtkhbox.c: Cleanup issues found when implementing
+	natural size for GtkVBox.
+
+2007-07-15  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* tests/testextendedlayout.c: Improve test result grouping.
+
+2007-07-04  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* gtk/gtkbin.c: Propagate baseline offset to the child widget.
+	* gtk/gtkhbox.c: Properly apply baseline alignment by using the
+	baseline found during requisition calculation for size allocation.
+	* tests/testextendedlayout.c: Add yscale variantes of GtkAlignment
+	to the baseline tests. Improve widget names. Split status message
+	into two lines.
+
+2007-07-03  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* tests/testextendedlayout.c: Allow choosing initially active
+	notebook page from command line and create more sane widget names
+	for the sake of g_print-debugging.
+
+2007-07-02  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* gtk/gtkbin.c: Properly evaluate natural size.
+	* gtk/gtkhbox.c: Consider natural size for child placement.
+	* gtk/gtklabel.c: Drop any PangoLayout width assigned during the
+	size allocation process to get proper natural size readings.
+	* tests/testextendedlayout.c: Add some GtkHPaned to the natural
+	size test for dynamic evaluation of the algorithm. Create guides for
+	the button of the height-for-width test for debugging, as it is
+	affected by natural sizing of GtkHBox.
+
+2007-07-01  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* gtk/gtk.symbols, gtk/gtkextendedlayout.c, gtk/gtkextendedlayout.h:
+	Add gtk_extended_layout_set_baseline_offset to allow widget to adjust
+	their baselines to the findings of their parent container.
+	* gtk/gtkhbox.c: Use gtk_extended_layout_set_baseline_offset to obey
+	the uniform height constraint of the horizontal box. Do not cache
+	baselines found during requisition evaluation, as baselines can
+	change, when assigning a widget more space than requested.
+	* gtk/gtklabel.c: Implement gtk_extended_layout_set_baseline_offset.
+
+2007-07-01  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* tests/testextendedlayout.c: Invalidate previously selected
+	widget when choosing another one, to avoid drawing artifacts.
+
+2007-07-01  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* tests/testextendedlayout.c: Improve drawing of baseline guides.
+
+2007-07-01  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* gtk/gtkhbox.c: Properly report feature set and consider
+	baseline_policy when evaluating the baseline of the box.
+	* gtk/gtklabel.c: Adjust the coding style of get_features
+	to match the style of GtkHBox.
+
+2007-07-01  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* gtk/gtkhbox.c: Make baseline alignment work, by ignoring the uniform
+	height constraint a GtkHBox implies. TODO: Obey that constraint.
+
+2007-07-01  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* gtk/gtkhbox.c: Rudimentary implementation of GtkExtendLayout.
+
+2007-06-30  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* tests/testextendedlayout.c: Provide button variant of the
+	GtkHBox baseline alignment test, as those buttons show some
+	shortcomings of my current baseline concept.
+
+2007-06-30  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* tests/testextendedlayout.c:
+	Provide status text, when no widget is selected.
+
+2007-06-29  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* gtk/gtkframe.c: Drop g_debug messages.
+
+2007-06-29  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* tests/testextendedlayout.c: Move buttons to top and
+	provide textual information about currently hovered widget.
+
+2007-06-29  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* tests/testextendedlayout.c: Move code to setup UI
+	from main to test_suite_new.
+
+2007-06-29  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* tests/testextendedlayout.c: Split Baseline Alignment tests into
+	separate tests and move the notebook tabs to the right.
+	* gtk/gtkhbox.c: Properly decode "debug-wanted" object
+	tag with GPOINTER_TO_INT.
+
+2007-06-29  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* gtk/gtkextendedlayout.h, gtk/gtkextendedlayout.c,
+	gtk/gtk.symbols: Add gtk_extended_layout_get_padding.
+	* gtk/gtkalignment.c, gtk/gtkbin.c, gtk/gtkbutton.c,
+	gtk/gtkframe.c: Implement gtk_extended_layout_get_padding.
+	* tests/autotestextendedlayout.c: Verify padding information
+	provided via gtk_extended_layout_get_padding.
+
+2007-06-28  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* gtk/gtkhbox.c: Merge separate, but nearly identical child allocation
+	code for start and end packing into one single loop. This should avoid
+	programming errors caused by extensive code duplication, as they happend
+	to me with the previous commit. Maybe some advanced compiler is able
+	to do the trivial loop unrolling.
+	* tests/testextendedlayout.c: Use exteriour guides instead of
+	separators to identify GtkHBox allocation and extend the baseline
+	alignment tests for GtkHBox.
+
+2007-06-28  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* gtk/gtkhbox.c, gtk/gtkhbox.h, gtk/gtk.symbols:
+	Initial, buggish implementation of baseline alignment in GtkHBox.
+	* tests/testextendedlayout.c: Add baseline alignment tests.
+
+2007-06-28  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* gtk/gtkenums.h: Introduce GtkBaselinePolicy.
+	* gtk/gtk.symbols: Add missing symbols.
+	* gtk/gtkextendedlayout.c, gtk/gtkextendedlayout.h:
+	  Introduce gtk_extended_layout_get_single_baseline.
+
+2007-06-28  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* gtk/gtkbin.c: Prevent undefined behaviour when
+	gtk_widget_translate_coordinates fails.
+
+2007-06-20  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* tests/testextendedlayout.c: Provide checkboxes
+	to choose guide types at runtime.
+
+2007-06-20  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* tests/testextendedlayout.c: Don't create
+	the tile pixmap with every expose event.
+
+2007-06-20  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* gtk/gtkextendedlayout.h, tests/testextendedlayout.c:
+	Dynamically highlight the currently hovered widget and its guides.
+
+2007-06-20  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* gtk/gtkbin.c, tests/autotestextendedlayout.c,
+	tests/testextendedlayout.c: Implement GtkExtendedLayout for GtkBin.
+
+2007-06-20  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* gtk/gtklabel.c, tests/autotestextendedlayout.c:
+	Implement get_natural_size for GtkLabel.
+
+2007-06-20  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* gtk/gtklabel.c, tests/autotestextendedlayout.c:
+	Implement get_height_for_width for GtkLabel.
+
+2007-06-20  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* tests/autotestextendedlayout.c: Correct some assumptions,
+	write baseline values to console.
+
+2007-06-20  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* gtk/gtklabel.c: Remove some late hacking crack.
+
+2007-06-20  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* gtk/gtklabel.c, tests/autotestextendedlayout.c,
+	tests/testextendedlayout.c, tests/Makefile.am:
+	Implementing get_baselines for GtkLabel and testing it.
+
+2007-06-19  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* gtk/Makefile.am, gtk/gtk.h, gtk/gtkextendedlayout.c,
+	gtk/gtkextendedlayout.h: Implement GtkExtendLayout interface.
+
+2007-06-18  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+       * gdk/*, gtk/*: Resynching with trunk to avoid future
+       merge conflicts with the giant GtkBuilder patch.
+
+2007-05-29  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* testextendedlayout.c: Implement formal testing.
+
+2007-05-29  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* testextendedlayout.c: Create initial height-for-width test.
+
+2007-05-29  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* testextendedlayout.c: Also retreive base line information
+	for GtkTextView widgets.
+
+2007-05-28  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* testextendedlayout.c: Ported guides drawing to legacy
+	GdkGC API, which looks worse but supports IncludeInferiors.
+
+2007-05-28  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* testextendedlayout.c: Provide some hint which label
+	a guide belongs to.
+
+2007-05-28  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* testextendedlayout.c: Some refactoring to get rid
+	of the global list of allocation guides.
+
+2007-05-27  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* tests/testextendedlayout.c, tests/Makefile.am:
+	Build-fixes for testextendedlayout.
+
+2007-04-21  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* tests/testextendedlayout.c: Initial implementation of
+	base line test.
+
+2007-04-20  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* tests/testextendedlayout.c, tests/Makefile.am,
+	ChangeLog.gtk-extended-layout: Creating testing framework,
+	starting with natural size testing.
+
diff --git a/docs/reference/ChangeLog.gtk-extended-layout b/docs/reference/ChangeLog.gtk-extended-layout
new file mode 100644
index 0000000..96c0329
--- /dev/null
+++ b/docs/reference/ChangeLog.gtk-extended-layout
@@ -0,0 +1,6 @@
+2007-06-19  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
+
+	* docs/reference/gtk/tmpl/gtkextendedlayout.sgml,
+	docs/reference/gtk/gtk-docs.sgml, docs/reference/gtk/gtk-sections.txt,
+	docs/reference/gtk/gtk.types: Implement GtkExtendLayout interface.
+
