mirror of
https://github.com/slint-ui/slint.git
synced 2025-10-01 14:21:16 +00:00
Rename the "resource" type to "image"
This commit is contained in:
parent
44e81a40d6
commit
c840b046ae
14 changed files with 21 additions and 19 deletions
|
@ -7,6 +7,7 @@ All notable changes to this project will be documented in this file.
|
||||||
- `Rectangle::color` was deprecated and replaced by `Rectangle::background`, same for `Window::color`
|
- `Rectangle::color` was deprecated and replaced by `Rectangle::background`, same for `Window::color`
|
||||||
- `Path::fill-color` was renamed to `fill`, and `Path::stroke-color` was renamed to `stroke`, which are now brushes instead of color
|
- `Path::fill-color` was renamed to `fill`, and `Path::stroke-color` was renamed to `stroke`, which are now brushes instead of color
|
||||||
- Many other color property became brush in order to support gradients
|
- Many other color property became brush in order to support gradients
|
||||||
|
- the `resource` type was renamed to `image`
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
- `@linear-gradient` can be used to have gradients on rectangle and paths
|
- `@linear-gradient` can be used to have gradients on rectangle and paths
|
||||||
|
|
|
@ -209,7 +209,7 @@ fn to_eval_value<'cx>(
|
||||||
Ok(Value::Model(sixtyfps_interpreter::ModelPtr(m)))
|
Ok(Value::Model(sixtyfps_interpreter::ModelPtr(m)))
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
Type::Resource => {
|
Type::Image => {
|
||||||
Ok(Value::Resource(Resource::AbsoluteFilePath(val.to_string(cx)?.value().into())))
|
Ok(Value::Resource(Resource::AbsoluteFilePath(val.to_string(cx)?.value().into())))
|
||||||
}
|
}
|
||||||
Type::Bool => Ok(Value::Bool(val.downcast_or_throw::<JsBoolean, _>(cx)?.value())),
|
Type::Bool => Ok(Value::Bool(val.downcast_or_throw::<JsBoolean, _>(cx)?.value())),
|
||||||
|
|
|
@ -198,6 +198,7 @@ All properties in elements have a type. The following types are supported:
|
||||||
| `angle` | Angle mesurement, corresponds to a literal like `90deg`, `1.2rad`, `0.25turn` |
|
| `angle` | Angle mesurement, corresponds to a literal like `90deg`, `1.2rad`, `0.25turn` |
|
||||||
| `easing` | Property animation allow specifying an easing curve. Valid values are `linear` (values are interpolated linearly) and the [four common cubiz-bezier functions known from CSS](https://developer.mozilla.org/en-US/docs/Web/CSS/easing-function#Keywords_for_common_cubic-bezier_easing_functions): `ease`, `ease_in`, `ease_in_out`, `ease_out`. |
|
| `easing` | Property animation allow specifying an easing curve. Valid values are `linear` (values are interpolated linearly) and the [four common cubiz-bezier functions known from CSS](https://developer.mozilla.org/en-US/docs/Web/CSS/easing-function#Keywords_for_common_cubic-bezier_easing_functions): `ease`, `ease_in`, `ease_in_out`, `ease_out`. |
|
||||||
| `percent` | Signed, 32-bit floating point number that is interpreted as percentage. Literal number assigned to properties of this type must have a `%` suffix. |
|
| `percent` | Signed, 32-bit floating point number that is interpreted as percentage. Literal number assigned to properties of this type must have a `%` suffix. |
|
||||||
|
| `image` | A reference to an image, can be initialized with the `@image-url("...")` construct |
|
||||||
|
|
||||||
Please see the language specific API references how these types are mapped to the APIs of the different programming languages.
|
Please see the language specific API references how these types are mapped to the APIs of the different programming languages.
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
LICENSE END */
|
LICENSE END */
|
||||||
|
|
||||||
struct TileData := {
|
struct TileData := {
|
||||||
image: resource,
|
image: image,
|
||||||
image_visible: bool,
|
image_visible: bool,
|
||||||
solved: bool,
|
solved: bool,
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,7 @@ MemoryTile := Rectangle {
|
||||||
callback clicked;
|
callback clicked;
|
||||||
property <bool> open_curtain;
|
property <bool> open_curtain;
|
||||||
property <bool> solved;
|
property <bool> solved;
|
||||||
property <resource> icon;
|
property <image> icon;
|
||||||
|
|
||||||
background: solved ? #34CE57 : #3960D5;
|
background: solved ? #34CE57 : #3960D5;
|
||||||
animate background { duration: 800ms; }
|
animate background { duration: 800ms; }
|
||||||
|
|
|
@ -115,7 +115,7 @@ export Label := Text {
|
||||||
|
|
||||||
SquareButton := Rectangle {
|
SquareButton := Rectangle {
|
||||||
callback clicked;
|
callback clicked;
|
||||||
property<resource> img;
|
property<image> img;
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
border-width: 2px;
|
border-width: 2px;
|
||||||
border-color: DemoPalette.control_outline_color;
|
border-color: DemoPalette.control_outline_color;
|
||||||
|
@ -231,7 +231,7 @@ export CheckBox := Rectangle {
|
||||||
export PushButton := Rectangle {
|
export PushButton := Rectangle {
|
||||||
callback clicked;
|
callback clicked;
|
||||||
property <string> text <=> label.text;
|
property <string> text <=> label.text;
|
||||||
property <resource> icon <=> img.source;
|
property <image> icon <=> img.source;
|
||||||
property <bool> primary: true;
|
property <bool> primary: true;
|
||||||
property <bool> pressed: touch_area.pressed;
|
property <bool> pressed: touch_area.pressed;
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@ import { UsbPage } from "./usb_page.60";
|
||||||
|
|
||||||
ActionButton := Rectangle {
|
ActionButton := Rectangle {
|
||||||
|
|
||||||
property <resource> icon <=> img.source;
|
property <image> icon <=> img.source;
|
||||||
property <string> text <=> label.text;
|
property <string> text <=> label.text;
|
||||||
callback clicked;
|
callback clicked;
|
||||||
|
|
||||||
|
|
|
@ -37,7 +37,7 @@ BorderRectangle := Rectangle {
|
||||||
export { BorderRectangle as Rectangle }
|
export { BorderRectangle as Rectangle }
|
||||||
|
|
||||||
Image := _ {
|
Image := _ {
|
||||||
property <resource> source;
|
property <image> source;
|
||||||
property <length> x;
|
property <length> x;
|
||||||
property <length> y;
|
property <length> y;
|
||||||
property <length> width;
|
property <length> width;
|
||||||
|
|
|
@ -493,7 +493,7 @@ impl Expression {
|
||||||
_ => Type::Invalid,
|
_ => Type::Invalid,
|
||||||
},
|
},
|
||||||
Expression::SelfAssignment { .. } => Type::Void,
|
Expression::SelfAssignment { .. } => Type::Void,
|
||||||
Expression::ResourceReference { .. } => Type::Resource,
|
Expression::ResourceReference { .. } => Type::Image,
|
||||||
Expression::Condition { condition: _, true_expr, false_expr } => {
|
Expression::Condition { condition: _, true_expr, false_expr } => {
|
||||||
let true_type = true_expr.ty();
|
let true_type = true_expr.ty();
|
||||||
let false_type = false_expr.ty();
|
let false_type = false_expr.ty();
|
||||||
|
@ -959,7 +959,7 @@ impl Expression {
|
||||||
Type::LogicalLength => Expression::NumberLiteral(0., Unit::Px),
|
Type::LogicalLength => Expression::NumberLiteral(0., Unit::Px),
|
||||||
Type::Percent => Expression::NumberLiteral(100., Unit::Percent),
|
Type::Percent => Expression::NumberLiteral(100., Unit::Percent),
|
||||||
// FIXME: Is that correct?
|
// FIXME: Is that correct?
|
||||||
Type::Resource => {
|
Type::Image => {
|
||||||
Expression::ResourceReference(ResourceReference::AbsolutePath(String::new()))
|
Expression::ResourceReference(ResourceReference::AbsolutePath(String::new()))
|
||||||
}
|
}
|
||||||
Type::Bool => Expression::BoolLiteral(false),
|
Type::Bool => Expression::BoolLiteral(false),
|
||||||
|
|
|
@ -252,7 +252,7 @@ impl CppType for Type {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Type::Array(i) => Some(format!("std::shared_ptr<sixtyfps::Model<{}>>", i.cpp_type()?)),
|
Type::Array(i) => Some(format!("std::shared_ptr<sixtyfps::Model<{}>>", i.cpp_type()?)),
|
||||||
Type::Resource => Some("sixtyfps::Resource".to_owned()),
|
Type::Image => Some("sixtyfps::Resource".to_owned()),
|
||||||
Type::Builtin(elem) => elem.native_class.cpp_type.clone(),
|
Type::Builtin(elem) => elem.native_class.cpp_type.clone(),
|
||||||
Type::Enumeration(enumeration) => Some(format!("sixtyfps::{}", enumeration.name)),
|
Type::Enumeration(enumeration) => Some(format!("sixtyfps::{}", enumeration.name)),
|
||||||
Type::Brush => Some("sixtyfps::Brush".to_owned()),
|
Type::Brush => Some("sixtyfps::Brush".to_owned()),
|
||||||
|
|
|
@ -39,7 +39,7 @@ fn rust_type(
|
||||||
Type::LogicalLength => Ok(quote!(f32)),
|
Type::LogicalLength => Ok(quote!(f32)),
|
||||||
Type::Percent => Ok(quote!(f32)),
|
Type::Percent => Ok(quote!(f32)),
|
||||||
Type::Bool => Ok(quote!(bool)),
|
Type::Bool => Ok(quote!(bool)),
|
||||||
Type::Resource => Ok(quote!(sixtyfps::re_exports::Resource)),
|
Type::Image => Ok(quote!(sixtyfps::re_exports::Resource)),
|
||||||
Type::Object { fields, name: None } => {
|
Type::Object { fields, name: None } => {
|
||||||
let elem =
|
let elem =
|
||||||
fields.values().map(|v| rust_type(v, span)).collect::<Result<Vec<_>, _>>()?;
|
fields.values().map(|v| rust_type(v, span)).collect::<Result<Vec<_>, _>>()?;
|
||||||
|
|
|
@ -47,7 +47,7 @@ pub enum Type {
|
||||||
LogicalLength,
|
LogicalLength,
|
||||||
Angle,
|
Angle,
|
||||||
Percent,
|
Percent,
|
||||||
Resource,
|
Image,
|
||||||
Bool,
|
Bool,
|
||||||
Model,
|
Model,
|
||||||
PathElements,
|
PathElements,
|
||||||
|
@ -92,7 +92,7 @@ impl core::cmp::PartialEq for Type {
|
||||||
Type::Length => matches!(other, Type::Length),
|
Type::Length => matches!(other, Type::Length),
|
||||||
Type::LogicalLength => matches!(other, Type::LogicalLength),
|
Type::LogicalLength => matches!(other, Type::LogicalLength),
|
||||||
Type::Percent => matches!(other, Type::Percent),
|
Type::Percent => matches!(other, Type::Percent),
|
||||||
Type::Resource => matches!(other, Type::Resource),
|
Type::Image => matches!(other, Type::Image),
|
||||||
Type::Bool => matches!(other, Type::Bool),
|
Type::Bool => matches!(other, Type::Bool),
|
||||||
Type::Model => matches!(other, Type::Model),
|
Type::Model => matches!(other, Type::Model),
|
||||||
Type::PathElements => matches!(other, Type::PathElements),
|
Type::PathElements => matches!(other, Type::PathElements),
|
||||||
|
@ -153,7 +153,7 @@ impl Display for Type {
|
||||||
Type::LogicalLength => write!(f, "logical_length"),
|
Type::LogicalLength => write!(f, "logical_length"),
|
||||||
Type::Percent => write!(f, "percent"),
|
Type::Percent => write!(f, "percent"),
|
||||||
Type::Color => write!(f, "color"),
|
Type::Color => write!(f, "color"),
|
||||||
Type::Resource => write!(f, "resource"),
|
Type::Image => write!(f, "image"),
|
||||||
Type::Bool => write!(f, "bool"),
|
Type::Bool => write!(f, "bool"),
|
||||||
Type::Model => write!(f, "model"),
|
Type::Model => write!(f, "model"),
|
||||||
Type::Array(t) => write!(f, "[{}]", t),
|
Type::Array(t) => write!(f, "[{}]", t),
|
||||||
|
@ -209,7 +209,7 @@ impl Type {
|
||||||
| Self::Length
|
| Self::Length
|
||||||
| Self::LogicalLength
|
| Self::LogicalLength
|
||||||
| Self::Percent
|
| Self::Percent
|
||||||
| Self::Resource
|
| Self::Image
|
||||||
| Self::Bool
|
| Self::Bool
|
||||||
| Self::Model
|
| Self::Model
|
||||||
| Self::Easing
|
| Self::Easing
|
||||||
|
@ -424,7 +424,7 @@ impl Type {
|
||||||
Type::Int32 => None,
|
Type::Int32 => None,
|
||||||
Type::String => None,
|
Type::String => None,
|
||||||
Type::Color => None,
|
Type::Color => None,
|
||||||
Type::Resource => None,
|
Type::Image => None,
|
||||||
Type::Bool => None,
|
Type::Bool => None,
|
||||||
Type::Model => None,
|
Type::Model => None,
|
||||||
Type::PathElements => None,
|
Type::PathElements => None,
|
||||||
|
|
|
@ -116,7 +116,7 @@ impl TypeRegister {
|
||||||
register.insert_type(Type::LogicalLength);
|
register.insert_type(Type::LogicalLength);
|
||||||
register.insert_type(Type::Color);
|
register.insert_type(Type::Color);
|
||||||
register.insert_type(Type::Duration);
|
register.insert_type(Type::Duration);
|
||||||
register.insert_type(Type::Resource);
|
register.insert_type(Type::Image);
|
||||||
register.insert_type(Type::Bool);
|
register.insert_type(Type::Bool);
|
||||||
register.insert_type(Type::Model);
|
register.insert_type(Type::Model);
|
||||||
register.insert_type(Type::Percent);
|
register.insert_type(Type::Percent);
|
||||||
|
|
|
@ -785,7 +785,7 @@ fn generate_component<'id>(
|
||||||
Type::Angle => animated_property_info::<f32>(),
|
Type::Angle => animated_property_info::<f32>(),
|
||||||
Type::Length => animated_property_info::<f32>(),
|
Type::Length => animated_property_info::<f32>(),
|
||||||
Type::LogicalLength => animated_property_info::<f32>(),
|
Type::LogicalLength => animated_property_info::<f32>(),
|
||||||
Type::Resource => property_info::<Resource>(),
|
Type::Image => property_info::<Resource>(),
|
||||||
Type::Bool => property_info::<bool>(),
|
Type::Bool => property_info::<bool>(),
|
||||||
Type::Callback { .. } => {
|
Type::Callback { .. } => {
|
||||||
custom_callbacks.insert(name.clone(), builder.add_field_type::<Callback>());
|
custom_callbacks.insert(name.clone(), builder.add_field_type::<Callback>());
|
||||||
|
|
|
@ -11,5 +11,5 @@ LICENSE END */
|
||||||
// Test that @image-url("") compiles
|
// Test that @image-url("") compiles
|
||||||
|
|
||||||
TestCase := Rectangle {
|
TestCase := Rectangle {
|
||||||
property <resource> test: @image-url("");
|
property <image> test: @image-url("");
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue