Commit Graph

14108 Commits

Author SHA1 Message Date
Mathias Hasselmann
c5f605deeb Properly calculate minimum_height in size-allocate. So I yell it into the
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!

svn path=/branches/extended-layout/; revision=18660
2007-08-20 18:54:48 +00:00
Mathias Hasselmann
ccacd597ad Announce size-for-allocation features only when ellipsis or wrapping with
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.

svn path=/branches/extended-layout/; revision=18659
2007-08-20 18:50:04 +00:00
Mathias Hasselmann
f8f1c9a18e Improve contrast for currently selected widget, show pointer address of
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.

svn path=/branches/extended-layout/; revision=18658
2007-08-20 18:42:26 +00:00
Mathias Hasselmann
ae24ffef8b Start real testing of height-for-width and width-for-height. Add
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.

svn path=/branches/extended-layout/; revision=18657
2007-08-20 17:59:44 +00:00
Mathias Hasselmann
85df623e78 Provide context menu to directly select testable widgets. Defer self
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.

svn path=/branches/extended-layout/; revision=18608
2007-08-13 10:36:34 +00:00
Mathias Hasselmann
5ac6a1fd29 Pimped the test for better demonstration. Correctly calulate layout width
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.

svn path=/branches/extended-layout/; revision=18607
2007-08-12 23:16:36 +00:00
Mathias Hasselmann
919243c5fc Filter feature set returned by the child to match the subset supported by
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.

svn path=/branches/extended-layout/; revision=18606
2007-08-12 22:00:23 +00:00
Mathias Hasselmann
df2e3ed04c Practice consistent pixel rounding to avoid GtkLabel showing ellipses when
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.

svn path=/branches/extended-layout/; revision=18584
2007-08-06 14:30:48 +00:00
Mathias Hasselmann
1bebf4c606 Rename gtk_tree_view_column_cell_get_size_impl to
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.

svn path=/branches/extended-layout/; revision=18583
2007-08-06 14:03:16 +00:00
Mathias Hasselmann
8cc13ff943 Introduce GtkTreeViewColumnPrivate. Provide and consider natural size
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.

svn path=/branches/extended-layout/; revision=18579
2007-08-06 13:36:28 +00:00
Mathias Hasselmann
52db2766c3 Use tree-view instead of notebook tabs for test case navigation. Support
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.

svn path=/branches/extended-layout/; revision=18578
2007-08-06 13:36:09 +00:00
Mathias Hasselmann
5381af6306 Improve layout of natural size for various widgets test and add a test for
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.

svn path=/branches/extended-layout/; revision=18577
2007-08-06 09:45:10 +00:00
Mathias Hasselmann
ce7d253c48 Repair sizing algorithm - gtk_socket_size_request and
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?

svn path=/branches/extended-layout/; revision=18576
2007-08-06 09:42:03 +00:00
Mathias Hasselmann
f1d13bd56b Provide natural size information. Consider and provide natural size
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.

svn path=/branches/extended-layout/; revision=18567
2007-08-01 15:53:34 +00:00
Mathias Hasselmann
0dd9d1d11c Seems there is no point in distinguishing between GTK_PACK_START and
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.

svn path=/branches/extended-layout/; revision=18564
2007-08-01 13:02:36 +00:00
Mathias Hasselmann
4a93ef5c4f Fix up the mess I commited before. Rule of the thumb: Never write code
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.

svn path=/branches/extended-layout/; revision=18563
2007-08-01 13:02:33 +00:00
Mathias Hasselmann
65ab0fb100 Avoid rounding errors in size allocation by adopting the algorithm used by
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.

svn path=/branches/extended-layout/; revision=18562
2007-08-01 11:19:44 +00:00
Mathias Hasselmann
1fbb28e857 Preparing natural size tests for GtkCellView and GtkTreeView.
2007-07-28  Mathias Hasselmann  <mathias.hasselmann@gmx.de>

	* tests/testextendedlayout.c: Preparing natural
	size tests for GtkCellView and GtkTreeView.

svn path=/branches/extended-layout/; revision=18554
2007-07-27 23:06:22 +00:00
Mathias Hasselmann
8a431e9707 Add paned widgets to the natural size test for GtkAlignment and GtkSocket.
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.

