Compare commits

...

2 Commits

Author SHA1 Message Date
3f6fa16bdb Remove close button, replace with top-right touch area 2023-11-27 11:10:18 +01:00
3e373914c7 Add close button 2023-11-27 11:05:23 +01:00

View File

@@ -6,7 +6,7 @@ use std::{
use gtk::{
glib, Application, ApplicationWindow, Box, Button, FileChooserAction, FileChooserDialog,
HeaderBar, Label, Orientation, Picture, ResponseType,
HeaderBar, Label, Overlay, Picture, ResponseType,
};
use log::debug;
@@ -19,7 +19,7 @@ pub struct Ui {
bottom_bar: gtk::Box,
header_bar: gtk::HeaderBar,
page_indicator: gtk::Label,
pub app_wrapper: Box,
pub app_wrapper: Overlay,
pub image_container: Box,
pub image_left: Picture,
pub image_right: Picture,
@@ -151,9 +151,14 @@ fn process_left_click(ui: &mut Ui, x: f64, y: f64) {
if ui.document_canvas.is_none() {
return;
}
let edge_touch_area_size = f64::min(100.0, ui.app_wrapper.height() as f64 / 10.0);
let center = ui.app_wrapper.width() / 2;
if y < (ui.app_wrapper.height() / 5) as f64 {
if y < edge_touch_area_size {
if x > ui.app_wrapper.width() as f64 - edge_touch_area_size {
ui.window.close();
return;
}
toggle_fullscreen(ui);
} else if x > center as f64 {
if x < ui.app_wrapper.width() as f64 * 0.75 {
@@ -178,16 +183,6 @@ impl Ui {
debug!("building ui");
let open_file_button = Button::from_icon_name("document-open");
let app_wrapper = Box::builder().orientation(Orientation::Vertical).build();
let window = ApplicationWindow::builder()
.application(app)
.title("Music Reader")
.child(&app_wrapper)
.maximized(true)
.width_request(600)
.height_request(400)
.build();
let image_container = Box::builder()
.spacing(0)
// .width_request(600)
@@ -211,10 +206,28 @@ impl Ui {
image_container.append(&image_left);
image_container.append(&image_right);
let app_wrapper = Overlay::builder()
// .orientation(Orientation::Vertical)
.hexpand(true)
.vexpand(true)
.child(&image_container)
.build();
let window = ApplicationWindow::builder()
.application(app)
.title("Music Reader")
.child(&app_wrapper)
.maximized(true)
.width_request(600)
.height_request(400)
.build();
let ui = Ui {
window,
app_wrapper,
bottom_bar: Box::builder().hexpand_set(true).build(),
bottom_bar: Box::builder()
.hexpand_set(true)
.valign(gtk::Align::End)
.build(),
header_bar: HeaderBar::builder().build(),
page_indicator: Label::builder().build(),
image_container,
@@ -225,10 +238,7 @@ impl Ui {
let ui = Rc::new(RefCell::new(ui));
ui.borrow().header_bar.pack_start(&open_file_button);
ui.borrow()
.app_wrapper
.prepend(&ui.borrow().image_container);
ui.borrow().app_wrapper.append(&ui.borrow().bottom_bar);
ui.borrow().app_wrapper.add_overlay(&ui.borrow().bottom_bar);
ui.borrow().bottom_bar.append(&ui.borrow().page_indicator);
let click_left = gtk::GestureClick::new();