Timm Bäder
99b00b4d9c
sizerequest: Assert that min_size >= 0
...
This should generally be true, so remove the checks from gtkbox.c and
move it into gtksizerequest.c
2017-07-19 21:27:13 -04:00
Timm Bäder
a9f9ef3f53
box: Use widget children list in count_expand_children
...
It's still less dereferencing than the previous code.
2017-07-19 21:27:13 -04:00
Timm Bäder
e37457adf9
box: Remove gadget
2017-07-19 21:27:11 -04:00
Timm Bäder
5baaa76bac
box: Remove gadget accessor
2017-07-19 21:27:11 -04:00
Timm Bäder
66b720fbb8
box: Remove gadget usage
...
Keep the gadget member in the private struct around for now so
GtkButtonBox doesn't break terribly.
2017-07-19 21:27:11 -04:00
Timm Bäder
7b7e85d618
box: Remove css box drawing
2017-07-19 21:27:10 -04:00
Timm Bäder
179b8b0cbc
Fix gdk_rectangle_union calls
...
Turns out that the destination is the last parameter, not the first one.
This fixes the flickering in the first page of the widget-factory when
using the expander on page 2.
2017-04-28 11:27:09 +02:00
Timm Bäder
927f2f5c06
box: Compute clips directly
...
Instead of using _gtk_widget_set_simple_clip *and*
gtk_container_get_children_clip
2017-04-25 20:30:37 +02:00
Timm Bäder
fb927d1993
box: Remove center child
2017-04-25 20:30:37 +02:00
Timm Bäder
f053a63d74
container: Remove include_internals parameter from forall
...
with include_internals=TRUE, this is the same as the (still private)
gtk_widget_forall, or just using the children/sibling accessors in a
loop.
2017-04-25 20:30:37 +02:00
Timm Bäder
c92b7d4224
box: Remove fill child property
...
GtkWidget:halign and GtkWidget:valign are sufficient
2017-04-25 20:30:37 +02:00
Timm Bäder
5729ea7744
box: Remove expand child property
...
GtkWidget already has hexpand/vexpand properties.
2017-04-25 20:30:37 +02:00
Timm Bäder
22b493a6ac
box: Make sure center_req is initialized
...
In case we have an invisible center widget, we never initialize it, but
later still use it.
2017-03-20 14:16:56 +01:00
Timm Bäder
f860ff8647
widget: Remove get_valign_with_baseline
...
This only existed for backwards compat reasons which aren't interesting
for gtk4.
2017-03-05 15:18:32 +01:00
Alexander Larsson
7bee22bcb6
Avoid some more type checks for internal calls
2017-01-11 15:27:51 +01:00
Daniel Boles
2a7171534e
Box: Restore an accidentally deleted comment
...
Also, split a MAX() onto its own line to match the others.
2016-12-26 10:57:51 +00:00
Daniel Boles
71bbd8881f
Box: avoid recalc/reassignments, improve var names
...
Homogeneous branches repeated the calculation/assignment of the initial
space available to children. This avoids that by shuffling some code.
Perhaps more importantly, in doing that, I ended up with some ambiguous
names, and Company and I realised how vague the pre-existing naming was.
"size" becomes "extra_space", as this is what it represents. Conversely,
"extra" becomes "size_given_to_child" (albeit still given out in two
different ways depending on whether the Box is homogeneous). My hope is
that these sections of code are now somewhat less baffling than before!
2016-12-25 23:16:14 +00:00
Daniel Boles
5d10174031
Box: Don't unnecessarily repeat a function call
...
The spacing was already saved in a variable just above.
2016-12-25 21:46:40 +00:00
Benjamin Otte
0dbdf0c428
gadget: Remove gtk_css_gadget_draw()
...
And with it, remove the draw func from custom gadgets, that has been
NULL everywhere.
All gadgets are snapshot now.
2016-12-20 18:01:12 +01:00
Benjamin Otte
75c3d193f6
box: Implement support for border-spacing
2016-12-10 04:32:55 +01:00
Benjamin Otte
5aea108802
box: Remove unused member variable
2016-12-10 04:32:55 +01:00
Benjamin Otte
8ac7918e0b
snapshot: convert GtkBox
2016-11-15 17:48:45 +01:00
Benjamin Otte
da207c9fdd
snapshot: Add a snapshot function to GtkCssCustomGadget
2016-11-15 17:48:45 +01:00
Timm Bäder
6488dde4fd
box: Use measure() to measure child sizes
2016-10-31 12:20:41 +01:00
Timm Bäder
76ff53193a
box: Mark out params of _query_packing as (optional)
2016-10-31 12:20:41 +01:00
Timm Bäder
3154d3f258
box: Remove unused private API
2016-10-31 12:20:41 +01:00
Timm Bäder
9992a616ef
widget: Use ::measure vfunc to measure size
...
Add a new ::measure vfunc similar to GtkCssGadget's that widget
implementations have to override instead of the old get_preferred_width,
get_preferred_height, get_preferred_width_for_height,
get_preferred_height_for_width and
get_preferred_height_and_baseline_for_width.
2016-10-22 19:05:47 +02:00
Emmanuele Bassi
137ff8ede7
box: Port from immediate to deferred rendering
...
Drop the ::draw() vfunc implementation in favour of the
::get_render_node() vfunc.
2016-10-18 11:49:10 +01:00
Benjamin Otte
4df6ddad54
API: container: Remove gtk_container_set_border_width()
2016-10-16 18:18:58 +02:00
Timm Bäder
f45dadadd0
box: Remove 'padding' child property
2016-10-16 18:17:21 +02:00
Timm Bäder
fb3d9022ad
Remove GtkHBox
2016-10-16 18:17:21 +02:00
Christoph Reiter
4556d0f0fe
gtkbox: remove unnecessary queue_compute_expand()
...
The expand child property does not have any effect on the
expand state of the GtkBox, so queuing a compute_expand
when changing it is not needed.
https://bugzilla.gnome.org/show_bug.cgi?id=769162
2016-08-01 09:02:04 -04:00
Matthias Clasen
bf66cd1e94
box: Only emit ::child-notify when necessary
...
We can easily check if the values for expand, padding and so forth
actually changed, so lets do it.
2016-05-04 15:05:08 -04:00
Matthias Clasen
6b53138a01
box: Fix rtl allocation with center widget
...
The code for adjusting the center widget allocation in case
of uneven sides never worked right in RTL. This was finally
noticed for tabs with close button, which commonly use a
centered label.
2016-02-20 16:45:26 -05:00
Carlos Garcia Campos
170cb01675
Revert "Remove _gtk_box_get_children"
...
This reverts commit 572e9a0402
.
_gtk_box_get_children was not doing exactly the same than
gtk_container_get_children does, because the latter uses the forall
implementation of GtkBox that takes into account the children pack mode while
the former just iterated the list of children. This broke the order of
the buttons in a GtkButtonBox when they were packaged with PACK_END.
2016-02-12 13:29:21 +01:00
Timm Bäder
572e9a0402
Remove _gtk_box_get_children
...
It's doing exactly the same thing as gtk_container_get_children.
2016-02-04 13:32:34 +01:00
Matthias Clasen
7743944124
GtkBox: Documentation tweak
2016-01-13 00:39:53 -05:00
Matthias Clasen
2677eee720
box: Document child node ordering
2016-01-12 23:40:28 -05:00
Matthias Clasen
d81f8c1025
box: Add a way to get the gadget
...
This will be used in GtkButtonBox.
2015-12-18 07:37:52 -05:00
Matthias Clasen
9c88256441
box: Trivial doc change
...
All the CSS sections are named CSS nodes, so do the same here.
2015-12-15 08:41:16 -05:00
Benjamin Otte
49fea0b0f5
box: Port to gadgets
2015-12-15 08:41:16 -05:00
Timm Bäder
88b4955fd9
GtkBox: The center widget can be NULL
...
Propagates to GtkActionBar.
2015-12-01 13:41:35 +01:00
Matthias Clasen
95df0fb6f5
box: Use an element name
2015-11-19 07:07:26 -05:00
Benjamin Otte
a7816909ef
box: Refactor CSS node handling
...
Only update the node that changed, don't invalidate everything.
2015-11-09 01:48:14 +01:00
Benjamin Otte
bed3ff2737
box: Don't track children visibility
...
It's not necessary anymore with css nodes.
2015-11-09 01:48:14 +01:00
Matthias Clasen
1e4369e8ef
box: Convert to gtk_container_child_notify_by_pspec
...
For the same reasons as g_object_child_notify_by_pspec.
2015-09-08 08:07:32 -04:00
Matthias Clasen
0f92a43e10
Move GtkWidgetPrivate to gtkwidgetprivate.h
...
This lets us use inlined getters for members in there,
avoiding the type checks in the public getters.
2015-09-07 02:40:22 -04:00
Benjamin Otte
6e4f42f97e
cssnode: Change API of some functions
...
gtk_css_node_set_after/before() are now called
gtk_css_node_insert_after/before().
This brings them in line with other similar APIs (ie GtkListStore). And
it allows easier usage of the API (see changes to gtkbox.c).
2015-07-16 06:15:13 +02:00
Benjamin Otte
36678306a0
box: Fix RTL styling
2015-05-12 18:44:59 +02:00
Benjamin Otte
ee91fb71ca
box: Use CSS nodes instead of widget paths
...
This is a very simple patch that causes a bunch of overhead. But it
works.
2015-03-18 15:23:31 +01:00
Matthias Clasen
45d0a5cc4b
Trivial formatting fix
...
&& goes at the end of the line in GTK+ coding style.
2014-12-09 23:41:28 -05:00
Matthias Clasen
8b6457732f
GtkBox: Fix self-assignment for center widget
...
This is happening when glade is loading ui files containing
center widgets.
2014-10-25 20:30:08 -04:00
Matthias Clasen
b4a288a592
GtkBox: Ensure we only allow one center child
...
Glade was happily adding multiple center widgets. Oops.
2014-10-13 12:45:05 -04:00
Benjamin Otte
b5a8b7ef3b
widget: Make _gtk_set_simple_clip() take an optional content clip
2014-08-21 00:54:07 +02:00
Matthias Clasen
b4ab29d4d5
GtkBox: Set orientable style classes initially
...
This was an omission, horizontal/vertical would only be set
when the orientation is changed.
2014-07-18 19:37:33 -04:00
Matthias Clasen
f531b0757c
GtkBox: Use G_PARAM_EXPLICIT_NOTIFY
2014-06-09 13:30:52 -04:00
Matthias Clasen
06564f5df6
GtkBox: Convert to g_object_install_properties
2014-06-09 13:30:52 -04:00
Matthias Clasen
e54525729e
GtkBox: Move overridden property ids to the end
...
This will make it easier to convert to g_object_install_properties
in the next commit.
2014-06-09 13:30:52 -04:00
Benjamin Otte
0cd63faee2
widget: Add _gtk_widget_set_css_clip()
...
... and use it in GtkBox and GtkGrid.
2014-05-24 16:12:21 +02:00
Marcus Karlsson
ac5fbb5ef3
docs: Add missing transfer annotation to GtkBox
...
The gtk_box_get_center_widget function is missing a transfer annotation
for the returned widget. No transfer is done, so set transfer to none.
https://bugzilla.gnome.org/show_bug.cgi?id=728093
2014-04-13 13:22:36 -07:00
William Jon McCann
469d333aa2
docs: use Returns: consistently
...
Instead of Return value:
2014-02-19 18:56:05 -05:00
Matthias Clasen
e679812be0
GtkBox: Fix an off-by-one error with center allocation
...
This error was causing children to not get allocated when
the center widget is the first one in the list of the box's
children.
2014-02-18 22:55:45 -05:00
Matthias Clasen
bb4f8d8ce1
Make gtk_box_set_center_widget take NULL
...
It makes sense to allow this, and gtk_action_bar_set_center_widget
already assumes that it can pass NULL to this function.
2014-02-18 22:50:37 -05:00
Paolo Borelli
ad9019c2c9
gtkbox: fix positioning of center widget
2014-02-17 23:23:04 +01:00
Matthias Clasen
e734b79fd8
Fix return_if_fail lines in gtk_box_pack
...
Since the function now returns a value, these checks
need to be updated.
2014-02-17 11:55:56 -05:00
Paolo Borelli
b63ecf8b1a
Add builder support for GtkBox center widget
2014-02-17 14:05:36 +01:00
Matthias Clasen
06716a6c79
Add center widget support to GtkBox
...
This makes GtkCenterBox unnecessary, and at the same time
adds more features: the center widget can be expanded, and
baseline alignment is supported.
2014-02-16 22:57:24 -05:00
William Jon McCann
7a208fbbf3
docs: use proper apostrophe
...
https://wiki.gnome.org/Design/OS/Typography
2014-02-07 13:06:10 -05:00
Matthias Clasen
245c385ae7
Docs: Don't use note elements
...
In most cases, the text itself makes the message clear enough.
2014-02-02 01:22:14 -05:00
William Jon McCann
2d003553e8
docs: don't use <emphasis>
...
It is a little heavy handed. The text can speak for itself.
2014-01-28 02:02:05 -05:00
Matthias Clasen
05655c5bfa
Trivial typo fix
2014-01-27 23:30:38 -05:00
William Jon McCann
4872ee75e6
docs: don't use structfield tags
2014-01-27 19:59:58 -05:00
William Jon McCann
00f15b863e
docs: don't use property syntax for child properties
2014-01-21 22:40:55 -05:00
William Jon McCann
0b4ea6ea1b
docs: fix typo in property name
2014-01-21 18:57:37 -05:00
William Jon McCann
01018e019b
docs: don't use property syntax for child properties
2014-01-21 18:57:37 -05:00
Jasper St. Pierre
698488ddc4
gtkbox: Draw backgrounds and borders
2013-10-31 12:21:08 -04:00
Piotr Drąg
60ec788489
Fix minor typos
2013-08-21 04:15:52 +02:00
Emmanuele Bassi
0899ef7cc9
gtk: Use new macros for defining private data
...
https://bugzilla.gnome.org/show_bug.cgi?id=702996
2013-07-09 09:30:02 +01:00
Matthias Clasen
80513aa2c7
GtkBox: don't propagate the expand child property
...
The intention of the expand widget flags was to in fact propagate
legacy expand child properties as well. Due to implementation errors,
this was only happening in some cases, but not in others. To avoid
breaking old code assuming traditional expand flag behavior, this
commit removes all attempts to propagate GtkBox::expand.
This was discussed in
https://bugzilla.gnome.org/show_bug.cgi?id=698656 and
https://bugzilla.gnome.org/show_bug.cgi?id=628902
This patch was written by Tristan Van Berkom.
2013-05-25 14:46:09 -04:00
Benjamin Otte
6146bf7a32
gtkprivate: #define OPPOSITE_ORIENTATION
...
and use it
2013-05-01 16:41:11 +02:00
Alexander Larsson
43f1ac2b8f
GtkBox: Add missing Since in docs
2013-04-23 05:58:08 +02:00
Alexander Larsson
9a42942afb
GtkBox: Add baseline alignment for horizontal boxes
...
Report a baseline based height and baseline whenever there
are children with ALIGN_BASELINE.
Assign baseline to childen in size_allocate. Either the one inherited
from the parent if set, or otherwise calculate one based on any
ALIGN_BASELINE children.
2013-04-23 05:50:38 +02:00
Cosimo Cecchi
61344219d4
Revert "box: Don't special-case RTL hbox child positions anymore"
...
This reverts commit 6f86e57c4f
.
https://bugzilla.gnome.org/show_bug.cgi?id=694451
2013-02-23 14:53:24 -05:00
Benjamin Otte
6f86e57c4f
box: Don't special-case RTL hbox child positions anymore
...
If you want to get rounded corners on an hbox, instead of
:first-child {
border-top-left-radius: 5px;
border-bottom-left-radius: 5px;
}
:last-child {
border-top-right-radius: 5px;
border-bottom-right-radius: 5px;
}
you now need to write:
:first-child, :last-child:dir(rtl) {
border-top-left-radius: 5px;
border-bottom-left-radius: 5px;
}
:last-child, :first-child:dir(rtl) {
border-top-right-radius: 5px;
border-bottom-right-radius: 5px;
}
2012-12-18 18:25:42 +01:00
Matthias Clasen
ffa42cb5bb
Nuke GtkBoxAccessible
...
It didn't contain anything useful.
2012-11-07 20:17:30 -05:00
Stefano Facchini
fb18145c06
box: Fix typo
...
https://bugzilla.gnome.org/show_bug.cgi?id=683718
2012-09-11 21:40:46 +02:00
Cosimo Cecchi
f900df6f01
box: set orientation style classes when setting orientation
...
Since we override the property, we have to call the internal helper
manually.
2012-05-11 11:46:59 -04:00
Benjamin Otte
33f111a47c
widget: Don't cache widget paths all the time
...
Add an internal API that allows GtkStyleContext to create a widget path
for the widget and with that bypassing gtk_widget_get_path() and that
function caching the path.
2012-04-17 08:59:21 +02:00
Benjamin Otte
ece9d2fd92
gtk: Make widget only invalidate widget positions
...
Instead of resetting them completely
2012-04-17 08:59:10 +02:00
Benjamin Otte
461803e407
gtk: Get gtkwidgetpath.h includes out of the public headers
...
and include them in the C files instead.
2012-03-19 02:26:16 +01:00
Lionel Landwerlin
adf36e28d2
gtkbox: avoid warning when removing a widget with refcount of 1
...
If gtkbox is the only object having a reference on one of its child
and that we try to remove it from its container, we endup having a
warning when disconnecting a signal after having unparented the
widget.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@linux.intel.com>
https://bugzilla.gnome.org/show_bug.cgi?id=670176
2012-03-18 15:41:07 -04:00
Javier Jardón
9d0febc9a6
Change FSF Address
2012-02-27 17:06:11 +00:00
Javier Jardón
8985ce3b72
gtkbox: Move private functions to private header
2011-10-02 21:30:42 +01:00
Javier Jardón
b0a7db76fb
Replace some references to the GtkTable, use GtkGrid instead
2011-09-29 12:38:49 +01:00
Michael Natterer
a6151ebb95
GtkBox: make get_path_for_child() work if there are internal children
...
Use foreach() instead of forall() to find the child's siblings
because internal children of subclasses have no sibling relation
to the box' children. Also deal with the subclass failing to
implement get_path_for_child(). This caused an infinite widget
path invalidation loop of sorts with GimpMessageBox, which is a
vertical box with a decorative icon to the left.
2011-09-26 00:52:28 +02:00
Matthias Clasen
896769df69
Convert GailExpander to GtkExpanderAccessible
...
At the same time, drop the AtkText implementation.
Also, reintroduce a GtkBoxAccessible, since the previous
way of setting the role in get_accessible was affecting
GtkBox subclasses negatively.
Adjust expected test output to match.
2011-07-05 16:08:57 -04:00
Matthias Clasen
8bb24a936f
Don't overwrite roles
...
Otherwise, every GtkBox subclass will have to override
get_accessible just to keep their roles.
2011-07-05 16:08:56 -04:00
Matthias Clasen
1ef996ca3c
Remove GailBox
...
It was only setting a role, and we can do that just as well
in get_accessible().
2011-07-05 16:08:53 -04:00
Benjamin Otte
246a7ecbc9
box: Remove cache for sibling paths
...
We can't cache this path as widgets might dynamically add or remove
style classes without telling us. At which point the stored path does
not work.
2011-07-02 01:40:16 +02:00
Cosimo Cecchi
ef153a5fff
box: follow children visibility when building the sibling path
...
This fixes nth-child not working for widgets which were not
visible before being added to the box, but it's also a better fix
for https://bugzilla.gnome.org/show_bug.cgi?id=652769
2011-07-01 11:48:22 -04:00