Commit graph

946 commits

Author SHA1 Message Date
Olivier Goffart
281a744e86 Load the builtin from a fake .60 file 2020-11-04 16:56:35 +01:00
Olivier Goffart
8a95b806c7 Strawman implementation of a combo box 2020-11-03 17:55:49 +01:00
Olivier Goffart
59707f068c add a enabled property on the line edit 2020-11-02 18:20:01 +01:00
Olivier Goffart
a82c23fc41 Add ability for the native style to export native Globals 2020-11-02 16:13:04 +01:00
Olivier Goffart
d2255327fe Properties: make sure that the falue is different before marking all dependencies dirty
Fix the animation of the gauge in the printer demo
2020-10-31 12:58:11 +01:00
Olivier Goffart
608ba95f9e Fix wasm warning 2020-10-31 11:58:10 +01:00
Simon Hausmann
c3ba5a0808 Clean up NativeButton
Eliminate native_button_enabled
2020-10-30 16:28:06 +01:00
Simon Hausmann
6b7630963f Add support for disabling a Button
This also removes the funny binding on the button in the gallery.
UI wise it's confusing that a button changes its size when pressed, and we can
show off bindings somewhere else :-)
2020-10-30 15:55:18 +01:00
Simon Hausmann
7e305a53fe Fix rendering of NativeButton and NativeCheckBox
* Set the Enabled state throughout the "widgets". This corrects the visual appearance of Button and CheckBox in particular.
* Render a button that's not down as raised, in order to show its outline.
2020-10-30 15:55:18 +01:00
Simon Hausmann
7d3337e1d1 Add missing comment I forgot to stage 2020-10-29 14:56:26 +01:00
Simon Hausmann
aa303d29c5 Fix rendering of scrollbars on macOS
The NSScroller is drawn completely disregarding the painter's translation.

So this patch goes for an intermediate image buffer instead.
2020-10-29 14:53:16 +01:00
Simon Hausmann
f010f62ad2 Remove dead code
The Q_WS_MAC pre-processor macro does not exist anymore. The original
reason for the widget was erroneously applied - the cocoa controls
themselves are NSViews and it's just that the backing store view in the
style will be nil -- that seems to make no visual difference though.
2020-10-29 14:47:53 +01:00
Simon Hausmann
42f11b3270 Fix rendering of integer aligned solid fill rectangles
Without a border radius they should have sharp edges when
aligned on integer coordinates.
2020-10-27 19:30:22 +01:00
Olivier Goffart
47be71e16d Introduce layout stretching 2020-10-26 16:40:35 +01:00
Olivier Goffart
20cfb65e53 Bump version 2020-10-22 08:41:45 +02:00
Olivier Goffart
9f08492258 Make sure that the ListView is not scrolled when there is enough room for all contents
Fixes #93
2020-10-21 09:47:33 +02:00
Simon Hausmann
a98da9ecc9 Draw rounded rectangles with anti-aliasing
Draw rounded rectangles using a distance function. This removes the need
to use lyon to tesselate the rounded corners and as a bonus it gives
anti-aliased borders.
2020-10-21 09:35:35 +02:00
Simon Hausmann
ccb57114ce Clean up cursor rectangle handling
Generalize this to be called a normalized rectangle and create it by hand.
2020-10-21 08:15:16 +02:00
Olivier Goffart
e46e0b683c Fix the size of the native CheckBox 2020-10-20 19:00:40 +02:00
Simon Hausmann
1887b37af7 Remove premultiply_alpha from ARGBColor again
It's not safe to use with ARGBColor<u8> because of overflows, so instead let's
use it in the place where we need it and where the precision is given.
2020-10-19 18:45:33 +02:00
Simon Hausmann
6dd08b2109 Fix color blending when using the alpha channel
Given choice of ONE_MINUS_SRC_ALPHA blending function, we assume not
only that textures are pre-multiplied with their alpha (see commit
bf396ad578), the same applies also to
flat colors.

This fixes blending such as this:

    App := Window {
        Text {
            text: "Hello World";
        }
        Rectangle {
            color: #ff335588;
            width: 100%;
            height: 100%;
        }
    }
