Commit Graph

222 Commits

Author SHA1 Message Date
Emmanuele Bassi
4dd1de4129 Use explicit values for constraint strength
Instead of playing games with mapping negative symbolic values to
positive ones, let's use the appropriate constants everywhere. This
allows us to use:

        GTK_CONSTRAINT_STRENGTH_WEAK * 2

Or

        GTK_CONSTRAINT_STRENGTH_STRONG + 1

In code using the public API.

We also store the strength values as integers, so we can compare them
properly, and only turn them into doubles when they are inserted into
the solver, just like every other variable.
2019-07-01 12:39:24 +01:00
Emmanuele Bassi
d45a662679 Move the VFL error domain to a public header
Since the public API will use it to fill out GErrors, it needs to be
publicly available.
2019-07-01 00:48:48 +01:00
Emmanuele Bassi
cdf80f1d65 Add GtkConstraintLayout
A layout manager using GtkConstraintSolver to measure and allocate
children.
2019-06-30 23:42:44 +01:00
Emmanuele Bassi
6b308cd71e Add constraint solver
GtkConstraintSolver is an implementation of the Cassowary constraint
solving algorithm:

  http://constraints.cs.washington.edu/cassowary/

The Cassowary method allows to incrementally solve a tableau of linear
equations, in the form of:

  x = y × coefficient + constant

with different weights, or strengths, applied to each one.

These equations can be used to describe constraints applied to a layout
of UI elements, which allows layout managers using the Cassowary method
to quickly, and efficiently, lay out widgets in complex relations
between themselves and their parent container.
2019-06-30 23:42:44 +01:00
Matthias Clasen
2606ca0bd1 Introduce event controller propagation limits
Limit event handlers by default to only handle
events targeting the same surface as their widget.
2019-05-28 20:25:13 +00:00
Benjamin Otte
44ce36bef5 menubar: Remove pack direction 2019-04-15 14:38:23 +02:00
Matthias Clasen
ef982b7d46 Rename things
Rename the can-pick property to can-target,
and redo the pick flags with more descriptive names.
2019-04-08 08:42:25 -04:00
Matthias Clasen
7ce968f297 Document GtkPickFlags 2019-04-07 17:27:58 +00:00
Matthias Clasen
b804235aea Add a flags argument to gtk_widget_pick
This will be used to let the inspector and other users
pick insensitive widgets again. For now, update all
callers to pass no flags, preserving the current
behavior.
2019-04-07 17:19:09 +00:00
Benjamin Otte
49cbf2a16b widget: Add gtk_widget_set_overflow()
This adds a simple abilities for widget implementations to clip their
content. See future commits for users of this.
2019-02-08 18:26:42 +01:00
Matthias Clasen
5120748981 Drop GtkButtonBox
This widget does not seem worth keeping,
and we want to get rid of child properties.
2019-02-04 12:44:55 -05:00
Alcaro
a1a6e6a36a doc: Fix there/their typo 2018-07-27 02:28:45 +00:00
Matthias Clasen
8755d884f3 Remove a lot of Since annotations
4.0 will represent a clean epoch. We don't want to have
lots of noise in the docs about 2.x or 3.x.
2018-06-25 19:55:04 -04:00
Matthias Clasen
4c150d8eb5 The big versioning cleanup
Remove all the old 2.x and 3.x version annotations.
GTK+ 4 is a new start, and from the perspective of a
GTK+ 4 developer all these APIs have been around since
the beginning.
2018-02-06 01:16:32 -05:00
Matthias Clasen
9a3b61ec9d Drop GtkPlacesSidebar from public API
This is a bit of filechooser internals that gets shared with
nautilus, which is fine, but it shouldn't be part of our
public API. There are no other users than nautilus.
2018-01-08 14:38:55 -05:00
Matthias Clasen
d04f66eb52 Add GtkIconSize back to the docs
And document how it works now.
2017-12-26 08:40:43 -05:00
Matthias Clasen
2301d8d90b enums: Change GtkIconSize values
The new values are the ones we intend to keep. The old ones had
duplicated meanings and nobody knew which one to take.
2017-11-15 14:22:17 -05:00
Matthias Clasen
18b8a7f91f Add a state flag for visible focus
The new flag is called GTK_STATE_FLAGS_FOCUS_VISIBLE.
2017-10-25 17:49:43 -04:00
Matthias Clasen
774499e10e Add input hints for Emoji input
Allow hinting input methods about whether Emoji support is
useful or not.
2017-09-02 08:47:17 -04:00
Benjamin Otte
95a2a5c54c gtk: Remove GtkJunctionSides 2016-12-20 18:01:12 +01:00
Timm Bäder
773c16076b widget: Remove state-flags leftovers 2016-11-02 18:40:00 +01:00
Rico Tzschichholz
471d8d6184 Remove deprecated GTK_RELIEF_HALF 2016-10-23 18:23:58 +02:00
Rico Tzschichholz
a1b519a102 Removed deprecated GtkIM*Style enums 2016-10-23 12:52:00 +02:00
Benjamin Otte
9b9b475f0a API: stylecontext: Remove regions 2016-10-16 18:17:21 +02:00
Matthias Clasen
158dbbc88f Use CSS syntax for drop highlighting
I hadn't noticed the :drop() pseudo state in the CSS4 Selectors
spec when I added this a while ago. This commit renames
GTK_STATE_FLAG_DND to GTK_STATE_FLAG_DROP_ACTIVE and adds
:drop(active) as equivalent to the :dnd pseudo state.
2015-12-25 22:58:28 -05:00
Matthias Clasen
cbde3ee01f css: Add a :dnd pseudoclass
This will be used for drag highlighting.
2015-12-02 23:23:36 -05:00
Matthias Clasen
e626038467 popover: Make it possible to constrain to toplevel
Under X11, popovers are always constrained to the toplevel
window. Under Wayland, they aren't. This commit adds a
property that allows to explicitly constrain popovers to
the toplevel, giving them the same behavior under Wayland
as under X11.

