Floyd Wang
44e678b9bc
dock: Make the panel inner padding controllable ( #613 )
2025-02-10 17:55:57 +08:00
Jason Lee
327d40e0e0
chore: Upgrade GPUI 3 ( #587 )
...
The pervious version has keep on
[gpui2](https://github.com/longbridge/gpui-component/tree/gpui2 ) branch,
if there need to use.
Ref https://github.com/zed-industries/zed/pull/22632
## Prepare
### Generate index.scip
```bash
rust-analyzer scip ./ > index.scip
```
### Get [refactor](https://github.com/zed-industries/refactor )
```bash
https://github.com/zed-industries/refactor.git
```
## Refactor exist code
```bash
cd refactor
cargo run -- ~/work/gpui-component
```
Then will get result if successed:
```
Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.03s
Running `target/debug/refactor /Users/jason/work/gpui-component`
Loaded 115 SCIP documents
Processing files starting with focus path: ""
Changed 90 files
```
-------------
## Changes
```diff
- View<T>
- Model<T>
+ Entity<T>
- WeakView<T>
+ WeakEntity<T>
- FocusableView
+ Focusable
- cx.bounds()
+ window.bounds()
- cx.refresh()
+ window.refresh()
- cx.focused()
+ window.focused(cx)
- cx.with_optional_element_state
- window.with_optional_element_state
```
```diff
- &mut WindowContext
+ &mut Window, &mut App
- cx: &mut WindowContext
+ window: &mut Window, cx: &mut App
- &mut ViewContext<
+ &mut Window, &mut Context<
- cx: &mut ViewContext<
+ window: &mut Window, cx: &mut Context<
```
```diff
- cx.spawn(|_, mut cx| async move {
+ cx.spawn_in(window, |_, mut cx| async move {
- cx.dispatch_action(Box::new(...))
+ window.dispatch_action(Box::new(...), cx)
```
`cx.spawn`
```diff
- cx.spawn(|view, mut cx| async move {
+ cx.spawn_in(window, |view, mut window| async move {
+ _ = view.update_in(&mut window, move |view, window, cx| {
```
2025-01-27 03:58:48 +08:00
Floyd Wang
2aad7e412a
tag: Rename badge to tag ( #539 )
2025-01-10 10:28:47 +08:00
Floyd Wang
ceba66c22d
dock: Add PanelControl for pinning the toolbar button ( #537 )
...
<img width="387" alt="image"
src="https://github.com/user-attachments/assets/b3d3f2a8-dc4e-49e6-8e82-e7f551d70bc7 "
/>
2025-01-09 19:18:59 +08:00
Jason Lee
de42cc46a7
panel: Update Panel toolbar_buttons method to use ViewContext<Self>. ( #536 )
...
## Break changes
The `toolbar_buttons` trait method in Panel has been changed:
```diff
- fn toolbar_buttons(&self, cx: &WindowContext) -> Vec<Button>
+ fn toolbar_buttons(&self, cx: &mut ViewContext<Self>) -> Option<Vec<Button>>
```
2025-01-09 16:49:35 +08:00
Jason Lee
1a4ee348f8
dock: Add visible method to Panel trait to control panel visible. ( #503 )
...
Closes #502 #499
## Added
- Add `visible` method to `Panel` trait, if return false this panel will
disappear.
## Break changes
- Renamed `closeable` to `closable`.
- The `title_style`, `closable`, `zoomable` in `Panel` trait have been
change `cx: &WindowContext` to `cx: &AppContext`.
2024-12-20 10:21:21 +08:00
Jason Lee
4b211bfe21
panel: Add set_active, set_zoomed method to Panel trait. ( #501 )
...
It will called when the panel active, zoom state changed.
2024-12-19 10:29:58 +08:00
xda
5874c6974f
tiles: Add Tiles ( #435 )
...
## Break Changes
- Renamed `DockItemState` to `PanelState`.
- Renamed `DockItemInfo` to `PanelInfo`.
- Update `cx` type from `WindowContext` to `AppContext` for Panel trait
`panel_name` method.
## TODO
- [ ] Support merge panels into TabPanel.
- [ ] Support split panels into Tile.
---------
Co-authored-by: Jason Lee <huacnlee@gmail.com>
2024-12-16 20:33:14 +08:00
Jason Lee
36dcc53824
dock: Add set_dock_collapsible to support setting the Docks to be collapsible or not. ( #445 )
...
Close #442
In this case, the left Dock is not collapsible:
<img width="1165" alt="image"
src="https://github.com/user-attachments/assets/21422cdd-d686-4931-9285-925b8e8d3343 ">
2024-11-27 21:34:44 +08:00
Jason Lee
7fe91e4e12
dock: Add panel_style to support always show TabBar. ( #444 )
...
Close #441
```rs
DockArea::new(MAIN_DOCK_AREA.id, Some(MAIN_DOCK_AREA.version), cx).panel_style(PanelStyle::TabBar)
```
<img width="1433" alt="image"
src="https://github.com/user-attachments/assets/2013188e-990b-4709-ac7e-43c2de8bc895 ">
2024-11-27 21:34:27 +08:00
Jason Lee
5149b8a714
panel: Add toolbar_buttons to extend button to panel. ( #406 )
...
<img width="635" alt="image"
src="https://github.com/user-attachments/assets/42dc1cb4-a1dd-43c6-8fc3-9d404e86cb85 ">
2024-11-10 23:17:34 +08:00
Jason Lee
a798bd81c6
chore: Fix typos. ( #364 )
2024-10-18 14:30:24 +08:00
Jason Lee
0220cf8cc6
dock: Add version to DockArea to allow us check the persisted state is need to update. ( #323 )
2024-10-08 20:46:12 +08:00
Jason Lee
ca5a0e02d5
dock: Add to support save left, right, bottom dock state. ( #303 )
...
The dock state have been updated to use `DockAreaState`.
2024-10-03 17:25:31 +08:00
Jason Lee
2d6f478512
dock: Add zoomable support to Panel. ( #269 )
2024-09-24 22:37:29 +08:00
Jason Lee
3fc0b70639
dock: Keep invalid panel state info avoid missing the state. ( #267 )
...
Fix #257
2024-09-23 22:43:02 +08:00
Jason Lee
ce87c3a001
modal: Improve Modal and Panel focus handle. ( #238 )
...
- modal: Improve modal focus take, when modal close, make sure focus
back.
- modal: Fix hover close button will cross to back modal on multiple
modal layer.
- panel: Add focus handle to Panel and TabPanel.
- panel: Update title method to return `AnyElement`.
2024-09-12 19:51:33 +08:00
Jason Lee
840a54850a
Update register_panel to use trait object Fn. ( #229 )
2024-09-09 19:19:27 +08:00
Jason Lee
d6d00f59a2
Add dump default impl for Panel trait.
2024-09-09 14:38:52 +08:00
Jason Lee
33f0291f6d
Improve layout save details for example app.
2024-09-09 14:03:51 +08:00
Jason Lee
bf134b2ff9
Add to support dump/load Dock layout. ( #226 )
2024-09-09 13:30:22 +08:00
Floyd Wang
d6015f636c
panel: Support custom style for the panel title ( #220 )
2024-09-05 11:36:59 +08:00
Jason Lee
0158083599
dock: Fix panel zoom sometimes is not work. #197 ( #211 )
...
This is because the `PanelEvent::ZoomIn` is called 2 times when we click
the menu (I don't why, not found the source).
So just split Zoom in, Zoom out as two difference methods to avoid this.
2024-09-03 23:15:44 +08:00
Jason Lee
af09525c1e
dock: Add popup_menu delegate to custom panel menu. ( #202 )
2024-09-02 14:55:37 +08:00
Jason Lee
c5c8e46ac7
New Dock ( #172 )
...
https://github.com/user-attachments/assets/c8c55faa-8f17-4fa2-9f62-5fdd598087ef
- [x] Move to insert panel to tabs middle.
- [x] Zoom panel
- [x] Tab popup menu (Close Panel, Split, Zoom in/Zoom out)
- [x] TabBar scrollable
- [ ] TabBar nav history
2024-08-23 18:01:29 +08:00