mirror of
https://github.com/mikedilger/gossip.git
synced 2024-09-19 19:46:50 +00:00
Switch custom drawn widgets for professional drawn emojis
This commit is contained in:
parent
8bad130214
commit
a77eb9abb3
@ -2,10 +2,10 @@ use super::{GossipUi, Page};
|
|||||||
use crate::comms::ToOverlordMessage;
|
use crate::comms::ToOverlordMessage;
|
||||||
use crate::feed::FeedKind;
|
use crate::feed::FeedKind;
|
||||||
use crate::globals::{Globals, GLOBALS};
|
use crate::globals::{Globals, GLOBALS};
|
||||||
use crate::ui::widgets::{CopyButton, LikeButton, ReplyButton};
|
use crate::ui::widgets::CopyButton;
|
||||||
use eframe::egui;
|
use eframe::egui;
|
||||||
use egui::{
|
use egui::{
|
||||||
Align, Color32, Context, Frame, Image, Layout, RichText, ScrollArea, SelectableLabel, Sense,
|
Align, Color32, Context, Frame, Image, Label, Layout, RichText, ScrollArea, SelectableLabel, Sense,
|
||||||
Separator, Stroke, TextEdit, TextStyle, Ui, Vec2,
|
Separator, Stroke, TextEdit, TextStyle, Ui, Vec2,
|
||||||
};
|
};
|
||||||
use linkify::{LinkFinder, LinkKind};
|
use linkify::{LinkFinder, LinkKind};
|
||||||
@ -533,7 +533,7 @@ fn render_post_actual(
|
|||||||
|
|
||||||
ui.add_space(24.0);
|
ui.add_space(24.0);
|
||||||
|
|
||||||
if ui.add(ReplyButton {}).clicked() {
|
if ui.add(Label::new(RichText::new("💬").size(18.0)).sense(Sense::click())).clicked() {
|
||||||
app.replying_to = Some(event.id);
|
app.replying_to = Some(event.id);
|
||||||
|
|
||||||
// Cleanup tags
|
// Cleanup tags
|
||||||
@ -552,7 +552,7 @@ fn render_post_actual(
|
|||||||
|
|
||||||
ui.add_space(24.0);
|
ui.add_space(24.0);
|
||||||
|
|
||||||
if ui.add(LikeButton {}).clicked() {
|
if ui.add(Label::new(RichText::new("♡").size(20.0)).sense(Sense::click())).clicked() {
|
||||||
let _ = GLOBALS
|
let _ = GLOBALS
|
||||||
.to_overlord
|
.to_overlord
|
||||||
.send(ToOverlordMessage::Like(event.id, event.pubkey));
|
.send(ToOverlordMessage::Like(event.id, event.pubkey));
|
||||||
|
@ -80,9 +80,9 @@ impl Widget for CopyButton {
|
|||||||
let (id, rect) = ui.allocate_space(space);
|
let (id, rect) = ui.allocate_space(space);
|
||||||
let response = ui.interact(rect, id, Sense::click());
|
let response = ui.interact(rect, id, Sense::click());
|
||||||
let shift = if response.is_pointer_button_down_on() {
|
let shift = if response.is_pointer_button_down_on() {
|
||||||
2.0
|
6.0
|
||||||
} else {
|
} else {
|
||||||
0.0
|
4.0
|
||||||
};
|
};
|
||||||
let pos = Pos2 {
|
let pos = Pos2 {
|
||||||
x: rect.min.x + padding.x + shift,
|
x: rect.min.x + padding.x + shift,
|
||||||
|
@ -1,128 +0,0 @@
|
|||||||
use eframe::{egui, epaint};
|
|
||||||
use egui::{Color32, Pos2, Response, Sense, Shape, Ui, Vec2, Widget};
|
|
||||||
use epaint::{PathShape, Stroke};
|
|
||||||
|
|
||||||
pub struct LikeButton {}
|
|
||||||
|
|
||||||
impl LikeButton {
|
|
||||||
fn paint(ui: &mut Ui, corner: Pos2) {
|
|
||||||
ui.painter().add(Shape::Path(PathShape {
|
|
||||||
points: vec![
|
|
||||||
Pos2 {
|
|
||||||
x: corner.x + 8.0,
|
|
||||||
y: corner.y + 16.0,
|
|
||||||
},
|
|
||||||
Pos2 {
|
|
||||||
x: corner.x + 9.0,
|
|
||||||
y: corner.y + 15.0,
|
|
||||||
},
|
|
||||||
Pos2 {
|
|
||||||
x: corner.x + 12.0,
|
|
||||||
y: corner.y + 13.0,
|
|
||||||
},
|
|
||||||
Pos2 {
|
|
||||||
x: corner.x + 15.0,
|
|
||||||
y: corner.y + 9.0,
|
|
||||||
},
|
|
||||||
Pos2 {
|
|
||||||
x: corner.x + 16.0,
|
|
||||||
y: corner.y + 6.0,
|
|
||||||
},
|
|
||||||
Pos2 {
|
|
||||||
x: corner.x + 16.0,
|
|
||||||
y: corner.y + 4.0,
|
|
||||||
},
|
|
||||||
Pos2 {
|
|
||||||
x: corner.x + 15.0,
|
|
||||||
y: corner.y + 2.0,
|
|
||||||
},
|
|
||||||
Pos2 {
|
|
||||||
x: corner.x + 13.0,
|
|
||||||
y: corner.y + 0.0,
|
|
||||||
},
|
|
||||||
Pos2 {
|
|
||||||
x: corner.x + 12.0,
|
|
||||||
y: corner.y + 0.0,
|
|
||||||
},
|
|
||||||
Pos2 {
|
|
||||||
x: corner.x + 10.0,
|
|
||||||
y: corner.y + 1.0,
|
|
||||||
},
|
|
||||||
Pos2 {
|
|
||||||
x: corner.x + 8.0,
|
|
||||||
y: corner.y + 3.0,
|
|
||||||
},
|
|
||||||
Pos2 {
|
|
||||||
x: corner.x + 6.0,
|
|
||||||
y: corner.y + 1.0,
|
|
||||||
},
|
|
||||||
Pos2 {
|
|
||||||
x: corner.x + 4.0,
|
|
||||||
y: corner.y + 0.0,
|
|
||||||
},
|
|
||||||
Pos2 {
|
|
||||||
x: corner.x + 3.0,
|
|
||||||
y: corner.y + 0.0,
|
|
||||||
},
|
|
||||||
Pos2 {
|
|
||||||
x: corner.x + 1.0,
|
|
||||||
y: corner.y + 2.0,
|
|
||||||
},
|
|
||||||
Pos2 {
|
|
||||||
x: corner.x + 0.0,
|
|
||||||
y: corner.y + 4.0,
|
|
||||||
},
|
|
||||||
Pos2 {
|
|
||||||
x: corner.x + 0.0,
|
|
||||||
y: corner.y + 6.0,
|
|
||||||
},
|
|
||||||
Pos2 {
|
|
||||||
x: corner.x + 1.0,
|
|
||||||
y: corner.y + 9.0,
|
|
||||||
},
|
|
||||||
Pos2 {
|
|
||||||
x: corner.x + 4.0,
|
|
||||||
y: corner.y + 13.0,
|
|
||||||
},
|
|
||||||
Pos2 {
|
|
||||||
x: corner.x + 7.0,
|
|
||||||
y: corner.y + 15.0,
|
|
||||||
},
|
|
||||||
Pos2 {
|
|
||||||
x: corner.x + 8.0,
|
|
||||||
y: corner.y + 16.0,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
closed: true,
|
|
||||||
fill: Color32::TRANSPARENT,
|
|
||||||
stroke: Stroke {
|
|
||||||
width: 1.0,
|
|
||||||
color: Color32::from_rgb(0x8d, 0x7f, 0x73),
|
|
||||||
},
|
|
||||||
}));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl Widget for LikeButton {
|
|
||||||
fn ui(self, ui: &mut Ui) -> Response {
|
|
||||||
let padding = ui.spacing().button_padding;
|
|
||||||
let space = Vec2 {
|
|
||||||
x: 16.0 + padding.x * 2.0,
|
|
||||||
y: 16.0 + padding.y * 2.0,
|
|
||||||
};
|
|
||||||
let (id, rect) = ui.allocate_space(space);
|
|
||||||
let response = ui.interact(rect, id, Sense::click());
|
|
||||||
let shift = if response.is_pointer_button_down_on() {
|
|
||||||
2.0
|
|
||||||
} else {
|
|
||||||
0.0
|
|
||||||
};
|
|
||||||
let pos = Pos2 {
|
|
||||||
x: rect.min.x + padding.x + shift,
|
|
||||||
y: rect.min.y + padding.y + shift,
|
|
||||||
};
|
|
||||||
Self::paint(ui, ui.painter().round_pos_to_pixels(pos));
|
|
||||||
|
|
||||||
response
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,8 +1,2 @@
|
|||||||
mod copy_button;
|
mod copy_button;
|
||||||
pub use copy_button::CopyButton;
|
pub use copy_button::CopyButton;
|
||||||
|
|
||||||
mod reply_button;
|
|
||||||
pub use reply_button::ReplyButton;
|
|
||||||
|
|
||||||
mod like_button;
|
|
||||||
pub use like_button::LikeButton;
|
|
||||||
|
@ -1,92 +0,0 @@
|
|||||||
use eframe::{egui, epaint};
|
|
||||||
use egui::{Color32, Pos2, Response, Sense, Shape, Ui, Vec2, Widget};
|
|
||||||
use epaint::{PathShape, Stroke};
|
|
||||||
|
|
||||||
pub struct ReplyButton {}
|
|
||||||
|
|
||||||
impl ReplyButton {
|
|
||||||
fn paint(ui: &mut Ui, corner: Pos2) {
|
|
||||||
ui.painter().add(Shape::Path(PathShape {
|
|
||||||
points: vec![
|
|
||||||
Pos2 {
|
|
||||||
x: corner.x + 2.0,
|
|
||||||
y: corner.y + 0.0,
|
|
||||||
},
|
|
||||||
Pos2 {
|
|
||||||
x: corner.x + 14.0,
|
|
||||||
y: corner.y + 0.0,
|
|
||||||
},
|
|
||||||
Pos2 {
|
|
||||||
x: corner.x + 16.0,
|
|
||||||
y: corner.y + 2.0,
|
|
||||||
},
|
|
||||||
Pos2 {
|
|
||||||
x: corner.x + 16.0,
|
|
||||||
y: corner.y + 8.0,
|
|
||||||
},
|
|
||||||
Pos2 {
|
|
||||||
x: corner.x + 14.0,
|
|
||||||
y: corner.y + 10.0,
|
|
||||||
},
|
|
||||||
Pos2 {
|
|
||||||
x: corner.x + 12.0,
|
|
||||||
y: corner.y + 10.0,
|
|
||||||
},
|
|
||||||
Pos2 {
|
|
||||||
x: corner.x + 4.0,
|
|
||||||
y: corner.y + 15.0,
|
|
||||||
},
|
|
||||||
Pos2 {
|
|
||||||
x: corner.x + 6.0,
|
|
||||||
y: corner.y + 10.0,
|
|
||||||
},
|
|
||||||
Pos2 {
|
|
||||||
x: corner.x + 2.0,
|
|
||||||
y: corner.y + 10.0,
|
|
||||||
},
|
|
||||||
Pos2 {
|
|
||||||
x: corner.x + 0.0,
|
|
||||||
y: corner.y + 8.0,
|
|
||||||
},
|
|
||||||
Pos2 {
|
|
||||||
x: corner.x + 0.0,
|
|
||||||
y: corner.y + 2.0,
|
|
||||||
},
|
|
||||||
Pos2 {
|
|
||||||
x: corner.x + 2.0,
|
|
||||||
y: corner.y + 0.0,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
closed: true,
|
|
||||||
fill: Color32::TRANSPARENT,
|
|
||||||
stroke: Stroke {
|
|
||||||
width: 1.0,
|
|
||||||
color: Color32::from_rgb(0x8d, 0x7f, 0x73),
|
|
||||||
},
|
|
||||||
}));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl Widget for ReplyButton {
|
|
||||||
fn ui(self, ui: &mut Ui) -> Response {
|
|
||||||
let padding = ui.spacing().button_padding;
|
|
||||||
let space = Vec2 {
|
|
||||||
x: 16.0 + padding.x * 2.0,
|
|
||||||
y: 16.0 + padding.y * 2.0,
|
|
||||||
};
|
|
||||||
let (id, rect) = ui.allocate_space(space);
|
|
||||||
let response = ui.interact(rect, id, Sense::click());
|
|
||||||
let shift = if response.is_pointer_button_down_on() {
|
|
||||||
2.0
|
|
||||||
} else {
|
|
||||||
0.0
|
|
||||||
};
|
|
||||||
let pos = Pos2 {
|
|
||||||
x: rect.min.x + padding.x + shift,
|
|
||||||
y: rect.min.y + padding.y + shift,
|
|
||||||
};
|
|
||||||
Self::paint(ui, ui.painter().round_pos_to_pixels(pos));
|
|
||||||
|
|
||||||
response
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user