Skip to content

Commit

Permalink
Add TableBuilder::drag_to_scroll (#3100)
Browse files Browse the repository at this point in the history
* Add TableBuilder::drag_to_scroll

* Add reference to ScrollArea::drag_to_scroll
  • Loading branch information
KYovchevski authored Aug 14, 2023
1 parent dbe55ba commit 043183a
Showing 1 changed file with 12 additions and 0 deletions.
12 changes: 12 additions & 0 deletions crates/egui_extras/src/table.rs
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,7 @@ fn to_sizing(columns: &[Column]) -> crate::sizing::Sizing {

struct TableScrollOptions {
vscroll: bool,
drag_to_scroll: bool,
stick_to_bottom: bool,
scroll_to_row: Option<(usize, Option<Align>)>,
scroll_offset_y: Option<f32>,
Expand All @@ -171,6 +172,7 @@ impl Default for TableScrollOptions {
fn default() -> Self {
Self {
vscroll: true,
drag_to_scroll: true,
stick_to_bottom: false,
scroll_to_row: None,
scroll_offset_y: None,
Expand Down Expand Up @@ -273,6 +275,14 @@ impl<'a> TableBuilder<'a> {
self.vscroll(vscroll)
}

/// Enables scrolling the table's contents using mouse drag (default: `true`).
///
/// See [`ScrollArea::drag_to_scroll`] for more.
pub fn drag_to_scroll(mut self, drag_to_scroll: bool) -> Self {
self.scroll_options.drag_to_scroll = drag_to_scroll;
self
}

/// Should the scroll handle stick to the bottom position even as the content size changes
/// dynamically? The scroll handle remains stuck until manually changed, and will become stuck
/// once again when repositioned to the bottom. Default: `false`.
Expand Down Expand Up @@ -555,6 +565,7 @@ impl<'a> Table<'a> {

let TableScrollOptions {
vscroll,
drag_to_scroll,
stick_to_bottom,
scroll_to_row,
scroll_offset_y,
Expand All @@ -567,6 +578,7 @@ impl<'a> Table<'a> {

let mut scroll_area = ScrollArea::new([false, vscroll])
.auto_shrink([true; 2])
.drag_to_scroll(drag_to_scroll)
.stick_to_bottom(stick_to_bottom)
.min_scrolled_height(min_scrolled_height)
.max_height(max_scroll_height)
Expand Down

0 comments on commit 043183a

Please sign in to comment.