Commit Graph
38 Commits
Author SHA1 Message Date
Marshall Bowers fe3c833a71 Rework loading images from files (#7088)
This PR is a follow-up to #7084, where I noted that I wasn't satisfied
with using `SharedUri` to represent both URIs and paths on the local
filesystem:

> I'm still not entirely happy with this naming, as the file paths that
we can store in here are not _really_ URIs, as they are lacking a
protocol.
>
> I want to explore changing `SharedUri` / `SharedUrl` back to alway
storing a URL and treat local filepaths differently, as it seems we're
conflating two different concerns under the same umbrella, at the
moment.

`SharedUri` has now been reverted to just containing a `SharedString`
with a URI.

`ImageSource` now has a new `File` variant that is used to load an image
from a `PathBuf`.

Release Notes:

- N/A
2024-01-30 11:26:02 -05:00
Marshall Bowers f6b5ea4277 Rename SharedUrl to SharedUri (#7084)
This PR renames `SharedUrl` to `SharedUri` to better reflect its intent.

I'm still not entirely happy with this naming, as the file paths that we
can store in here are not _really_ URIs, as they are lacking a protocol.

I want to explore changing `SharedUri` / `SharedUrl` back to alway
storing a URL and treat local filepaths differently, as it seems we're
conflating two different concerns under the same umbrella, at the
moment.

Release Notes:

- N/A
2024-01-30 09:54:23 -05:00
Bennet Bo Fenner 7b53c4db5c gpui: Support loading image from filesystem (#6978)
This PR implements support for loading and displaying images from a
local file using gpui's `img` element.

API Changes:
- Changed `SharedUrl` to `SharedUrl::File`, `SharedUrl::Network`

Usage:
```rust
// load from network
img(SharedUrl::network(...)) // previously img(SharedUrl(...)

// load from filesystem
img(SharedUrl::file(...))
```

This will be useful when implementing markdown image support, because we
need to be able to render images from the filesystem (relative/absolute
path), e.g. when implementing markdown preview #5064.

I also added an example `image` to the gpui crate, let me know if this
is useful. Showcase:
<img width="872" alt="image"
src="https://github.com/zed-industries/zed/assets/53836821/b4310a26-db81-44fa-9a7b-61e7d0ad4349">

**Note**: The example is fetching images from [Lorem
Picsum](https://picsum.photos) ([Github
Repo](https://github.com/DMarby/picsum-photos)), which is a free
resource for fetching images in a specific size. Please let me know if
you're okay with using this in the example.
2024-01-29 21:56:51 -08:00
Sean Aye 0a5d2779b5 gpui: Add hello world example (#6465)
Added hello world example to the gpui crate copied from https://gpui.rs

Release Notes:

- N/A
2024-01-25 01:03:53 -05:00
Nathan Sobo 5e2b5d124b More adjustments for blog post 2024-01-18 07:01:46 -07:00
Nathan Sobo 7dbafcfc3b Add ownership post example 2024-01-17 21:19:28 -07:00
Max BrunsfeldandMikayla 75f0670dd6 Remove 2 suffix from gpui
Co-authored-by: Mikayla <mikayla@zed.dev>
2024-01-03 12:59:39 -08:00
Nathan Sobo b2968c2d11 Eliminate PaintContext 2023-09-11 09:00:59 -06:00
Nathan Sobo 950ac4fbc6 Eliminate LayoutContext 2023-09-11 08:47:00 -06:00
Nathan Sobo 20da2b4621 Checkpoint 2023-09-08 16:25:10 -06:00
Mikayla 7f16fb40ca Merge branch 'main' into disclosable-component 2023-08-23 16:30:27 -07:00
Nathan Sobo ec9bebc7f4 Merge branch 'main' into divs 2023-08-22 16:35:56 -06:00
Mikayla e24c757784 Finish building out adapters and names
Document core traits
Add start for a component storybook
2023-08-19 14:40:05 -07:00
Mikayla 8f0aa2b056 Add disclosable components into channels
Rename components to more closely match their purpose
2023-08-19 05:18:53 -07:00
Mikayla 7167bf969f Actually get it compiling, omg 2023-08-18 19:02:27 -07:00
Mikayla ac4dfa6c16 Move the collab panel to the left by default
Increase the indent size on channels
Switch font UI mono
2023-08-18 15:04:22 -07:00
Mikayla 5f9984e246 move component into gpui 2023-08-15 15:44:59 -07:00
Max BrunsfeldandMikayla 07f71c67b5 Simplify Component implementation
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-15 15:26:02 -07:00
Mikayla ec2490269d Add components example
Re-arrange generics on mouse event handler
Add TypeTag struct for dynamically tagged components
2023-08-15 03:06:43 -07:00
Nathan SoboandMikayla Maki 64f61d293a Merge branch 'main' into taffy
Co-Authored-By: Mikayla Maki <mikayla@zed.dev>
2023-08-14 13:50:21 -06:00
Nathan Sobo 2b87398bf4 Include drop shadows with different corner radii in the example 2023-08-12 11:08:58 -06:00
Nathan Sobo 56ba5b7edb Wire up per corner radii for quad
Still need to expose this in the styling layer and allow images
to have per corner radii.
2023-08-12 10:40:23 -06:00
Nathan Sobo 2db14b6c92 WIP 2023-07-26 12:54:23 -06:00
Max Brunsfeld 2dedae9c38 Generalize Text element to let you add arbitrary scene primitives for runs of text 2023-04-27 13:58:06 -07:00
Max Brunsfeld 68fef38e14 Add API for adding mouse regions within Text 2023-04-26 12:00:26 -07:00
Nathan SoboandMax Brunsfeld 52d4cc5349 Refine naming of element-related types and traits
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2023-04-21 13:06:37 -06:00
2bd56ab6f0 Rename Drawable::boxed to into_element and make containers generic
Multi-element are now generic over any drawable child, which can be converted
into an element.

Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2023-04-21 12:43:19 -06:00
Nathan Sobo f5a86aecdc WIP 2023-04-12 12:13:35 -06:00
Nathan Sobo fabf89a1b1 WIP 2023-04-11 18:21:56 -06:00
Antonio Scandurra 3d6ac2ae58 Don't make fonts::Features Copy 2023-03-17 13:54:56 +01:00
Antonio Scandurra 22cd32e1bc WIP: Allow specifying font features in the editor
This just lays the foundation for threading through a `fonts::Features`
struct, but it's not used yet.
2023-03-17 09:51:36 +01:00
Nathan Sobo f26a6179b4 Remove dispatch_event from Element trait 2022-10-16 13:08:25 -06:00
ForLoveOfCatsandMikayla fbea44bc5c One big cleanup pass of clippy lints
Co-authored-by: Mikayla <mikayla@zed.dev>
2022-08-10 16:51:01 -07:00
Antonio Scandurra 379f8887ba Position IME input according to where the selection is rendered 2022-07-21 17:35:40 +02:00
Antonio Scandurra 4ab12722bf Pass visible bounds to Element::dispatch_event 2022-04-07 15:10:09 +02:00
Antonio Scandurra 6013fb8d0f Make all HighlightStyle properties optional
Previously, some of those properties such the font weight, style and color
would be mandatory: when the theme didn't specify them, Zed would use a default
value during deserialization. This meant that those default properties would
unconditionally override the base text style, causing a rendering bug when
combining syntax highlights with diagnostic styles.

This commit fixes that by making `HighlightStyle`s more additive: each property
can be set independently and only the properties that theme specifies get
overridden in the base text style.
2022-03-15 10:39:43 +01:00
Max BrunsfeldandNathan Sobo cfedba9f1c Allow underlines to have different color than the text
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-10-26 12:46:46 -07:00
Nathan SoboandMax Brunsfeld a1b11e8907 Move all crates to a top-level crates folder
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-10-04 13:22:21 -06:00