Commit Graph

718 Commits

Author SHA1 Message Date
Elias Naur 4bbad66947 layout: adjust only max constraints on Inset
Only adjust minimums, and insets, if necessary.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-10-16 00:49:52 +02:00
Elias Naur 8234e8485c example: update gio version
Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-10-15 23:35:49 +02:00
Elias Naur 45ccbbe571 layout: expand Flex children
Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-10-15 23:33:31 +02:00
Elias Naur fd1fa85998 layout: allow Expand children to fill the available area
Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-10-15 23:33:31 +02:00
Elias Naur 160408ec03 widget/material: use constraint minimums for background fills 2019-10-15 23:33:31 +02:00
Elias Naur 2990ceda69 layout: relax constraints in Stack.Rigid
Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-10-15 17:59:23 +02:00
Elias Naur 6e44d355cc layout: enforce constraints in Context.Layout
Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-10-15 17:59:23 +02:00
Elias Naur 1d47f0c5d8 app/internal/window: fall back to OpenGL ES 2 if 3 is unavailable
Systems that only support ES 2 are unlikely to have the required
extensions available. But we'll get a better exit error in that case.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-10-15 17:59:23 +02:00
Elias Naur 0783d1939e stack: fix comment
Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-10-15 15:53:43 +02:00
Elias Naur b2a360098a example: go fmt imports
Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-10-15 10:10:37 +02:00
Elias Naur 3a440c07c6 text: don't panic on missing default font
Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-10-15 10:07:10 +02:00
Elias Naur 4da6c57d83 op: complete the MacroOp example
Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-10-14 23:18:49 +02:00
Elias Naur fa00b53e13 op: change signature of Ops.Write
By returning the allocated data buffer, Ops can become an interface
in a future change without forcing operations to allocate.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-10-14 23:10:35 +02:00
Elias Naur 88208891de op/paint,app/internal/gpu: post-process paths during GPU upload
Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-10-14 22:51:52 +02:00
Elias Naur d9100b506f op,op/paint: remove aux awareness from Ops
Aux data is now entirely confined to the writers (Path) and the
ops Reader parser.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-10-14 20:20:56 +02:00
Elias Naur 41eb3807f7 op: assume aux ops are always wrapped by a macro
Shaves off a length, and prepares for further simplification.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-10-14 20:02:14 +02:00
Elias Naur f5e93206f6 example/gophers: update gio version
Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-10-14 18:20:07 +02:00
Elias Naur 8da2c9dbb4 widget/material: change Image to take an ImageOp, not an image.Image
Using ImageOps directly avoids the image copy by NewImageOp.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-10-14 18:17:30 +02:00
Elias Naur 74407a50d5 op/paint: add NewImageOp, unexport ImageOp fields
With public ImageOp fields there was no way to mark an image.Image as modified.
Replace them with NewImageOp that always make a copy, and use the opportunity
to ensure the copy is ready to upload to a GPU texture.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-10-14 18:06:50 +02:00
Elias Naur 2e22edbb99 widget/material: remove unused function
Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-10-14 17:41:32 +02:00
Elias Naur 3a27bcea2e example: update gio version
Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-10-14 16:44:02 +02:00
Elias Naur fc521ec1ff cmd/gogio: update gio version
The path of the supporting Android Java files and iOS header file
moved.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-10-14 16:43:21 +02:00
Elias Naur b30bf3cef8 app/internal/log: extract log setup to separate package
Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-10-14 16:39:32 +02:00
Elias Naur 10c1b2cb8d app,internal/window: extract native window code to separate package
Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-10-14 16:39:32 +02:00
Elias Naur 36d1cd90f2 app,io/system: extract system events to separate package
Package app is the only package that depends on native libraries and
Cgo. Minimize its API, thereby minimizing Gio clients' dependency on
it. In the future, a headless, testing or remote "Window" should be
very easy to replace app.Window.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-10-14 16:20:20 +02:00
Elias Naur 641656b307 example/kitchen: use a different color for the disabled button
Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-10-14 15:08:26 +02:00
Elias Naur 0559393633 widget/material: don't use transparency for disabled buttons
Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-10-14 15:08:13 +02:00
Elias Naur 4475bf10bf app: disable darwin SIGPIPE workaround from Go 1.14
Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-10-14 14:21:02 +02:00
Elias Naur 52fedc27a2 app/internal/xkb: extra XKB interface to internal package
Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-10-14 11:50:44 +02:00
Elias Naur 7672c08f46 example: update gio version
Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-10-13 18:29:39 +02:00
Elias Naur 8cd4c2e5de widget/material: use font.Default
And simplify NewTheme to take no arguments.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-10-13 18:23:39 +02:00
Elias Naur 445d85efe0 font/gofont: add Go font convenience package
To use the Go font in a Gio program, import it:

