Antonio Scandurra
776f7dd5a9
Add a new Hooks element to invoke a callback before layout
...
This is useful to cap the width of sidebars when dragging the
resize handles beyond the maximum bounds of the sidebar.
2021-09-03 12:18:31 +02:00
Antonio Scandurra
a0dd41cdf6
Add a Flexible element that works like in Flutter
2021-09-03 11:40:18 +02:00
Antonio Scandurra and Max Brunsfeld
3d4ff43f9e
Reset visible bounds when painting an Overlay element
...
Co-Authored-By: Max Brunsfeld <max@zed.dev >
2021-09-02 18:46:48 +02:00
Antonio Scandurra and Nathan Sobo
6a071e865f
Make Line::paint interface consistent with Line::paint_wrapped
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-09-02 14:33:52 +02:00
Antonio Scandurra and Nathan Sobo
bdc35f03f2
Paint only glyphs that intersect the visible bounds in Text
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-09-02 14:14:05 +02:00
Antonio Scandurra
0490c609fb
Introduce a visible_bounds parameter to Element::paint
...
We're not using this yet but this will be useful to avoid rendering
unnecessary portions of text.
2021-09-02 11:42:23 +02:00
Antonio Scandurra
38dc023942
Toggle sidebar items on mouse down instead of on click
2021-09-02 10:20:58 +02:00
Antonio Scandurra
4876e40a98
Reset rendered range when calling ListState::reset
2021-09-02 10:14:32 +02:00
Max Brunsfeld and Nathan Sobo
985788b855
Allow uniform margins and paddings to be specified as single numbers
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-09-01 16:14:25 -07:00
Max Brunsfeld and Nathan Sobo
848dd5f4c5
Add refreshing field to LayoutContext
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-09-01 16:02:12 -07:00
Max Brunsfeld and Nathan Sobo
894531d0e0
Fix list's scrollwheel direction
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-09-01 15:36:22 -07:00
Max Brunsfeld and Nathan Sobo
82d1fb82d2
Clean up List::layout
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-09-01 15:27:23 -07:00
Max Brunsfeld and Nathan Sobo
bfdb0f35ba
Return correct scroll top from layout when list is not full
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-09-01 14:27:38 -07:00
bc38baf241
Get randomized test passing
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
Co-Authored-By: Antonio Scandurra <me@as-cii.com >
2021-09-01 13:25:12 -07:00
Antonio Scandurra and Nathan Sobo
6e91289235
Adjust the stored scroll top during layout if it exceeds scroll max
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-09-01 17:29:26 +02:00
Antonio Scandurra and Nathan Sobo
20e18ac3ad
WIP
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-09-01 16:19:01 +02:00
Antonio Scandurra
c8d67f428d
WIP
2021-09-01 13:50:39 +02:00
Antonio Scandurra
c7a8972a57
Fix off-by-one error in StateInner::visible_range
...
I even wonder if we should keep this function around, as it feels
like it can only be called at certain times (e.g. layout) and not
after a splice or a scroll where we may not have rendered the
elements we actually need.
2021-09-01 12:20:48 +02:00
Antonio Scandurra
0a22dee764
Save last layout width in List to avoid unnecessary re-renders
2021-09-01 12:20:11 +02:00
477740360d
Start work on partial rendering for List element
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
Co-Authored-By: Antonio Scandurra <me@as-cii.com >
2021-08-31 21:57:56 -07:00
Antonio Scandurra and Nathan Sobo
2db49ce27f
Maintain logical scroll top when splicing List elements
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-08-31 16:35:57 +02:00
Antonio Scandurra and Nathan Sobo
d410ff83a7
Express scroll position with an element index and an offset
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-08-31 15:57:03 +02:00
Max Brunsfeld and Nathan Sobo
73a8fda9c7
Get the channel select looking good
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-08-30 17:59:13 -07:00
Antonio Scandurra and Nathan Sobo
ef89ceae4d
Take &mut self in View::render
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-08-30 17:51:26 +02:00
Antonio Scandurra and Nathan Sobo
917a80ec36
🎨
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-08-30 17:24:51 +02:00
Antonio Scandurra and Nathan Sobo
87cd668a33
Replace foreground layers with stacking contexts
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-08-30 17:19:03 +02:00
Antonio Scandurra
171627b63a
Add a new zero-sized Overlay element and paint it in the foreground
2021-08-30 15:42:03 +02:00
Max Brunsfeld and Nathan Sobo
bc63fca8d7
Fetch older messages when scrolling up in the chat message list
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-08-27 14:58:28 -07:00
Max Brunsfeld
5262dcd3cb
Don't change cursor on mouse move while mouse button is held down
2021-08-27 10:34:11 -07:00
5e6e0c68cd
Allow styling the cursor in MouseEventHandler
...
Co-Authored-By: Max Brunsfeld <max@zed.dev >
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-08-27 19:01:49 +02:00
Antonio Scandurra and Nathan Sobo
53dc08dfc5
Remove lock from element states
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-08-27 18:04:21 +02:00
Antonio Scandurra
8a10234b14
Introduce MouseEventHandler::on_drag
2021-08-27 14:30:08 +02:00
Max Brunsfeld
1489c865e7
Remove ui font fields from settings
2021-08-26 17:12:56 -07:00
3bb5610ad1
Overhaul handling of font families
...
* Specify font families in the theme.
* Load fonts eagerly when loading themes, instead of loading
them lazily when rendering.
Co-Authored-By: Antonio Scandurra <me@as-cii.com >
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-08-26 15:06:00 -07:00
Antonio Scandurra and Nathan Sobo
381f2499b2
Preserve scroll position of List when refreshing windows
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-08-26 16:46:28 +02:00
Antonio Scandurra and Nathan Sobo
4388c45029
Re-render all list elements when refreshing windows
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-08-26 16:36:56 +02:00
77c7fa53da
Introduce Orientation concept to List
...
When the Orientation is Bottom, we paint elements from the bottom of the list when underflowing and express scroll position relative to the bottom. In either orientation, when inserting elements outside the visible area, we adjust the scroll position as needed to keep the visible elements stable.
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com >
Co-Authored-By: Antonio Scandurra <me@as-cii.com >
2021-08-25 12:45:17 -06:00
Antonio Scandurra and Nathan Sobo
1aa1e6c6ab
Move pooling of line wrappers into FontCache
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-08-25 17:28:25 +02:00
Antonio Scandurra and Nathan Sobo
0c9e72cce7
Support hard wraps in Text element
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-08-25 16:53:26 +02:00
Antonio Scandurra
399ecaabc6
Wrap lines in Text element
2021-08-25 14:59:52 +02:00
Antonio Scandurra
463284f0af
Move LineWrapper into gpui
2021-08-25 10:43:54 +02:00
Max Brunsfeld
f404f5f32f
wip2
2021-08-24 18:09:36 -07:00
Nathan Sobo and Max Brunsfeld
33dbbf271e
WIP
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com >
2021-08-24 18:09:36 -07:00
Nathan Sobo and Max Brunsfeld
3ac489a8b6
Fix panic when scrolling non-overflowing lists
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com >
2021-08-24 17:51:37 -06:00
Max Brunsfeld
baded7d416
Start work on subscribing to model from ChatPanel
2021-08-23 17:21:06 -07:00
Max Brunsfeld
5ecedd894d
Add ChannelList to AppState
2021-08-23 15:03:45 -07:00
Max Brunsfeld and Nathan Sobo
d02eaf9e3a
Fix scrolling in List element
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-08-23 11:02:30 -07:00
Antonio Scandurra and Nathan Sobo
3543aceff3
Implement scrolling and painting for List
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-08-23 16:41:48 +02:00
Antonio Scandurra and Nathan Sobo
bd89dc4114
Perform a full layout of List when width changes
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-08-23 16:04:23 +02:00
Antonio Scandurra and Nathan Sobo
03b7c3c8c6
Implement and test splice for ListState
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-08-23 16:00:05 +02:00