mirror of
https://github.com/damus-io/notedeck.git
synced 2024-09-18 21:03:31 +00:00
tabs: select notes & replies by default
Signed-off-by: William Casarin <jb55@jb55.com>
This commit is contained in:
parent
6fc5eb27fc
commit
83100d7f50
2
Cargo.lock
generated
2
Cargo.lock
generated
@ -1023,7 +1023,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "egui-tabs"
|
name = "egui-tabs"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/damus-io/egui-tabs?rev=ed97a57fc66b3781bc10ab644f9e1ed125d7377a#ed97a57fc66b3781bc10ab644f9e1ed125d7377a"
|
source = "git+https://github.com/damus-io/egui-tabs?rev=75f47141aebcf876986fad00dd83a69a7bb04840#75f47141aebcf876986fad00dd83a69a7bb04840"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"egui",
|
"egui",
|
||||||
"egui_extras",
|
"egui_extras",
|
||||||
|
@ -19,7 +19,7 @@ eframe = { version = "0.27.2", default-features = false, features = [ "glow", "w
|
|||||||
#eframe = "0.22.0"
|
#eframe = "0.22.0"
|
||||||
egui_extras = { version = "0.27.2", features = ["all_loaders"] }
|
egui_extras = { version = "0.27.2", features = ["all_loaders"] }
|
||||||
ehttp = "0.2.0"
|
ehttp = "0.2.0"
|
||||||
egui-tabs = { git = "https://github.com/damus-io/egui-tabs", rev = "ed97a57fc66b3781bc10ab644f9e1ed125d7377a" }
|
egui-tabs = { git = "https://github.com/damus-io/egui-tabs", rev = "75f47141aebcf876986fad00dd83a69a7bb04840" }
|
||||||
reqwest = { version = "0.12.4", default-features = false, features = [ "rustls-tls-native-roots" ] }
|
reqwest = { version = "0.12.4", default-features = false, features = [ "rustls-tls-native-roots" ] }
|
||||||
image = { version = "0.24", features = ["jpeg", "png", "webp"] }
|
image = { version = "0.24", features = ["jpeg", "png", "webp"] }
|
||||||
poll-promise = { version = "0.3.0", features = ["tokio"] }
|
poll-promise = { version = "0.3.0", features = ["tokio"] }
|
||||||
|
@ -179,6 +179,7 @@ fn tabs_ui(timeline: &mut Timeline, ui: &mut egui::Ui) {
|
|||||||
ui.spacing_mut().item_spacing.y = 0.0;
|
ui.spacing_mut().item_spacing.y = 0.0;
|
||||||
|
|
||||||
let tab_res = egui_tabs::Tabs::new(2)
|
let tab_res = egui_tabs::Tabs::new(2)
|
||||||
|
.selected(1)
|
||||||
.hover_bg(TabColor::none())
|
.hover_bg(TabColor::none())
|
||||||
.selected_fg(TabColor::none())
|
.selected_fg(TabColor::none())
|
||||||
.selected_bg(TabColor::none())
|
.selected_bg(TabColor::none())
|
||||||
@ -210,37 +211,41 @@ fn tabs_ui(timeline: &mut Timeline, ui: &mut egui::Ui) {
|
|||||||
//ui.add_space(0.5);
|
//ui.add_space(0.5);
|
||||||
ui::hline(ui);
|
ui::hline(ui);
|
||||||
|
|
||||||
|
let sel = if let Some(sel) = tab_res.selected() {
|
||||||
|
sel
|
||||||
|
} else {
|
||||||
|
0
|
||||||
|
};
|
||||||
|
|
||||||
// fun animation
|
// fun animation
|
||||||
if let Some(sel) = tab_res.selected() {
|
timeline.selected_view = sel;
|
||||||
timeline.selected_view = sel;
|
|
||||||
|
|
||||||
let (underline, underline_y) = tab_res.inner()[sel as usize].inner;
|
let (underline, underline_y) = tab_res.inner()[sel as usize].inner;
|
||||||
let underline_width = underline.span();
|
let underline_width = underline.span();
|
||||||
|
|
||||||
let tab_anim_id = ui.id().with("tab_anim");
|
let tab_anim_id = ui.id().with("tab_anim");
|
||||||
let tab_anim_size = tab_anim_id.with("size");
|
let tab_anim_size = tab_anim_id.with("size");
|
||||||
|
|
||||||
let stroke = egui::Stroke {
|
let stroke = egui::Stroke {
|
||||||
color: ui.visuals().hyperlink_color,
|
color: ui.visuals().hyperlink_color,
|
||||||
width: 3.0,
|
width: 3.0,
|
||||||
};
|
};
|
||||||
|
|
||||||
let speed = 0.1f32;
|
let speed = 0.1f32;
|
||||||
|
|
||||||
// animate underline position
|
// animate underline position
|
||||||
let x = ui
|
let x = ui
|
||||||
.ctx()
|
.ctx()
|
||||||
.animate_value_with_time(tab_anim_id, underline.min, speed);
|
.animate_value_with_time(tab_anim_id, underline.min, speed);
|
||||||
|
|
||||||
// animate underline width
|
// animate underline width
|
||||||
let w = ui
|
let w = ui
|
||||||
.ctx()
|
.ctx()
|
||||||
.animate_value_with_time(tab_anim_size, underline_width, speed);
|
.animate_value_with_time(tab_anim_size, underline_width, speed);
|
||||||
|
|
||||||
let underline = egui::Rangef::new(x, x + w);
|
let underline = egui::Rangef::new(x, x + w);
|
||||||
|
|
||||||
ui.painter().hline(underline, underline_y, stroke);
|
ui.painter().hline(underline, underline_y, stroke);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn timeline_view(ui: &mut egui::Ui, app: &mut Damus, timeline: usize) {
|
pub fn timeline_view(ui: &mut egui::Ui, app: &mut Damus, timeline: usize) {
|
||||||
|
Loading…
Reference in New Issue
Block a user