mirror of
https://github.com/slint-ui/slint.git
synced 2025-09-28 21:04:47 +00:00

Updated the version from 1.1 to 1.2 Renamed the header to "Slint Royalty-free Desktop, Mobile, and Web Applications License" Added definition of "Mobile Application" and grant of right Moved "Limitations" to 3rd section and "License Conditions - Attributions" to 2nd section Added flexibility to choose between showing "MadeWithSlint" as a dialog/splash screen or on a public webpage Moved the para on copyright notices to section under "Limitations"
55 lines
1.4 KiB
Rust
55 lines
1.4 KiB
Rust
// Copyright © SixtyFPS GmbH <info@slint.dev>
|
|
// SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-1.2 OR LicenseRef-Slint-commercial
|
|
|
|
use pyo3::prelude::*;
|
|
|
|
#[pyclass(unsendable)]
|
|
pub struct PyImage {
|
|
pub image: slint_interpreter::Image,
|
|
}
|
|
|
|
#[pymethods]
|
|
impl PyImage {
|
|
#[new]
|
|
fn py_new() -> PyResult<Self> {
|
|
Ok(Self { image: Default::default() })
|
|
}
|
|
|
|
#[getter]
|
|
fn size(&self) -> PyResult<(u32, u32)> {
|
|
Ok(self.image.size().into())
|
|
}
|
|
|
|
#[getter]
|
|
fn width(&self) -> PyResult<u32> {
|
|
Ok(self.image.size().width)
|
|
}
|
|
|
|
#[getter]
|
|
fn height(&self) -> PyResult<u32> {
|
|
Ok(self.image.size().height)
|
|
}
|
|
|
|
#[getter]
|
|
fn path(&self) -> PyResult<Option<&std::path::Path>> {
|
|
Ok(self.image.path())
|
|
}
|
|
|
|
#[staticmethod]
|
|
fn load_from_path(path: std::path::PathBuf) -> Result<Self, crate::errors::PyLoadImageError> {
|
|
let image = slint_interpreter::Image::load_from_path(&path)?;
|
|
Ok(Self { image })
|
|
}
|
|
|
|
#[staticmethod]
|
|
fn load_from_svg_data(data: &[u8]) -> Result<Self, crate::errors::PyLoadImageError> {
|
|
let image = slint_interpreter::Image::load_from_svg_data(data)?;
|
|
Ok(Self { image })
|
|
}
|
|
}
|
|
|
|
impl From<&slint_interpreter::Image> for PyImage {
|
|
fn from(image: &slint_interpreter::Image) -> Self {
|
|
Self { image: image.clone() }
|
|
}
|
|
}
|