svn path=/branches/extended-layout/; revision=18553
2007-07-27 23:06:19 +00:00
Mathias Hasselmann
c68c3fd9df Consider natural size of the child. Expose natural size via
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.

svn path=/branches/extended-layout/; revision=18551
2007-07-27 18:36:20 +00:00
Mathias Hasselmann
c34223f9d8 Seems natural size for spanning cells worked already. Test spanning cells.
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.

svn path=/branches/extended-layout/; revision=18545
2007-07-26 16:50:19 +00:00
Mathias Hasselmann
478b1a1191 Also apply natural size, when there are no expandable children. Fix
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.

svn path=/branches/extended-layout/; revision=18536
2007-07-24 08:36:25 +00:00
Mathias Hasselmann
d601bce003 Consider natural size to allocate widgets spanning a single, rename
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.

svn path=/branches/extended-layout/; revision=18532
2007-07-23 22:28:44 +00:00
Mathias Hasselmann
ea485139bf Provide natural size information. Implemented some initial natural size
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.

svn path=/branches/extended-layout/; revision=18529
2007-07-23 17:19:46 +00:00
Mathias Hasselmann
5ef11313ba Make the type check part of the extended layout feature check macros.
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.

svn path=/branches/extended-layout/; revision=18528
2007-07-23 17:19:43 +00:00
Mathias Hasselmann
41818acb40 Extend the test to support rotations. Support ellipsizing and wrapping on
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°.

svn path=/branches/extended-layout/; revision=18493
2007-07-18 12:57:17 +00:00
Mathias Hasselmann
ffd0c38f91 Implement and test natural size support for GtkVBox. Cleanup issues found
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.

svn path=/branches/extended-layout/; revision=18492
2007-07-18 12:57:09 +00:00
Mathias Hasselmann
d89c5538cf Improve test result grouping.
2007-07-15  Mathias Hasselmann  <mathias.hasselmann@gmx.de>

	* tests/testextendedlayout.c: Improve test result grouping.

svn path=/branches/extended-layout/; revision=18491
2007-07-18 12:57:01 +00:00
Mathias Hasselmann
ca6a4fefa6 Propagate baseline offset to the child widget. Properly apply baseline
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.

svn path=/branches/extended-layout/; revision=18444
2007-07-11 12:24:25 +00:00
Mathias Hasselmann
8260ef870f Allow choosing initially active notebook page from command line and create
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.

svn path=/branches/extended-layout/; revision=18354
2007-07-03 15:42:03 +00:00
Mathias Hasselmann
24b2fa20f1 Properly evaluate natural size. Consider natural size for child placement.
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.

svn path=/branches/extended-layout/; revision=18339
2007-07-02 10:26:15 +00:00
Mathias Hasselmann
f568484846 Add gtk_extended_layout_set_baseline_offset to allow widget to adjust
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.

svn path=/branches/extended-layout/; revision=18330
2007-07-01 21:12:21 +00:00
Mathias Hasselmann
0869a5b9f5 Invalidate previously selected widget when choosing another one, to avoid
2007-07-01  Mathias Hasselmann  <mathias.hasselmann@gmx.de>

	* tests/testextendedlayout.c: Invalidate previously selected
	widget when choosing another one, to avoid drawing artifacts.

svn path=/branches/extended-layout/; revision=18329
2007-07-01 21:12:13 +00:00
Mathias Hasselmann
0013cf7e73 Improve drawing of baseline guides.
2007-07-01  Mathias Hasselmann  <mathias.hasselmann@gmx.de>

	* tests/testextendedlayout.c: Improve drawing of baseline guides.

svn path=/branches/extended-layout/; revision=18328
2007-07-01 21:12:10 +00:00
Mathias Hasselmann
0f8b3448b3 Properly report feature set and consider baseline_policy when evaluating
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.

svn path=/branches/extended-layout/; revision=18327
2007-07-01 21:12:07 +00:00
Mathias Hasselmann
07410c89fa Make baseline alignment work, by ignoring the uniform height constraint a
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.

svn path=/branches/extended-layout/; revision=18321
2007-07-01 09:23:44 +00:00
Mathias Hasselmann
86c0d93981 Rudimentary implementation of GtkExtendLayout.
2007-07-01  Mathias Hasselmann  <mathias.hasselmann@gmx.de>

	* gtk/gtkhbox.c: Rudimentary implementation of GtkExtendLayout.

svn path=/branches/extended-layout/; revision=18320
2007-07-01 09:11:47 +00:00
Mathias Hasselmann
d50c7c68b4 Fix a typo: s/GtkWindow/GtkWidget/
svn path=/branches/extended-layout/; revision=18319
2007-07-01 09:11:42 +00:00
Mathias Hasselmann
a21a526141 Provide button variant of the GtkHBox baseline alignment test, as those
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.

svn path=/branches/extended-layout/; revision=18318
2007-07-01 09:11:39 +00:00
Mathias Hasselmann
ecab2fb505 Provide status text, when no widget is selected.
2007-06-30  Mathias Hasselmann  <mathias.hasselmann@gmx.de>

	* tests/testextendedlayout.c:
	Provide status text, when no widget is selected.

svn path=/branches/extended-layout/; revision=18317
2007-07-01 09:11:34 +00:00
Mathias Hasselmann
2b051221e1 Drop g_debug messages.
2007-06-29  Mathias Hasselmann  <mathias.hasselmann@gmx.de>

	* gtk/gtkframe.c: Drop g_debug messages.

svn path=/branches/extended-layout/; revision=18300
2007-06-29 20:31:11 +00:00
Mathias Hasselmann
9f981fcebb Move buttons to top and provide textual information about currently
2007-06-29  Mathias Hasselmann  <mathias.hasselmann@gmx.de>

	* tests/testextendedlayout.c: Move buttons to top and
	provide textual information about currently hovered widget.

svn path=/branches/extended-layout/; revision=18299
2007-06-29 20:31:09 +00:00
Mathias Hasselmann
32ec6ad779 Move code to setup UI from main to test_suite_new.
2007-06-29  Mathias Hasselmann  <mathias.hasselmann@gmx.de>

	* tests/testextendedlayout.c: Move code to setup UI
	from main to test_suite_new.

svn path=/branches/extended-layout/; revision=18298
2007-06-29 20:31:05 +00:00
Mathias Hasselmann
ce56b73010 Split Baseline Alignment tests into separate tests and move the notebook
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.

svn path=/branches/extended-layout/; revision=18297
2007-06-29 20:31:02 +00:00
Mathias Hasselmann
079233aef1 Add gtk_extended_layout_get_padding. Implement
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.

svn path=/branches/extended-layout/; revision=18283
2007-06-28 22:21:28 +00:00
Mathias Hasselmann
f9b5d39a96 Merge separate, but nearly identical child allocation code for start and
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.

svn path=/branches/extended-layout/; revision=18278
2007-06-28 09:54:50 +00:00
Mathias Hasselmann
9a147e24dc Initial, buggish implementation of baseline alignment in GtkHBox.
2007-06-28  Mathias Hasselmann  <mathias.hasselmann@gmx.de>

	* gtk/gtkhbox.c, gtk/gtkhbox.h, gtk/gtk.symbols,
	tests/testextendedlayout.c: Initial, buggish implementation
	of baseline alignment in GtkHBox.

svn path=/branches/extended-layout/; revision=18268
2007-06-27 23:44:01 +00:00
Mathias Hasselmann
3acb459d2f Introduce GtkBaselinePolicy. Add missing symbols. Introduce
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.

svn path=/branches/extended-layout/; revision=18267
2007-06-27 23:43:55 +00:00
Mathias Hasselmann
68bf11d56d Prevent undefined behaviour when gtk_widget_translate_coordinates fails.
2007-06-28  Mathias Hasselmann  <mathias.hasselmann@gmx.de>

	* gtk/gtkbin.c: Prevent undefined behaviour when
	gtk_widget_translate_coordinates fails.

svn path=/branches/extended-layout/; revision=18266
2007-06-27 23:43:47 +00:00
Mathias Hasselmann
63ada5c4a7 Provide checkboxes to choose guide types at runtime.
2007-06-20  Mathias Hasselmann  <mathias.hasselmann@gmx.de>

	* tests/testextendedlayout.c: Provide checkboxes
	to choose guide types at runtime.

svn path=/branches/extended-layout/; revision=18212
2007-06-20 18:58:10 +00:00