mirror of
https://github.com/damus-io/notedeck.git
synced 2024-09-16 11:53:30 +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]]
|
||||
name = "egui-tabs"
|
||||
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 = [
|
||||
"egui",
|
||||
"egui_extras",
|
||||
|
@ -19,7 +19,7 @@ eframe = { version = "0.27.2", default-features = false, features = [ "glow", "w
|
||||
#eframe = "0.22.0"
|
||||
egui_extras = { version = "0.27.2", features = ["all_loaders"] }
|
||||
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" ] }
|
||||
image = { version = "0.24", features = ["jpeg", "png", "webp"] }
|
||||
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;
|
||||
|
||||
let tab_res = egui_tabs::Tabs::new(2)
|
||||
.selected(1)
|
||||
.hover_bg(TabColor::none())
|
||||
.selected_fg(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::hline(ui);
|
||||
|
||||
let sel = if let Some(sel) = tab_res.selected() {
|
||||
sel
|
||||
} else {
|
||||
0
|
||||
};
|
||||
|
||||
// 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_width = underline.span();
|
||||
let (underline, underline_y) = tab_res.inner()[sel as usize].inner;
|
||||
let underline_width = underline.span();
|
||||
|
||||
let tab_anim_id = ui.id().with("tab_anim");
|
||||
let tab_anim_size = tab_anim_id.with("size");
|
||||
let tab_anim_id = ui.id().with("tab_anim");
|
||||
let tab_anim_size = tab_anim_id.with("size");
|
||||
|
||||
let stroke = egui::Stroke {
|
||||
color: ui.visuals().hyperlink_color,
|
||||
width: 3.0,
|
||||
};
|
||||
let stroke = egui::Stroke {
|
||||
color: ui.visuals().hyperlink_color,
|
||||
width: 3.0,
|
||||
};
|
||||
|
||||
let speed = 0.1f32;
|
||||
let speed = 0.1f32;
|
||||
|
||||
// animate underline position
|
||||
let x = ui
|
||||
.ctx()
|
||||
.animate_value_with_time(tab_anim_id, underline.min, speed);
|
||||
// animate underline position
|
||||
let x = ui
|
||||
.ctx()
|
||||
.animate_value_with_time(tab_anim_id, underline.min, speed);
|
||||
|
||||
// animate underline width
|
||||
let w = ui
|
||||
.ctx()
|
||||
.animate_value_with_time(tab_anim_size, underline_width, speed);
|
||||
// animate underline width
|
||||
let w = ui
|
||||
.ctx()
|
||||
.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) {
|
||||
|
Loading…
Reference in New Issue
Block a user