2020-10-19 17:21:03 +02:00
Olivier Goffart
2f9bc39010 Qt style: use a shared array everywhere 2020-10-19 11:52:03 +02:00
Olivier Goffart
b60567d7f2 Qt style: Use an QImage that is backed by a SharedArray
This way we have one copy less of the data
2020-10-19 11:35:57 +02:00
Olivier Goffart
7984e45a1f Fix ListView snapping to the bottom instead of the top
When there are not enough elements to fill the viewport
2020-10-16 11:21:59 +02:00
Olivier Goffart
e4e601de83 Draw the frame properly around the native scrollview 2020-10-16 10:45:17 +02:00
Simon Hausmann
93df708d87 Fix clipping in the wasm demos
Enable the stencil buffer on the WebGL context attributes.
2020-10-15 07:42:33 +02:00
Simon Hausmann
f43118cc89 Remove obsolete comment 2020-10-15 07:31:57 +02:00
Simon Hausmann
41d3fe940a Use a released version of glow 2020-10-15 07:29:15 +02:00
Olivier Goffart
d57ad389e0 Default to the native style in the viewer if it is available 2020-10-14 14:51:47 +02:00
Olivier Goffart
e48f0b7621 Add a current item to the StandardListView 2020-10-14 14:32:18 +02:00
Olivier Goffart
478bae93e1 Fix native scroolbar looking like sliders :-/ 2020-10-13 14:37:48 +02:00
Olivier Goffart
914ec61063 Revert "Temporarily disable fetching URL on wasm"
This reverts commit 49d75e0422.
2020-10-13 11:31:18 +02:00
Olivier Goffart
49d75e0422 Temporarily disable fetching URL on wasm
We cannot depends on an unreleased version of glow for publishing
2020-10-13 10:31:34 +02:00
Olivier Goffart
5a78776170 Add a version in Cargo.toml to be sure that the crate can be published 2020-10-13 10:19:14 +02:00
Olivier Goffart
4d4aa81007 Revert the commit than pins aho-corasick version
This reverts commit 0c8a31211e.

aho-corasick 0.7.14
2020-10-13 07:57:02 +02:00
Olivier Goffart
1138c9dbed Normalize the spelling of SixtyFPS 2020-10-13 07:48:55 +02:00
Simon Hausmann
2f7839e326 Remove unused BuiltinItem derivation
It's not needed :-)
2020-10-12 18:21:36 +02:00
Simon Hausmann
e1fdef73b1 Remove unused data structure
Added accidentally in parent commit
2020-10-12 18:20:25 +02:00
Simon Hausmann
805ba494ba Fix native padding calculation for NativeLineEdit
Similar to the parent commit, don't calculate the native_padding_* as a side-effect of calling
layout_info(), but calculate it property through a binding.
2020-10-12 16:49:44 +02:00
Simon Hausmann
fa982b9380 Fix calculation of native group box padding
Setting the value of the native_padding_{left, right, top, bottom}
properties *during* the layout_info() call is too late, as the calling
compute_layout implementation has already queried for those properties.

Instead, this patch moves the padding calculation into a shared property
binding that's queried from bindings to the individual native_padding_*
properties and layout_info() just uses the properties, too.
2020-10-12 16:49:44 +02:00
Simon Hausmann
a37d42fa0e Add an init function to the Item vtable
This will be called by the run-time and will allow items to set up
bindings that rely on internals that should not be exposed to the
compiler/runtime.
2020-10-12 16:49:44 +02:00
Simon Hausmann
0c8a31211e Work around build failure on macOS
I keep running into https://github.com/BurntSushi/aho-corasick/issues/64
on macOS, so pin aho-corasick to 0.7.4.
2020-10-12 14:46:21 +02:00
Olivier Goffart
cae0503fbb Update outdated dependencies 2020-10-12 10:29:07 +02:00
Olivier Goffart
9a909142a8 Disable wayland dependency by default 2020-10-10 16:10:22 +02:00
Olivier Goffart
9dbe1f874f One need image 0.23.10 to use image::ImageBuffer::as_raw 2020-10-09 12:08:18 +02:00
Simon Hausmann
51f9fc0e61 Refresh the window when loading of an HTML image completed 2020-10-09 10:44:15 +02:00
Simon Hausmann
f4b6eea646 Implement the rest of the dynamic image loading for the online editor
This works except that there's a mechanism missing for refreshing the
canvas when the image was loaded.
2020-10-09 10:10:48 +02:00
Simon Hausmann
785f23f01a Make the tex__image_2d call work
* Set cross origin for the image to "anonymous" to ask the server for permission
* Pass RGBA as internal format
2020-10-09 09:57:45 +02:00
Olivier Goffart
6c9f0691aa WIP: Attempt to get image loading in wasm
Not working
2020-10-09 09:57:45 +02:00
Simon Hausmann
0f07684fcf Clean up GLFrame::render_primitive
Move the main match out into a separate helper function in GLFrame and
keep render_primitive to just be the loop. This will also make it easier
to implement the dynamic primitives later.
2020-10-09 09:56:32 +02:00