import _ "gioui.org/font/gofont"

Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-10-13 18:23:30 +02:00
Elias Naur edf0d8ef99 font/opentype,text/opentype: move package
Opentype parsing, layout and shaping will be used by subpackages to package
font. Move the opentype package accordingly.

Remove the Must helper function; programs will no longer use the opentype
package in the normal case.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-10-13 18:23:30 +02:00
Elias Naur 40822ef26b font: add a central font registry
Package font holds a singleton text.Shaper for general use. Subpackages
call Register to add fonts to the registry.

The intention is that programs can add a typeface by importing a package:

import _ "gioui.org/font/gofont"

Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-10-13 18:23:30 +02:00
Elias Naur d33461dd80 text: match Bold weight to CSS, add Variant and Typeface 2019-10-13 18:23:30 +02:00
Elias Naur 481cca5781 text: use the first registered font as the default in Shaper
Before this change, the default font was the one registered with an empty
Typeface.

We're about to use the correct names for fonts, so change Shaper to
fallback to the first registered typeface instead.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-10-13 18:23:30 +02:00
Elias Naur 5a82fc9267 example/kitchen: place buttons on the same row
Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-10-12 16:52:00 +02:00
Elias Naur e1de1ba591 io/pointer: delete Foremost priority
It wasn't used, and it's not clear that it is useful at all in its current
form. For example, a single control with multiple handler keys (say, one for
scrolling and one for clicking) will only receive priority Foremost for one of
them.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-10-12 16:31:23 +02:00
Elias Naur 651e31f7e0 cmd/gogio: update gio version
Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-10-12 15:42:47 +02:00
Elias Naur 48cf8af2f2 example/kitchen: add example for demonstrating widgets and theming
Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-10-12 15:39:50 +02:00
Elias Naur 88e58a98b3 example: update gio version
Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-10-12 15:39:50 +02:00
Elias Naur abb99eca5c theme/material: add the material theme
Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-10-12 14:36:25 +02:00
Elias Naur ff3fc7a24a widget,text: move Label and Editor from text to widget package
Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-10-12 14:04:34 +02:00
Elias Naur 607d853b58 unit: add Value.Scale method
Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-10-12 14:04:34 +02:00
Elias Naur d829e56194 gesture: add Active methods to gestures
Active reports whether events are being processed. If not, widgets
can draw themselves as inactive.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-10-12 14:04:34 +02:00
Elias Naur a5b22860ac text: replace Editor.Event with Editor.Event and add Text to SubmitEvent
THe single-stepping Event was done so that SubmitEvents didn't have to
copy the text out if it wasn't needed.

This is a dubious optimization, because SubmitEvents are only generated
when Editor.Submit is true, in which case it is highly likely the user
wants the text.

Furthermore, I expect Editors with Submit enabled to be relatively short,
in the order of a message field in a chat program.

Finally, Editor will need support for undo at some point. Supporting undo
means we can support a lightweight SubmitEvent that points to an older Editor
state.

All in all (1) we gain a simpler Events method, and (2) we can allow the user
to call it before or after Editor.Layout. Before this change any the events were
gone after Layout was called.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-10-12 14:04:34 +02:00
Elias Naur d8e3d1077c text: maintain valid Editor scroll offset
No functional changes.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-10-12 14:04:34 +02:00
Elias Naur bc8ad61b54 text: remove themable properties from Editor and Label
Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-10-12 14:04:34 +02:00
Elias Naur dbb62ae0f6 text: remove padding from Editor
Before this change, the Editor computed a suitable padding for itself
from its font and text. Varying the padding according to the particular
font and text doesn't seem worth it and interferes with higher level widgets'
ability to overlay hints and the like on top of the editor.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-10-12 14:04:34 +02:00
Elias Naur f35fe407b3 text: tighten clip bounds for Editor and Label
We're about to remove the extra padding from Editor. To do that, the
clipping must account for text drawing that lie outside the viewport.

With accurate clip bounds, use it for Label as well.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-10-12 14:04:34 +02:00