https://bugzilla.gnome.org/show_bug.cgi?id=757474
2015-12-01 17:26:25 -05:00
Matthias Clasen
648c3b39f3 input methods: Add a 'vertical text' hint
This has been requested in
https://bugzilla.gnome.org/show_bug.cgi?id=747150
2015-05-10 01:30:38 -04:00
Michael Catanzaro
a017031bee GtkMessageDialog: Minor documentation update
Icons went away in 3.12

https://bugzilla.gnome.org/show_bug.cgi?id=748061
2015-04-17 13:39:48 -05:00
Benjamin Otte
36a2e7ca8e css: Add a :checked pseudoclass
https://bugzilla.gnome.org/show_bug.cgi?id=733967
2014-08-16 16:34:14 +02:00
Matthias Clasen
5f549fa7cb Docs: Mention that shadow type is a lie
As requested here:
https://bugzilla.gnome.org/show_bug.cgi?id=659926#c2
2014-07-10 00:16:04 -04:00
Matthias Clasen
598777166f GtkButton: Use FLAT style class
This commit makes button always draw background and frame.
Buttons with relief none get a new style class, FLAT, which
allows themes to style these buttons as they like.

We also (finally) mark GTK_RELIEF_HALF as deprecated. It
has never done anything different from GTK_RELIEF_NORMAL.

https://bugzilla.gnome.org/show_bug.cgi?id=732256
2014-06-26 22:02:18 -04:00
Carlos Garnacho
ef61c9c58b gtk: Replace GtkPanOrientation with GtkOrientation
And document GtkOrientation to be more generic. There's little added
value in a separate enum for this.
2014-05-27 17:47:12 +02:00
Matthias Clasen
0bd0f39576 docs: enum cleanup
Move GtkStateType to the GtkWidget apis where it is used, and
mark the enum as deprecated.
2014-05-26 10:37:06 -04:00
Carlos Garnacho
1c48cc253d gesture: Add GTK_PHASE_TARGET
This phase is meant to run in the default widget handlers, as opposed
to externally as in the bubble/capture phase. This will be most usually
the expected phase for every controller replacing code in event handlers
in GTK+, just so invocation and triggering order is kept unaltered.
2014-05-23 19:54:30 +02:00
Carlos Garnacho
48367b1432 enums: Add missing docs to controller/gesture enums 2014-05-23 19:54:27 +02:00
Carlos Garnacho
4401be22ad enums: Document GtkPropagationPhase 2014-05-23 19:54:26 +02:00
Carlos Garnacho
c7da5b54f5 Add GtkGesturePan
This gesture reports events on horizontal/vertical panning gestures.
2014-05-23 19:54:26 +02:00
Carlos Garnacho
026b5014e8 Add: GTK_PHASE_NONE value to GtkCapturePhase.
Gestures attached with this phase will expect callers to have it
receive events through gtk_event_controller_handle_event(), but
the gesture will still be notified of sequence state changes,
grabs, etc...
2014-05-23 19:54:23 +02:00
Carlos Garnacho
f1bb0283dd widget: Hook GtkEventController to widget event processing.
A controller can be optionally hooked on the capture or the bubble
phase, so the controller will automatically receive and handle events
as they arrive without further interaction.
2014-05-23 19:54:22 +02:00
Carlos Garnacho
8f113e07fd Add GtkGesture
This a more specific abstract type that handles one or multiple
streams of pointer/touch events.
2014-05-23 19:54:21 +02:00
Matthias Clasen
edd6c4d487 docs: enum cleanup
Move GtkExpanderStyle over to the deprecated GtkStyle.
2014-05-20 09:54:01 -04:00
Matthias Clasen
575d0eabfb docs: enum cleanup
Move GtkResizeMode to the only place it is used.
2014-05-20 09:54:01 -04:00
Matthias Clasen
d5251141ce docs: enum cleanup
Move GtkWindowPosition and GtkWindowType to the only place
they are used.
2014-05-20 09:54:01 -04:00
Matthias Clasen
04192d04a2 docs: enum cleanup
Move types that are only used in binding parsing to
gtkrc, together with the deprecated api.
2014-05-20 09:54:01 -04:00
Matthias Clasen
e5a1734ce9 docs: enum cleanup
scrolledwindow part 2
2014-05-20 09:54:01 -04:00
Matthias Clasen
2430762f9b docs: enum cleanup
Move GtkButtonBoxStyle to the one place it is used, GtkButtonBox.
2014-05-20 09:54:01 -04:00
Matthias Clasen
cf1c8c8c69 docs: enum cleanup
Move GtkAttachOptions to the only place its used: GtkTable
2014-05-20 09:54:01 -04:00
Matthias Clasen
ee244473d6 doc: enum cleanup
Move GtkArrowType to where it is used in undeprecated api:
GtkMenuButton.
2014-05-20 09:54:01 -04:00
Matthias Clasen
edde7aca60 docs: enum cleanup
Move GtkArrowPlacement to the GtkMenu docs. This type is
only used for a style property there.
2014-05-20 09:54:01 -04:00