Matthias Clasen
377f0c1a0a
constraint editor: Use name properties
2019-07-02 10:03:48 -04:00
Matthias Clasen
a442e6e8de
constraint editor: Use the list models
...
Instead of handrolling our own list models,
use the ones provided by GtkConstraintLayout.
2019-07-02 10:03:48 -04:00
Matthias Clasen
274c47e5ba
constraint layout: Provide list models
...
Provide list models for the constraints and guides,
so we can show them in the inspector, and use them
in e.g. the constraints editor.
2019-07-02 10:03:48 -04:00
Matthias Clasen
b2f15a622d
Merge branch 'wip/ebassi/constraint-layout' into 'master'
...
Add constraint-based layout manager
Closes #1090
See merge request GNOME/gtk!973
2019-07-02 14:01:01 +00:00
Emmanuele Bassi
04aaf02881
docs: Add more private headers to the list
...
The various GtkConstraint private API should not be scanned for
documentation.
2019-07-02 09:48:17 +01:00
Emmanuele Bassi
d5f8e1bf29
docs: Fix typo in function name
2019-07-02 09:44:48 +01:00
Daniel Boles
33bd7051f2
widget-factory: Use correct StyleProvider priority
...
We are an application, not a user.
cherry-pick of !974
2019-07-02 09:09:47 +01:00
Matthias Clasen
61345b3216
Merge branch 'option-names' into 'master'
...
meson: Rename documentation option to gtk_doc
See merge request GNOME/gtk!972
2019-07-02 01:28:43 +00:00
Benjamin Otte
129691f3a6
flattenlistmodeL: Compute items-changed position properly
...
The code previously forgot to include the left child of the model's
node. Which of course only happened if that child wasn't NULL, which is
a common case.
Found and test provided by Matthias Clasen.
2019-07-02 02:53:00 +02:00
Matthias Clasen
4eaf860e86
meson: Rename documentation option to gtk_doc
...
This name is what most of the stack is using.
Lets follow along, even though it is (imo)
uglier.
2019-07-01 20:16:37 -04:00
Christoph Reiter
72814c54a8
meson: cups: use cups-config for looking up cups
...
We were looking for the cups headers and the cups lib in the default locations
which for example breaks with OpenBSD where the cups headers are under /usr/local/include/
Instead just use the "cups" dependency type from meson which internally uses cups-config.
See #1967
Ported to master from !963
2019-07-01 21:52:06 +02:00
Christoph Reiter
4d4e02c9d0
build/cups: remove checks for httpGetAuthString and http_t.authstring
...
httpGetAuthString() was added with cups 1.3 and we depend on a newer version
now. The direct field access was a fallback in case httpGetAuthString()
was missing, so this can also be dropped.
Ported to master from !938
2019-07-01 21:34:44 +02:00
Emmanuele Bassi
8ab609e4e7
Add custom parser for guides defined in GtkBuilder UI files
...
Like we describe constraints, we can also define guides.
2019-07-01 19:22:48 +01:00
Emmanuele Bassi
6bc156c237
Implement GtkBuildable for GtkConstraintLayout
...
Using GtkBuildable we can provide a custom parser for reading
constraints defined in a GtkBuilder UI file.
2019-07-01 18:03:20 +01:00
Emmanuele Bassi
b435dc4366
Use the right GValue getter for GtkConstraintGuide:strength
...
The property is defined as an enum.
This fixes the defaultvalue and notify tests.
2019-07-01 18:02:19 +01:00
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
Matthias Clasen
48e6cd4255
constraint editor: Allow dragging children
...
We add a weak constraint for the position
and update it as the widget is dragged.
2019-07-01 04:24:26 +00:00
Matthias Clasen
658397fad0
Documentation fixes
...
Make sure all types show up in the docs,
and misc other improvements.
2019-07-01 03:17:58 +00:00
Matthias Clasen
670fc5bb94
constraint editor: Enable max size for guide
...
Also, use the apis we have now, and make the
spin buttons display 'unset' values as such.
2019-07-01 02:23:39 +00:00
Matthias Clasen
b224df8109
constraint layout: go back to keeping constraints
...
We want to minimize changes to the solver, so
keep the size constraints around and only update
them when the size changes.
2019-07-01 01:54:57 +00:00
Matthias Clasen
c88e7c180d
constraint layout: Use stronger force for min size
...
We want our edit constraint to be strong enough to
overpower nat. size constraint, therefore use STRONG * 2.
2019-07-01 01:49:20 +00:00
Emmanuele Bassi
2aabd64f1a
Fix warnings from the introspection scanner
...
The name of the arguments of the functions must match the name of the
arguments in the documentation stanza.
2019-07-01 01:13:00 +01:00
Emmanuele Bassi
7990b24287
Add gtkconstraintguide.h to the public headers
...
It needs to be introspected and installed.
2019-07-01 01:12:25 +01:00
Emmanuele Bassi
c76c1a46e4
Remove specialised API from GtkConstraint
...
Thet widget-based API for constraint target and source properties is
unused, and not really necessary.
2019-07-01 01:05:04 +01:00
Emmanuele Bassi
68fed63eac
Add missing documentation for GtkConstraint
2019-07-01 01:02:56 +01:00
Emmanuele Bassi
46403bac12
docs: Add GtkConstraint and friends to the API reference
2019-07-01 00:49:20 +01:00
Emmanuele Bassi
74c626f835
Document GtkConstraintGuide
2019-07-01 00:48:59 +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
Matthias Clasen
f6019f1a16
Merge branch 'gbsneto/fix-popover-dark-theme' into 'master'
...
Fix GtkPopoverMenu in dark theme
See merge request GNOME/gtk!970
2019-06-30 23:17:40 +00:00
Matthias Clasen
514de0b91a
Add a constraint editor demo
...
This is an initial cut at providing a tool
for interactive exploration of constraints.
2019-07-01 00:10:11 +01:00
Emmanuele Bassi
9a463056d0
constraint layout: Notice when guides change
...
We need to queue a resize here.
2019-07-01 00:10:11 +01:00
Matthias Clasen
035baa092c
Mark the layout as changed
...
We should mark the layout as changed when
constraints are added or removed.
2019-07-01 00:10:11 +01:00
Matthias Clasen
499738c903
constraint guide: Avoid redundant constraints
...
There is no point in creating a stay for nat
size when min == max. And no point in a constraint
for <= G_MAXINT either.
2019-07-01 00:10:11 +01:00
Matthias Clasen
f2d7433bf6
constraint guide: Fix initial property values
...
This was overlooked when the max-width/max-height/
strength properties were added.
2019-07-01 00:10:11 +01:00
Matthias Clasen
405121bccc
constraint solver: Use GTK_NOTE
...
Allow using GTK_DEBUG=constraints to get debug
output from the constraints solver.
2019-07-01 00:10:11 +01:00
Matthias Clasen
cb96b34315
solver: Add private statistics api
...
No point in keeping these counters without
a way to show them.
2019-07-01 00:10:11 +01:00
Matthias Clasen
9edf6fb6cb
constraint layout: Dont reset constraints in allocate
...
If trust our allocation algorithm, this can never
trigger (and in fact, it never does).
2019-07-01 00:10:11 +01:00
Matthias Clasen
e3c4fb67ca
constraints: Add some internal apis
...
Checking if a set is empty or a singleton can
be done more efficiently than determining its size.
2019-07-01 00:10:11 +01:00
Matthias Clasen
a9dfca04e4
constraint guide: Make strength tweakable
...
The strength for the natural width can be used
as a tie-breaker to make instable systems behave
in a more predictable way. This can be seen
in the simple constraints demo in gtk-demo.
2019-07-01 00:10:11 +01:00
Matthias Clasen
71b52f485e
constraints demo: Update comments
2019-07-01 00:10:11 +01:00
Matthias Clasen
f62fc4e2f2
constraint layout: freeze/thaw on mass ops
...
In measure and allocate we are potentially
changing quite a few constraints. Don't
optimize at every step.
2019-07-01 00:10:11 +01:00
Matthias Clasen
511e2b435e
constraints: Use better data structures
...
Use a GSequence for GtkVariableSet, to avoid
quadratic behavior.
2019-07-01 00:10:11 +01:00
Matthias Clasen
3f36340921
constraint layout: Measure min/nat size separately
...
Only constraint the opposite direction if we
actually have a for_size, and measure natural
size after removing the edit constraints. With
these changes, the test that compares constraint
layout to grid layout passes.
2019-07-01 00:10:11 +01:00
Matthias Clasen
b1f0f4478e
constraint layout: Use stays for natural size
...
It makes more sense to treat the natural size
of both children and guides as stays, since
we want to meet these values as closely as we
can, under the circumstances.
2019-07-01 00:10:11 +01:00
Matthias Clasen
90f8dcc5e1
constraint layout: Add debug output for guides
...
Print out the allocation we end up giving to
guides. This helps in making sense of the
allocations of the child widgets that these
guides relate to.
2019-07-01 00:10:11 +01:00
Matthias Clasen
5a019bfccd
constraints demo: Give space a name
...
Lets call it 'space'.
2019-07-01 00:10:11 +01:00
Matthias Clasen
b39a5fe5dc
constraint guide: Add a name property
...
We need to be able to print meaningful debug messages
regarding these objects, and eventually present them
in the inspector too.
2019-07-01 00:10:11 +01:00
Matthias Clasen
c7ef8411bd
constraint guide: Shorten names
...
Now that this is its own source file,
no need for these prefixes anymore.
2019-07-01 00:10:11 +01:00
Matthias Clasen
dab8a8b5c5
constraint layout: Measure more correctly
...
Set up all constraints for minimum + natural
width + height when measuring, regardless
of the orientation we're measuring. Anything
else will lead to incorrect answers when
there are constraints that cut across
dimensions.
2019-07-01 00:10:11 +01:00
Matthias Clasen
8b9c5e3a04
solver: Fix a copy/paste error
2019-07-01 00:10:11 +01:00