From 34ed31b238a5ad44eeb4bcc419bb007db38682a3 Mon Sep 17 00:00:00 2001 From: Reguel Wermelinger Date: Thu, 23 Jan 2025 15:56:25 +0100 Subject: [PATCH 1/2] refactor: move display to own library --- Cargo.lock | 18 +++++++++++++++++- Cargo.toml | 1 + crates/core/Cargo.toml | 1 + crates/core/src/lib.rs | 6 ------ crates/core/src/settings/mod.rs | 13 ------------- crates/display/Cargo.toml | 17 +++++++++++++++++ crates/{core => display}/src/color.rs | 0 crates/{core => display}/src/device.rs | 0 .../{core => display}/src/framebuffer/image.rs | 0 .../src/framebuffer/ion_sys.rs | 0 .../{core => display}/src/framebuffer/kobo1.rs | 0 .../{core => display}/src/framebuffer/kobo2.rs | 0 .../src/framebuffer/linuxfb_sys.rs | 0 .../{core => display}/src/framebuffer/mod.rs | 0 .../src/framebuffer/mxcfb_sys.rs | 0 .../src/framebuffer/sunxi_sys.rs | 0 .../src/framebuffer/transform.rs | 0 crates/{core => display}/src/geom.rs | 0 crates/{core => display}/src/input.rs | 17 ++++++++++++++++- crates/display/src/lib.rs | 5 +++++ crates/emulator/Cargo.toml | 1 + crates/emulator/src/main.rs | 4 ++-- crates/plato/Cargo.toml | 1 + crates/plato/src/app.rs | 3 ++- 24 files changed, 63 insertions(+), 24 deletions(-) create mode 100644 crates/display/Cargo.toml rename crates/{core => display}/src/color.rs (100%) rename crates/{core => display}/src/device.rs (100%) rename crates/{core => display}/src/framebuffer/image.rs (100%) rename crates/{core => display}/src/framebuffer/ion_sys.rs (100%) rename crates/{core => display}/src/framebuffer/kobo1.rs (100%) rename crates/{core => display}/src/framebuffer/kobo2.rs (100%) rename crates/{core => display}/src/framebuffer/linuxfb_sys.rs (100%) rename crates/{core => display}/src/framebuffer/mod.rs (100%) rename crates/{core => display}/src/framebuffer/mxcfb_sys.rs (100%) rename crates/{core => display}/src/framebuffer/sunxi_sys.rs (100%) rename crates/{core => display}/src/framebuffer/transform.rs (100%) rename crates/{core => display}/src/geom.rs (100%) rename crates/{core => display}/src/input.rs (97%) create mode 100644 crates/display/src/lib.rs diff --git a/Cargo.lock b/Cargo.lock index 19c65089..9783e313 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,6 +1,6 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "addr2line" @@ -328,6 +328,19 @@ dependencies = [ "subtle", ] +[[package]] +name = "display" +version = "0.9.44" +dependencies = [ + "anyhow", + "fxhash", + "lazy_static", + "libc", + "nix", + "png", + "serde", +] + [[package]] name = "displaydoc" version = "0.2.5" @@ -349,6 +362,7 @@ checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" name = "emulator" version = "0.9.44" dependencies = [ + "display", "plato-core", "sdl2", ] @@ -1043,6 +1057,7 @@ checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" name = "plato" version = "0.9.44" dependencies = [ + "display", "plato-core", ] @@ -1054,6 +1069,7 @@ dependencies = [ "bitflags 2.6.0", "byteorder", "chrono", + "display", "downcast-rs", "entities", "flate2", diff --git a/Cargo.toml b/Cargo.toml index 49fa308a..ee58e384 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -6,6 +6,7 @@ members = [ "crates/emulator", "crates/importer", "crates/fetcher", + "crates/display", ] [profile.release-minsized] diff --git a/crates/core/Cargo.toml b/crates/core/Cargo.toml index 25a48e61..ae9950cd 100644 --- a/crates/core/Cargo.toml +++ b/crates/core/Cargo.toml @@ -8,6 +8,7 @@ edition = "2021" crate-type = ["rlib"] [dependencies] +display = { path = "../display" } bitflags = "2.6.0" downcast-rs = "1.2.1" lazy_static = "1.5.0" diff --git a/crates/core/src/lib.rs b/crates/core/src/lib.rs index 88896dd7..8fc59a99 100644 --- a/crates/core/src/lib.rs +++ b/crates/core/src/lib.rs @@ -1,13 +1,7 @@ -#[macro_use] pub mod geom; - mod unit; -pub mod color; -pub mod device; -pub mod framebuffer; pub mod frontlight; pub mod lightsensor; pub mod battery; -pub mod input; pub mod helpers; mod dictionary; pub mod document; diff --git a/crates/core/src/settings/mod.rs b/crates/core/src/settings/mod.rs index 2cffab5e..c4437794 100644 --- a/crates/core/src/settings/mod.rs +++ b/crates/core/src/settings/mod.rs @@ -42,19 +42,6 @@ pub enum RotationLock { Current, } -#[derive(Debug, Copy, Clone, Eq, PartialEq, Serialize, Deserialize)] -#[serde(rename_all = "kebab-case")] -pub enum ButtonScheme { - Natural, - Inverted, -} - -impl fmt::Display for ButtonScheme { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - Debug::fmt(self, f) - } -} - #[derive(Debug, Copy, Clone, Eq, PartialEq, Hash, Serialize, Deserialize)] #[serde(rename_all = "kebab-case")] pub enum IntermKind { diff --git a/crates/display/Cargo.toml b/crates/display/Cargo.toml new file mode 100644 index 00000000..db581c93 --- /dev/null +++ b/crates/display/Cargo.toml @@ -0,0 +1,17 @@ +[package] +name = "display" +version = "0.9.44" +edition = "2021" + +[lib] +crate-type = ["rlib"] + +[dependencies] +serde = { version = "1.0.215", features = ["derive"] } +nix = { version = "0.29.0", features = ["fs", "ioctl"] } +anyhow = "1.0.93" +libc = "0.2.164" +lazy_static = "1.5.0" +png = "0.17.14" +fxhash = "0.2.1" + diff --git a/crates/core/src/color.rs b/crates/display/src/color.rs similarity index 100% rename from crates/core/src/color.rs rename to crates/display/src/color.rs diff --git a/crates/core/src/device.rs b/crates/display/src/device.rs similarity index 100% rename from crates/core/src/device.rs rename to crates/display/src/device.rs diff --git a/crates/core/src/framebuffer/image.rs b/crates/display/src/framebuffer/image.rs similarity index 100% rename from crates/core/src/framebuffer/image.rs rename to crates/display/src/framebuffer/image.rs diff --git a/crates/core/src/framebuffer/ion_sys.rs b/crates/display/src/framebuffer/ion_sys.rs similarity index 100% rename from crates/core/src/framebuffer/ion_sys.rs rename to crates/display/src/framebuffer/ion_sys.rs diff --git a/crates/core/src/framebuffer/kobo1.rs b/crates/display/src/framebuffer/kobo1.rs similarity index 100% rename from crates/core/src/framebuffer/kobo1.rs rename to crates/display/src/framebuffer/kobo1.rs diff --git a/crates/core/src/framebuffer/kobo2.rs b/crates/display/src/framebuffer/kobo2.rs similarity index 100% rename from crates/core/src/framebuffer/kobo2.rs rename to crates/display/src/framebuffer/kobo2.rs diff --git a/crates/core/src/framebuffer/linuxfb_sys.rs b/crates/display/src/framebuffer/linuxfb_sys.rs similarity index 100% rename from crates/core/src/framebuffer/linuxfb_sys.rs rename to crates/display/src/framebuffer/linuxfb_sys.rs diff --git a/crates/core/src/framebuffer/mod.rs b/crates/display/src/framebuffer/mod.rs similarity index 100% rename from crates/core/src/framebuffer/mod.rs rename to crates/display/src/framebuffer/mod.rs diff --git a/crates/core/src/framebuffer/mxcfb_sys.rs b/crates/display/src/framebuffer/mxcfb_sys.rs similarity index 100% rename from crates/core/src/framebuffer/mxcfb_sys.rs rename to crates/display/src/framebuffer/mxcfb_sys.rs diff --git a/crates/core/src/framebuffer/sunxi_sys.rs b/crates/display/src/framebuffer/sunxi_sys.rs similarity index 100% rename from crates/core/src/framebuffer/sunxi_sys.rs rename to crates/display/src/framebuffer/sunxi_sys.rs diff --git a/crates/core/src/framebuffer/transform.rs b/crates/display/src/framebuffer/transform.rs similarity index 100% rename from crates/core/src/framebuffer/transform.rs rename to crates/display/src/framebuffer/transform.rs diff --git a/crates/core/src/geom.rs b/crates/display/src/geom.rs similarity index 100% rename from crates/core/src/geom.rs rename to crates/display/src/geom.rs diff --git a/crates/core/src/input.rs b/crates/display/src/input.rs similarity index 97% rename from crates/core/src/input.rs rename to crates/display/src/input.rs index 34bc3437..a6faf1c1 100644 --- a/crates/core/src/input.rs +++ b/crates/display/src/input.rs @@ -9,10 +9,11 @@ use std::os::unix::io::AsRawFd; use std::ffi::CString; use fxhash::FxHashMap; use crate::framebuffer::Display; -use crate::settings::ButtonScheme; use crate::device::CURRENT_DEVICE; use crate::geom::{Point, LinearDir}; use anyhow::{Error, Context}; +use serde::{Serialize, Deserialize}; +use std::fmt::{self, Debug}; // Event types pub const EV_SYN: u16 = 0x00; @@ -219,6 +220,20 @@ pub enum PowerSource { Wall, } +#[derive(Debug, Copy, Clone, Eq, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "kebab-case")] +pub enum ButtonScheme { + Natural, + Inverted, +} + +impl fmt::Display for ButtonScheme { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + Debug::fmt(self, f) + } +} + + pub fn seconds(time: libc::timeval) -> f64 { time.tv_sec as f64 + time.tv_usec as f64 / 1e6 } diff --git a/crates/display/src/lib.rs b/crates/display/src/lib.rs new file mode 100644 index 00000000..de627e22 --- /dev/null +++ b/crates/display/src/lib.rs @@ -0,0 +1,5 @@ +#[macro_use] pub mod geom; +pub mod framebuffer; +pub mod color; +pub mod device; +pub mod input; diff --git a/crates/emulator/Cargo.toml b/crates/emulator/Cargo.toml index e04c09ff..d6a9de55 100644 --- a/crates/emulator/Cargo.toml +++ b/crates/emulator/Cargo.toml @@ -10,4 +10,5 @@ path = "src/main.rs" [dependencies] plato-core = { path = "../core" } +display = { path = "../display" } sdl2 = "0.37.0" diff --git a/crates/emulator/src/main.rs b/crates/emulator/src/main.rs index 82a1b9f7..dc7c3221 100644 --- a/crates/emulator/src/main.rs +++ b/crates/emulator/src/main.rs @@ -14,7 +14,7 @@ use sdl2::pixels::{Color as SdlColor, PixelFormatEnum}; use sdl2::mouse::MouseState; use sdl2::rect::Point as SdlPoint; use sdl2::rect::Rect as SdlRect; -use plato_core::framebuffer::{Framebuffer, UpdateMode}; +use display::framebuffer::{Framebuffer, UpdateMode}; use plato_core::input::{DeviceEvent, FingerStatus, ButtonCode, ButtonStatus}; use plato_core::document::sys_info_as_html; use plato_core::view::{View, Event, ViewId, EntryId, AppCmd, EntryKind}; @@ -35,7 +35,7 @@ use plato_core::view::common::{locate, locate_by_id, transfer_notifications, ove use plato_core::view::common::{toggle_input_history_menu, toggle_keyboard_layout_menu}; use plato_core::helpers::{load_toml, save_toml}; use plato_core::settings::{Settings, SETTINGS_PATH, IntermKind}; -use plato_core::geom::{Rectangle, Axis}; +use display::geom::{Rectangle, Axis}; use plato_core::color::Color; use plato_core::gesture::{GestureEvent, gesture_events}; use plato_core::device::CURRENT_DEVICE; diff --git a/crates/plato/Cargo.toml b/crates/plato/Cargo.toml index 4804c2ef..c43c31df 100644 --- a/crates/plato/Cargo.toml +++ b/crates/plato/Cargo.toml @@ -10,3 +10,4 @@ path = "src/main.rs" [dependencies] plato-core = { path = "../core" } +display = { path = "../display" } diff --git a/crates/plato/src/app.rs b/crates/plato/src/app.rs index 980ba81e..4928cec4 100644 --- a/crates/plato/src/app.rs +++ b/crates/plato/src/app.rs @@ -6,6 +6,7 @@ use std::path::Path; use std::sync::mpsc::{self, Receiver, Sender}; use std::collections::VecDeque; use std::time::{Duration, Instant}; +use display::input::ButtonScheme; use plato_core::anyhow::{Error, Context as ResultExt, format_err}; use plato_core::chrono::Local; use plato_core::framebuffer::{Framebuffer, KoboFramebuffer1, KoboFramebuffer2, UpdateMode}; @@ -25,7 +26,7 @@ use plato_core::input::{DeviceEvent, PowerSource, ButtonCode, ButtonStatus, VAL_ use plato_core::input::{raw_events, device_events, usb_events, display_rotate_event, button_scheme_event}; use plato_core::gesture::{GestureEvent, gesture_events}; use plato_core::helpers::{load_toml, save_toml}; -use plato_core::settings::{ButtonScheme, Settings, SETTINGS_PATH, RotationLock, IntermKind}; +use plato_core::settings::{Settings, SETTINGS_PATH, RotationLock, IntermKind}; use plato_core::frontlight::{Frontlight, StandardFrontlight, NaturalFrontlight, PremixedFrontlight}; use plato_core::lightsensor::{LightSensor, KoboLightSensor}; use plato_core::battery::{Battery, KoboBattery}; From 9574129e7840aa1ab22d90971744a83058a02b24 Mon Sep 17 00:00:00 2001 From: Reguel Wermelinger Date: Thu, 23 Jan 2025 17:28:43 +0100 Subject: [PATCH 2/2] adjust consumers --- crates/core/src/battery/kobo.rs | 2 +- crates/core/src/context.rs | 6 +++--- crates/core/src/document/djvu.rs | 5 +++-- crates/core/src/document/epub/mod.rs | 4 ++-- crates/core/src/document/html/engine.rs | 5 +++-- crates/core/src/document/html/layout.rs | 6 +++--- crates/core/src/document/html/mod.rs | 4 ++-- crates/core/src/document/html/parse.rs | 4 ++-- crates/core/src/document/mod.rs | 6 +++--- crates/core/src/document/pdf.rs | 5 +++-- crates/core/src/font/mod.rs | 9 +++++---- crates/core/src/frontlight/mod.rs | 2 +- crates/core/src/frontlight/natural.rs | 2 +- crates/core/src/frontlight/premixed.rs | 2 +- crates/core/src/gesture.rs | 6 +++--- crates/core/src/metadata.rs | 2 +- crates/core/src/settings/mod.rs | 6 +++--- crates/core/src/settings/preset.rs | 2 +- crates/core/src/view/battery.rs | 9 +++++---- crates/core/src/view/button.rs | 12 +++++++----- crates/core/src/view/calculator/bottom_bar.rs | 9 +++++---- crates/core/src/view/calculator/code_area.rs | 11 ++++++----- crates/core/src/view/calculator/input_bar.rs | 11 ++++++----- crates/core/src/view/calculator/mod.rs | 9 +++++---- crates/core/src/view/clock.rs | 9 +++++---- crates/core/src/view/common.rs | 9 +++++---- crates/core/src/view/dialog.rs | 9 +++++---- crates/core/src/view/dictionary/bottom_bar.rs | 9 +++++---- crates/core/src/view/dictionary/mod.rs | 11 ++++++----- crates/core/src/view/filler.rs | 6 +++--- crates/core/src/view/frontlight.rs | 9 +++++---- crates/core/src/view/home/address_bar.rs | 11 ++++++----- crates/core/src/view/home/book.rs | 11 ++++++----- crates/core/src/view/home/bottom_bar.rs | 7 ++++--- crates/core/src/view/home/directories_bar.rs | 9 +++++---- crates/core/src/view/home/directory.rs | 9 +++++---- crates/core/src/view/home/library_label.rs | 9 +++++---- crates/core/src/view/home/mod.rs | 11 ++++++----- crates/core/src/view/home/navigation_bar.rs | 9 +++++---- crates/core/src/view/home/shelf.rs | 11 ++++++----- crates/core/src/view/icon.rs | 11 ++++++----- crates/core/src/view/image.rs | 7 ++++--- crates/core/src/view/input_field.rs | 9 +++++---- crates/core/src/view/intermission.rs | 9 +++++---- crates/core/src/view/key.rs | 11 ++++++----- crates/core/src/view/keyboard.rs | 11 ++++++----- crates/core/src/view/label.rs | 9 +++++---- crates/core/src/view/labeled_icon.rs | 5 +++-- crates/core/src/view/menu.rs | 9 +++++---- crates/core/src/view/menu_entry.rs | 11 ++++++----- crates/core/src/view/mod.rs | 10 +++++----- crates/core/src/view/named_input.rs | 9 +++++---- crates/core/src/view/notification.rs | 11 ++++++----- crates/core/src/view/page_label.rs | 9 +++++---- crates/core/src/view/preset.rs | 11 ++++++----- crates/core/src/view/presets_list.rs | 9 +++++---- crates/core/src/view/reader/bottom_bar.rs | 9 +++++---- crates/core/src/view/reader/chapter_label.rs | 9 +++++---- crates/core/src/view/reader/margin_cropper.rs | 9 +++++---- crates/core/src/view/reader/mod.rs | 13 +++++++------ crates/core/src/view/reader/results_bar.rs | 9 +++++---- crates/core/src/view/reader/results_label.rs | 9 +++++---- crates/core/src/view/reader/tool_bar.rs | 11 ++++++----- crates/core/src/view/rotation_values/mod.rs | 9 +++++---- crates/core/src/view/rounded_button.rs | 11 ++++++----- crates/core/src/view/search_bar.rs | 11 ++++++----- crates/core/src/view/sketch/mod.rs | 11 ++++++----- crates/core/src/view/slider.rs | 11 ++++++----- crates/core/src/view/top_bar.rs | 7 ++++--- crates/core/src/view/touch_events/mod.rs | 9 +++++---- crates/emulator/src/main.rs | 8 ++++---- crates/plato/src/app.rs | 10 +++++----- 72 files changed, 325 insertions(+), 270 deletions(-) diff --git a/crates/core/src/battery/kobo.rs b/crates/core/src/battery/kobo.rs index 0bd5f3d8..315ce050 100644 --- a/crates/core/src/battery/kobo.rs +++ b/crates/core/src/battery/kobo.rs @@ -2,7 +2,7 @@ use std::fs::File; use std::path::Path; use std::io::{Read, Seek, SeekFrom}; use anyhow::{Error, format_err}; -use crate::device::CURRENT_DEVICE; +use display::device::CURRENT_DEVICE; use super::{Battery, Status}; const BATTERY_INTERFACES: [&str; 3] = ["/sys/class/power_supply/bd71827_bat", diff --git a/crates/core/src/context.rs b/crates/core/src/context.rs index b6400049..85da12da 100644 --- a/crates/core/src/context.rs +++ b/crates/core/src/context.rs @@ -8,15 +8,15 @@ use walkdir::WalkDir; use rand_core::SeedableRng; use rand_xoshiro::Xoroshiro128Plus; use crate::dictionary::{Dictionary, load_dictionary_from_file}; -use crate::framebuffer::{Framebuffer, Display}; +use display::framebuffer::{Framebuffer, Display}; use crate::view::ViewId; use crate::helpers::{load_json, IsHidden}; use crate::settings::Settings; use crate::frontlight::Frontlight; use crate::lightsensor::LightSensor; use crate::battery::Battery; -use crate::geom::Rectangle; -use crate::device::CURRENT_DEVICE; +use display::geom::Rectangle; +use display::device::CURRENT_DEVICE; use crate::library::Library; use crate::font::Fonts; use crate::rtc::Rtc; diff --git a/crates/core/src/document/djvu.rs b/crates/core/src/document/djvu.rs index 94c18e19..d8b42380 100644 --- a/crates/core/src/document/djvu.rs +++ b/crates/core/src/document/djvu.rs @@ -8,8 +8,9 @@ use std::os::unix::ffi::OsStrExt; use super::{Document, Location, TextLocation, BoundedText, TocEntry}; use super::{chapter, chapter_relative}; use crate::metadata::TextAlign; -use crate::framebuffer::Pixmap; -use crate::geom::{Rectangle, Boundary, CycleDir}; +use display::framebuffer::Pixmap; +use display::geom::{Rectangle, Boundary, CycleDir}; +use display::bndr; impl Into for Rectangle { fn into(self) -> DjvuRect { diff --git a/crates/core/src/document/epub/mod.rs b/crates/core/src/document/epub/mod.rs index 2f761f49..33b7250d 100644 --- a/crates/core/src/document/epub/mod.rs +++ b/crates/core/src/document/epub/mod.rs @@ -6,11 +6,11 @@ use fxhash::FxHashMap; use zip::ZipArchive; use percent_encoding::percent_decode_str; use anyhow::{Error, format_err}; -use crate::framebuffer::Pixmap; +use display::framebuffer::Pixmap; use crate::helpers::{Normalize, decode_entities}; use crate::document::{Document, Location, TextLocation, TocEntry, BoundedText, chapter_from_uri}; use crate::unit::pt_to_px; -use crate::geom::{Boundary, CycleDir}; +use display::geom::{Boundary, CycleDir}; use super::pdf::PdfOpener; use super::html::dom::{XmlTree, NodeRef}; use super::html::engine::{Page, Engine, ResourceFetcher}; diff --git a/crates/core/src/document/html/engine.rs b/crates/core/src/document/html/engine.rs index ed99e0d8..388a28d2 100644 --- a/crates/core/src/document/html/engine.rs +++ b/crates/core/src/document/html/engine.rs @@ -8,12 +8,12 @@ use xi_unicode::LineBreakIterator; use percent_encoding::percent_decode_str; use septem::Roman; use crate::helpers::{Normalize, decode_entities}; -use crate::framebuffer::{Framebuffer, Pixmap}; +use display::framebuffer::{Framebuffer, Pixmap}; use crate::font::{FontOpener, FontFamily}; use crate::document::{Document, Location}; use crate::document::pdf::PdfOpener; use crate::unit::{mm_to_px, pt_to_px}; -use crate::geom::{Point, Vec2, Rectangle, Edge}; +use display::geom::{Point, Vec2, Rectangle, Edge}; use crate::settings::{HYPHEN_PENALTY, STRETCH_TOLERANCE}; use crate::settings::{DEFAULT_FONT_SIZE, DEFAULT_MARGIN_WIDTH, DEFAULT_TEXT_ALIGN, DEFAULT_LINE_HEIGHT}; use super::parse::{parse_display, parse_edge, parse_float, parse_text_align, parse_text_indent}; @@ -31,6 +31,7 @@ use super::layout::{hyph_lang, collapse_margins, DEFAULT_HYPH_LANG, HYPHENATION_ use super::layout::{EM_SPACE_RATIOS, WORD_SPACE_RATIOS, FONT_SPACES}; use super::style::{StyleSheet, specified_values}; use super::xml::XmlExt; +use display::{rect, pt}; const DEFAULT_DPI: u16 = 300; const DEFAULT_WIDTH: u32 = 1404; diff --git a/crates/core/src/document/html/layout.rs b/crates/core/src/document/html/layout.rs index 59c9aee1..d6582a10 100644 --- a/crates/core/src/document/html/layout.rs +++ b/crates/core/src/document/html/layout.rs @@ -4,11 +4,11 @@ use std::fmt::Debug; use fxhash::FxHashMap; use lazy_static::lazy_static; use kl_hyphenate::{Standard, Language, Load}; -use crate::color::Color; -use crate::geom::{Point, Rectangle, Edge}; +use display::color::Color; +use display::geom::{Point, Rectangle, Edge}; use crate::font::{FontFamily, Font, RenderPlan}; pub use crate::metadata::TextAlign; -use crate::color::BLACK; +use display::color::BLACK; pub const DEFAULT_HYPH_LANG: &str = "en"; diff --git a/crates/core/src/document/html/mod.rs b/crates/core/src/document/html/mod.rs index 6f3804a2..9cf15853 100644 --- a/crates/core/src/document/html/mod.rs +++ b/crates/core/src/document/html/mod.rs @@ -11,11 +11,11 @@ use std::fs::{self, File}; use std::path::{Path, PathBuf}; use fxhash::FxHashMap; use anyhow::Error; -use crate::framebuffer::Pixmap; +use display::framebuffer::Pixmap; use crate::helpers::{Normalize, decode_entities}; use crate::document::{Document, Location, TextLocation, TocEntry, BoundedText}; use crate::unit::pt_to_px; -use crate::geom::{Boundary, Edge, CycleDir}; +use display::geom::{Boundary, Edge, CycleDir}; use self::dom::{XmlTree, NodeRef}; use self::layout::{RootData, StyleData, DrawState, LoopContext}; use self::layout::{DrawCommand, TextCommand, ImageCommand, TextAlign}; diff --git a/crates/core/src/document/html/parse.rs b/crates/core/src/document/html/parse.rs index 3dd185e7..8cc4d91c 100644 --- a/crates/core/src/document/html/parse.rs +++ b/crates/core/src/document/html/parse.rs @@ -3,8 +3,8 @@ use regex::Regex; use super::layout::{FontKind, FontStyle, FontWeight, WordSpacing}; use super::layout::{TextAlign, Display, Float, ListStyleType}; use super::layout::{InlineMaterial, GlueMaterial, PenaltyMaterial}; -use crate::geom::Edge; -use crate::color::{Color, BLACK, WHITE}; +use display::geom::Edge; +use display::color::{Color, BLACK, WHITE}; use crate::unit::{pt_to_px, pc_to_px, mm_to_px, in_to_px}; use crate::unit::{POINTS_PER_INCH, PICAS_PER_INCH, MILLIMETERS_PER_INCH, CENTIMETERS_PER_INCH}; diff --git a/crates/core/src/document/mod.rs b/crates/core/src/document/mod.rs index f59c1de8..4156bff8 100644 --- a/crates/core/src/document/mod.rs +++ b/crates/core/src/document/mod.rs @@ -26,11 +26,11 @@ use self::djvu::DjvuOpener; use self::pdf::PdfOpener; use self::epub::EpubDocument; use self::html::HtmlDocument; -use crate::geom::{Boundary, CycleDir}; +use display::geom::{Boundary, CycleDir}; use crate::metadata::{TextAlign, Annotation}; -use crate::framebuffer::Pixmap; +use display::framebuffer::Pixmap; use crate::settings::INTERNAL_CARD_ROOT; -use crate::device::CURRENT_DEVICE; +use display::device::CURRENT_DEVICE; pub const BYTES_PER_PAGE: f64 = 2048.0; diff --git a/crates/core/src/document/pdf.rs b/crates/core/src/document/pdf.rs index 10529049..dfdccf16 100644 --- a/crates/core/src/document/pdf.rs +++ b/crates/core/src/document/pdf.rs @@ -12,9 +12,10 @@ use std::os::unix::ffi::OsStrExt; use super::{Document, Location, TextLocation, BoundedText, TocEntry}; use super::{chapter, chapter_relative}; use crate::metadata::TextAlign; -use crate::geom::{Boundary, CycleDir}; +use display::geom::{Boundary, CycleDir}; use crate::unit::pt_to_px; -use crate::framebuffer::Pixmap; +use display::framebuffer::Pixmap; +use display::vec2; const USER_STYLESHEET: &str = "css/html-user.css"; diff --git a/crates/core/src/font/mod.rs b/crates/core/src/font/mod.rs index 45eca13d..a88ff9a9 100644 --- a/crates/core/src/font/mod.rs +++ b/crates/core/src/font/mod.rs @@ -19,11 +19,12 @@ use anyhow::{Error, format_err}; use thiserror::Error; use globset::Glob; use walkdir::WalkDir; -use crate::color::Color; -use crate::geom::{Point, Vec2}; +use display::color::Color; +use display::geom::{Point, Vec2}; use crate::helpers::IsHidden; -use crate::framebuffer::Framebuffer; -use crate::device::CURRENT_DEVICE; +use display::framebuffer::Framebuffer; +use display::device::CURRENT_DEVICE; +use display::pt; // Font sizes in 1/64th of a point pub const FONT_SIZES: [u32; 3] = [349, 524, 629]; diff --git a/crates/core/src/frontlight/mod.rs b/crates/core/src/frontlight/mod.rs index d8e2f90c..1d2eda71 100644 --- a/crates/core/src/frontlight/mod.rs +++ b/crates/core/src/frontlight/mod.rs @@ -6,7 +6,7 @@ use serde::{Serialize, Deserialize}; pub use self::standard::StandardFrontlight; pub use self::natural::NaturalFrontlight; pub use self::premixed::PremixedFrontlight; -use crate::geom::lerp; +use display::geom::lerp; #[derive(Debug, Copy, Clone, Serialize, Deserialize)] pub struct LightLevels { diff --git a/crates/core/src/frontlight/natural.rs b/crates/core/src/frontlight/natural.rs index d6a349cd..cfbcad1f 100644 --- a/crates/core/src/frontlight/natural.rs +++ b/crates/core/src/frontlight/natural.rs @@ -6,7 +6,7 @@ use std::path::PathBuf; use fxhash::FxHashMap; use lazy_static::lazy_static; use anyhow::Error; -use crate::device::{CURRENT_DEVICE, Model}; +use display::device::{CURRENT_DEVICE, Model}; use super::{Frontlight, LightLevels}; const FRONTLIGHT_INTERFACE: &str = "/sys/class/backlight"; diff --git a/crates/core/src/frontlight/premixed.rs b/crates/core/src/frontlight/premixed.rs index 53f01ab8..80770cf0 100644 --- a/crates/core/src/frontlight/premixed.rs +++ b/crates/core/src/frontlight/premixed.rs @@ -3,7 +3,7 @@ use std::io::Write; use std::fs::File; use std::fs::OpenOptions; use anyhow::Error; -use crate::device::CURRENT_DEVICE; +use display::device::CURRENT_DEVICE; use super::{Frontlight, LightLevels}; const FRONTLIGHT_WHITE: &str = "/sys/class/backlight/mxc_msp430.0/brightness"; diff --git a/crates/core/src/gesture.rs b/crates/core/src/gesture.rs index 07c6d1a9..cbf8706b 100644 --- a/crates/core/src/gesture.rs +++ b/crates/core/src/gesture.rs @@ -6,10 +6,10 @@ use std::f64; use std::time::Duration; use std::thread; use crate::unit::mm_to_px; -use crate::input::{DeviceEvent, FingerStatus, ButtonCode, ButtonStatus}; +use display::input::{DeviceEvent, FingerStatus, ButtonCode, ButtonStatus}; use crate::view::Event; -use crate::device::CURRENT_DEVICE; -use crate::geom::{Point, Vec2, Dir, DiagDir, Axis, nearest_segment_point, elbow}; +use display::device::CURRENT_DEVICE; +use display::geom::{Point, Vec2, Dir, DiagDir, Axis, nearest_segment_point, elbow}; pub const TAP_JITTER_MM: f32 = 6.0; pub const HOLD_JITTER_MM: f32 = 1.5; diff --git a/crates/core/src/metadata.rs b/crates/core/src/metadata.rs index fd4be29b..c0a198ea 100644 --- a/crates/core/src/metadata.rs +++ b/crates/core/src/metadata.rs @@ -10,7 +10,7 @@ use fxhash::FxHashMap; use serde::{Serialize, Deserialize}; use lazy_static::lazy_static; use titlecase::titlecase; -use crate::geom::Point; +use display::geom::Point; use crate::document::{Document, SimpleTocEntry, TextLocation}; use crate::document::asciify; use crate::document::epub::EpubDocument; diff --git a/crates/core/src/settings/mod.rs b/crates/core/src/settings/mod.rs index c4437794..40bdf2cc 100644 --- a/crates/core/src/settings/mod.rs +++ b/crates/core/src/settings/mod.rs @@ -2,15 +2,15 @@ mod preset; use std::env; use std::ops::Index; -use std::fmt::{self, Debug}; use std::path::PathBuf; use std::collections::{BTreeMap, HashMap}; use fxhash::FxHashSet; use serde::{Serialize, Deserialize}; use crate::metadata::{SortMethod, TextAlign}; use crate::frontlight::LightLevels; -use crate::color::{Color, BLACK}; -use crate::device::CURRENT_DEVICE; +use display::color::{Color, BLACK}; +use display::device::CURRENT_DEVICE; +use display::input::ButtonScheme; use crate::unit::mm_to_px; pub use self::preset::{LightPreset, guess_frontlight}; diff --git a/crates/core/src/settings/preset.rs b/crates/core/src/settings/preset.rs index eea0762c..473433e0 100644 --- a/crates/core/src/settings/preset.rs +++ b/crates/core/src/settings/preset.rs @@ -1,7 +1,7 @@ use chrono::{Local, Timelike}; use serde::{Serialize, Deserialize}; use crate::frontlight::LightLevels; -use crate::geom::circular_distances; +use display::geom::circular_distances; const MINUTES_PER_DAY: u16 = 24 * 60; diff --git a/crates/core/src/view/battery.rs b/crates/core/src/view/battery.rs index 61c37a62..d1810465 100644 --- a/crates/core/src/view/battery.rs +++ b/crates/core/src/view/battery.rs @@ -1,7 +1,8 @@ -use crate::device::CURRENT_DEVICE; -use crate::framebuffer::{Framebuffer, UpdateMode}; -use crate::geom::{Rectangle, BorderSpec, CornerSpec}; -use crate::color::{BLACK, WHITE, BATTERY_FILL}; +use display::device::CURRENT_DEVICE; +use display::framebuffer::{Framebuffer, UpdateMode}; +use display::geom::{Rectangle, BorderSpec, CornerSpec}; +use display::color::{BLACK, WHITE, BATTERY_FILL}; +use display::{rect, pt}; use super::{View, ViewId, Event, Hub, Bus, Id, ID_FEEDER, RenderQueue, RenderData}; use super::{THICKNESS_LARGE, THICKNESS_MEDIUM, BORDER_RADIUS_SMALL}; use super::icon::ICONS_PIXMAPS; diff --git a/crates/core/src/view/button.rs b/crates/core/src/view/button.rs index 736c1b1a..f1e8c695 100644 --- a/crates/core/src/view/button.rs +++ b/crates/core/src/view/button.rs @@ -1,14 +1,16 @@ -use crate::device::CURRENT_DEVICE; -use crate::geom::{Rectangle, CornerSpec, BorderSpec}; +use display::device::CURRENT_DEVICE; +use display::geom::{Rectangle, CornerSpec, BorderSpec}; use crate::font::{Fonts, font_from_style, NORMAL_STYLE}; use super::{View, Event, Hub, Bus, Id, ID_FEEDER, RenderQueue, RenderData}; use super::{THICKNESS_MEDIUM, BORDER_RADIUS_LARGE}; -use crate::framebuffer::{Framebuffer, UpdateMode}; -use crate::input::{DeviceEvent, FingerStatus}; +use display::framebuffer::{Framebuffer, UpdateMode}; +use display::input::{DeviceEvent, FingerStatus}; use crate::gesture::GestureEvent; -use crate::color::{TEXT_NORMAL, TEXT_INVERTED_HARD}; +use display::color::{TEXT_NORMAL, TEXT_INVERTED_HARD}; use crate::unit::scale_by_dpi; use crate::context::Context; +use display::pt; + pub struct Button { id: Id, diff --git a/crates/core/src/view/calculator/bottom_bar.rs b/crates/core/src/view/calculator/bottom_bar.rs index e0b3e63a..1572ca04 100644 --- a/crates/core/src/view/calculator/bottom_bar.rs +++ b/crates/core/src/view/calculator/bottom_bar.rs @@ -1,12 +1,13 @@ -use crate::framebuffer::Framebuffer; +use display::framebuffer::Framebuffer; use crate::view::{View, Event, Hub, Bus, Id, ID_FEEDER, RenderQueue, ViewId}; use crate::view::filler::Filler; use crate::view::labeled_icon::LabeledIcon; use crate::gesture::GestureEvent; -use crate::input::DeviceEvent; -use crate::geom::{Rectangle, divide}; +use display::input::DeviceEvent; +use display::geom::{Rectangle, divide}; use crate::font::Fonts; -use crate::color::WHITE; +use display::color::WHITE; +use display::rect; use crate::context::Context; #[derive(Debug)] diff --git a/crates/core/src/view/calculator/code_area.rs b/crates/core/src/view/calculator/code_area.rs index faba2098..7c5c9650 100644 --- a/crates/core/src/view/calculator/code_area.rs +++ b/crates/core/src/view/calculator/code_area.rs @@ -1,13 +1,14 @@ -use crate::device::CURRENT_DEVICE; +use display::device::CURRENT_DEVICE; use crate::font::Fonts; -use crate::input::{DeviceEvent, ButtonCode, ButtonStatus}; +use display::input::{DeviceEvent, ButtonCode, ButtonStatus}; use crate::view::{View, Event, Hub, Bus, Id, ID_FEEDER, RenderQueue}; use super::{Line, LineOrigin}; use crate::gesture::GestureEvent; -use crate::framebuffer::{Framebuffer, UpdateMode}; +use display::framebuffer::{Framebuffer, UpdateMode}; use crate::unit::mm_to_px; -use crate::geom::{Rectangle, Dir, CycleDir}; -use crate::color::TEXT_NORMAL; +use display::geom::{Rectangle, Dir, CycleDir}; +use display::color::TEXT_NORMAL; +use display::{rect, pt}; use crate::context::Context; pub struct CodeArea { diff --git a/crates/core/src/view/calculator/input_bar.rs b/crates/core/src/view/calculator/input_bar.rs index b6c452e2..29bd0336 100644 --- a/crates/core/src/view/calculator/input_bar.rs +++ b/crates/core/src/view/calculator/input_bar.rs @@ -1,13 +1,14 @@ -use crate::framebuffer::{Framebuffer}; -use crate::device::CURRENT_DEVICE; +use display::framebuffer::Framebuffer; +use display::device::CURRENT_DEVICE; use crate::view::{View, Event, Hub, Bus, Id, ID_FEEDER, RenderQueue, ViewId, THICKNESS_MEDIUM}; use crate::view::icon::Icon; use crate::view::input_field::InputField; use crate::view::filler::Filler; use crate::gesture::GestureEvent; -use crate::input::DeviceEvent; -use crate::color::{TEXT_BUMP_SMALL, SEPARATOR_NORMAL}; -use crate::geom::{Rectangle, CycleDir}; +use display::input::DeviceEvent; +use display::color::{TEXT_BUMP_SMALL, SEPARATOR_NORMAL}; +use display::geom::{Rectangle, CycleDir}; +use display::{rect, pt}; use crate::context::Context; use crate::unit::scale_by_dpi; use crate::font::Fonts; diff --git a/crates/core/src/view/calculator/mod.rs b/crates/core/src/view/calculator/mod.rs index f45cd1e3..b194d221 100644 --- a/crates/core/src/view/calculator/mod.rs +++ b/crates/core/src/view/calculator/mod.rs @@ -9,9 +9,9 @@ use std::io::Write; use std::io::{BufRead, BufReader}; use std::process::{Command, Child, Stdio}; use anyhow::{Error, format_err}; -use crate::device::CURRENT_DEVICE; +use display::device::CURRENT_DEVICE; use crate::gesture::GestureEvent; -use crate::geom::{Rectangle, CycleDir, halves}; +use display::geom::{Rectangle, CycleDir, halves}; use crate::view::filler::Filler; use self::input_bar::InputBar; use self::bottom_bar::BottomBar; @@ -25,9 +25,10 @@ use crate::view::{View, Event, Hub, Bus, RenderQueue, RenderData}; use crate::view::{EntryKind, EntryId, ViewId, Id, ID_FEEDER}; use crate::view::{SMALL_BAR_HEIGHT, BIG_BAR_HEIGHT, THICKNESS_MEDIUM}; use crate::unit::{scale_by_dpi, mm_to_px}; -use crate::framebuffer::{Framebuffer, UpdateMode}; +use display::framebuffer::{Framebuffer, UpdateMode}; use crate::font::Fonts; -use crate::color::BLACK; +use display::color::BLACK; +use display::rect; use crate::context::Context; const APP_DIR: &str = "bin/ivy"; diff --git a/crates/core/src/view/clock.rs b/crates/core/src/view/clock.rs index 55eefb88..86539e2a 100644 --- a/crates/core/src/view/clock.rs +++ b/crates/core/src/view/clock.rs @@ -1,11 +1,12 @@ use chrono::{Local, DateTime}; -use crate::device::CURRENT_DEVICE; -use crate::framebuffer::{Framebuffer, UpdateMode}; +use display::device::CURRENT_DEVICE; +use display::framebuffer::{Framebuffer, UpdateMode}; use super::{View, ViewId, Event, Hub, Bus, Id, ID_FEEDER, RenderQueue, RenderData}; use crate::gesture::GestureEvent; use crate::font::{Fonts, font_from_style, NORMAL_STYLE}; -use crate::color::{BLACK, WHITE}; -use crate::geom::{Rectangle}; +use display::color::{BLACK, WHITE}; +use display::geom::Rectangle; +use display::pt; use crate::context::Context; pub struct Clock { diff --git a/crates/core/src/view/common.rs b/crates/core/src/view/common.rs index e4a5a696..4bb56d4f 100644 --- a/crates/core/src/view/common.rs +++ b/crates/core/src/view/common.rs @@ -1,9 +1,10 @@ use std::sync::mpsc; use chrono::Local; -use crate::device::CURRENT_DEVICE; -use crate::settings::{ButtonScheme, RotationLock}; -use crate::framebuffer::UpdateMode; -use crate::geom::{Point, Rectangle}; +use display::device::CURRENT_DEVICE; +use crate::settings::RotationLock; +use display::input::ButtonScheme; +use display::framebuffer::UpdateMode; +use display::geom::{Point, Rectangle}; use super::{View, RenderQueue, RenderData, ViewId, AppCmd, EntryId, EntryKind}; use super::menu::{Menu, MenuKind}; use super::notification::Notification; diff --git a/crates/core/src/view/dialog.rs b/crates/core/src/view/dialog.rs index 6c7900e9..0ea9bff6 100644 --- a/crates/core/src/view/dialog.rs +++ b/crates/core/src/view/dialog.rs @@ -1,14 +1,15 @@ use std::thread; -use crate::device::CURRENT_DEVICE; -use crate::geom::{Rectangle, CornerSpec, BorderSpec}; +use display::device::CURRENT_DEVICE; +use display::geom::{Rectangle, CornerSpec, BorderSpec}; +use display::rect; use crate::font::{Fonts, font_from_style, NORMAL_STYLE}; use super::{View, Event, Hub, Bus, Id, ID_FEEDER, RenderQueue, ViewId, Align}; use super::{THICKNESS_LARGE, BORDER_RADIUS_MEDIUM, CLOSE_IGNITION_DELAY}; use super::button::Button; use super::label::Label; -use crate::framebuffer::Framebuffer; +use display::framebuffer::Framebuffer; use crate::gesture::GestureEvent; -use crate::color::{BLACK, WHITE}; +use display::color::{BLACK, WHITE}; use crate::unit::scale_by_dpi; use crate::context::Context; diff --git a/crates/core/src/view/dictionary/bottom_bar.rs b/crates/core/src/view/dictionary/bottom_bar.rs index 24bef046..7f5a7a51 100644 --- a/crates/core/src/view/dictionary/bottom_bar.rs +++ b/crates/core/src/view/dictionary/bottom_bar.rs @@ -1,12 +1,13 @@ -use crate::framebuffer::{Framebuffer, UpdateMode}; +use display::framebuffer::{Framebuffer, UpdateMode}; use crate::view::{View, Event, Hub, Bus, Id, ID_FEEDER, RenderQueue, RenderData, ViewId, Align}; use crate::view::icon::Icon; use crate::view::filler::Filler; use crate::view::label::Label; use crate::gesture::GestureEvent; -use crate::input::DeviceEvent; -use crate::geom::{Rectangle, CycleDir}; -use crate::color::WHITE; +use display::input::DeviceEvent; +use display::geom::{Rectangle, CycleDir}; +use display::color::WHITE; +use display::{rect, pt}; use crate::font::Fonts; use crate::context::Context; diff --git a/crates/core/src/view/dictionary/mod.rs b/crates/core/src/view/dictionary/mod.rs index 26311247..9dda77bd 100644 --- a/crates/core/src/view/dictionary/mod.rs +++ b/crates/core/src/view/dictionary/mod.rs @@ -1,12 +1,12 @@ mod bottom_bar; use regex::Regex; -use crate::device::CURRENT_DEVICE; -use crate::framebuffer::{Framebuffer, UpdateMode, Pixmap}; -use crate::geom::{Rectangle, Point, Dir, CycleDir, halves}; +use display::device::CURRENT_DEVICE; +use display::framebuffer::{Framebuffer, UpdateMode, Pixmap}; +use display::geom::{Rectangle, Point, Dir, CycleDir, halves}; use crate::unit::scale_by_dpi; use crate::font::Fonts; -use crate::input::{DeviceEvent, ButtonCode, ButtonStatus}; +use display::input::{DeviceEvent, ButtonCode, ButtonStatus}; use crate::view::{View, Event, Hub, Bus, RenderQueue, RenderData}; use crate::view::{ViewId, Id, ID_FEEDER, EntryId, EntryKind}; use crate::view::{SMALL_BAR_HEIGHT, BIG_BAR_HEIGHT, THICKNESS_MEDIUM}; @@ -15,7 +15,8 @@ use crate::document::html::HtmlDocument; use crate::view::common::{locate_by_id, locate}; use crate::view::common::{toggle_main_menu, toggle_battery_menu, toggle_clock_menu}; use crate::gesture::GestureEvent; -use crate::color::BLACK; +use display::color::BLACK; +use display::{rect, pt}; use crate::context::Context; use crate::view::filler::Filler; use crate::view::named_input::NamedInput; diff --git a/crates/core/src/view/filler.rs b/crates/core/src/view/filler.rs index e2698735..c1c130de 100644 --- a/crates/core/src/view/filler.rs +++ b/crates/core/src/view/filler.rs @@ -1,9 +1,9 @@ -use crate::framebuffer::Framebuffer; +use display::framebuffer::Framebuffer; use super::{View, Event, Hub, Bus, Id, ID_FEEDER, RenderQueue}; -use crate::geom::Rectangle; +use display::geom::Rectangle; use crate::context::Context; use crate::font::Fonts; -use crate::color::Color; +use display::color::Color; pub struct Filler { id: Id, diff --git a/crates/core/src/view/frontlight.rs b/crates/core/src/view/frontlight.rs index fc12d7e0..cf130aa0 100644 --- a/crates/core/src/view/frontlight.rs +++ b/crates/core/src/view/frontlight.rs @@ -1,6 +1,7 @@ -use crate::device::CURRENT_DEVICE; -use crate::framebuffer::{Framebuffer, UpdateMode}; -use crate::geom::{Rectangle, CornerSpec, BorderSpec}; +use display::device::CURRENT_DEVICE; +use display::framebuffer::{Framebuffer, UpdateMode}; +use display::geom::{Rectangle, CornerSpec, BorderSpec}; +use display::{rect, pt}; use crate::font::{Fonts, font_from_style, NORMAL_STYLE}; use super::{View, Event, Hub, Bus, Id, ID_FEEDER, RenderQueue, RenderData, ViewId, EntryId, SliderId, Align}; use super::{SMALL_BAR_HEIGHT, THICKNESS_LARGE, BORDER_RADIUS_MEDIUM}; @@ -13,7 +14,7 @@ use super::common::shift; use crate::frontlight::LightLevels; use crate::gesture::GestureEvent; use crate::settings::{LightPreset, guess_frontlight}; -use crate::color::{BLACK, WHITE}; +use display::color::{BLACK, WHITE}; use crate::unit::scale_by_dpi; use crate::context::Context; diff --git a/crates/core/src/view/home/address_bar.rs b/crates/core/src/view/home/address_bar.rs index e141854f..408ca5d7 100644 --- a/crates/core/src/view/home/address_bar.rs +++ b/crates/core/src/view/home/address_bar.rs @@ -1,13 +1,14 @@ -use crate::framebuffer::Framebuffer; -use crate::device::CURRENT_DEVICE; +use display::framebuffer::Framebuffer; +use display::device::CURRENT_DEVICE; +use display::{rect, pt}; use crate::view::{View, Event, Hub, Bus, Id, ID_FEEDER, RenderQueue, ViewId, THICKNESS_MEDIUM}; use crate::view::icon::Icon; use crate::view::input_field::InputField; use crate::view::filler::Filler; use crate::gesture::GestureEvent; -use crate::input::DeviceEvent; -use crate::color::{TEXT_BUMP_SMALL, SEPARATOR_NORMAL}; -use crate::geom::Rectangle; +use display::input::DeviceEvent; +use display::color::{TEXT_BUMP_SMALL, SEPARATOR_NORMAL}; +use display::geom::Rectangle; use crate::context::Context; use crate::unit::scale_by_dpi; use crate::font::Fonts; diff --git a/crates/core/src/view/home/book.rs b/crates/core/src/view/home/book.rs index 2cd1d124..40fb1985 100644 --- a/crates/core/src/view/home/book.rs +++ b/crates/core/src/view/home/book.rs @@ -1,10 +1,11 @@ use std::path::PathBuf; -use crate::device::CURRENT_DEVICE; -use crate::framebuffer::{Framebuffer, UpdateMode}; +use display::device::CURRENT_DEVICE; +use display::framebuffer::{Framebuffer, UpdateMode}; +use display::{rect, pt}; use crate::view::{View, Event, Hub, Bus, Id, ID_FEEDER, RenderQueue, RenderData, THICKNESS_SMALL}; use crate::font::{MD_TITLE, MD_AUTHOR, MD_YEAR, MD_KIND, MD_SIZE}; -use crate::color::{BLACK, WHITE, READING_PROGRESS}; -use crate::color::{TEXT_NORMAL, TEXT_INVERTED_HARD}; +use display::color::{BLACK, WHITE, READING_PROGRESS}; +use display::color::{TEXT_NORMAL, TEXT_INVERTED_HARD}; use crate::gesture::GestureEvent; use crate::metadata::{Info, Status}; use crate::settings::{FirstColumn, SecondColumn}; @@ -12,7 +13,7 @@ use crate::unit::scale_by_dpi; use crate::document::{HumanSize, Location, Document}; use crate::document::pdf::PdfOpener; use crate::font::{Fonts, font_from_style}; -use crate::geom::{Rectangle, CornerSpec, BorderSpec, halves}; +use display::geom::{Rectangle, CornerSpec, BorderSpec, halves}; use crate::context::Context; const PROGRESS_HEIGHT: f32 = 13.0; diff --git a/crates/core/src/view/home/bottom_bar.rs b/crates/core/src/view/home/bottom_bar.rs index bb259691..dbcf7b6f 100644 --- a/crates/core/src/view/home/bottom_bar.rs +++ b/crates/core/src/view/home/bottom_bar.rs @@ -1,11 +1,12 @@ -use crate::framebuffer::{Framebuffer, UpdateMode}; +use display::framebuffer::{Framebuffer, UpdateMode}; use crate::view::{View, Event, Hub, Bus, Id, ID_FEEDER, RenderQueue, RenderData}; use crate::view::icon::Icon; use crate::view::filler::Filler; use crate::view::page_label::PageLabel; use super::library_label::LibraryLabel; -use crate::geom::{Rectangle, CycleDir, halves}; -use crate::color::WHITE; +use display::geom::{Rectangle, CycleDir, halves}; +use display::color::WHITE; +use display::rect; use crate::context::Context; use crate::font::Fonts; diff --git a/crates/core/src/view/home/directories_bar.rs b/crates/core/src/view/home/directories_bar.rs index 62efd38f..221b0d8c 100644 --- a/crates/core/src/view/home/directories_bar.rs +++ b/crates/core/src/view/home/directories_bar.rs @@ -1,7 +1,8 @@ use std::path::{PathBuf, Path}; -use crate::device::CURRENT_DEVICE; +use display::device::CURRENT_DEVICE; use std::collections::BTreeSet; -use crate::framebuffer::{Framebuffer, UpdateMode}; +use display::framebuffer::{Framebuffer, UpdateMode}; +use display::{rect, pt}; use crate::view::{View, Event, Hub, Bus, Id, ID_FEEDER, RenderQueue, RenderData, Align}; use crate::view::icon::{Icon, ICONS_PIXMAPS}; use crate::view::{SMALL_BAR_HEIGHT, THICKNESS_MEDIUM}; @@ -9,8 +10,8 @@ use crate::view::filler::Filler; use super::directory::Directory; use crate::gesture::GestureEvent; use crate::font::{Font, Fonts, font_from_style, NORMAL_STYLE}; -use crate::geom::{Point, Rectangle, Dir, CycleDir, divide, small_half, big_half}; -use crate::color::TEXT_BUMP_SMALL; +use display::geom::{Point, Rectangle, Dir, CycleDir, divide, small_half, big_half}; +use display::color::TEXT_BUMP_SMALL; use crate::unit::scale_by_dpi; use crate::context::Context; diff --git a/crates/core/src/view/home/directory.rs b/crates/core/src/view/home/directory.rs index 791d8376..753fdf02 100644 --- a/crates/core/src/view/home/directory.rs +++ b/crates/core/src/view/home/directory.rs @@ -1,10 +1,11 @@ use std::path::{PathBuf, Path}; -use crate::device::CURRENT_DEVICE; +use display::device::CURRENT_DEVICE; use crate::gesture::GestureEvent; use crate::font::{Fonts, font_from_style, NORMAL_STYLE}; -use crate::color::{WHITE, BLACK, TEXT_BUMP_SMALL}; -use crate::geom::{Rectangle, CornerSpec, BorderSpec}; -use crate::framebuffer::Framebuffer; +use display::color::{WHITE, BLACK, TEXT_BUMP_SMALL}; +use display::geom::{Rectangle, CornerSpec, BorderSpec}; +use display::framebuffer::Framebuffer; +use display::{rect, pt}; use crate::view::{View, Event, Hub, Bus, Id, ID_FEEDER, RenderQueue, Align}; use crate::view::{THICKNESS_SMALL, BORDER_RADIUS_SMALL}; use crate::unit::scale_by_dpi; diff --git a/crates/core/src/view/home/library_label.rs b/crates/core/src/view/home/library_label.rs index ecdc9ac6..f4bca496 100644 --- a/crates/core/src/view/home/library_label.rs +++ b/crates/core/src/view/home/library_label.rs @@ -1,9 +1,10 @@ -use crate::device::CURRENT_DEVICE; +use display::device::CURRENT_DEVICE; use crate::font::{Fonts, font_from_style, NORMAL_STYLE}; -use crate::framebuffer::{Framebuffer, UpdateMode}; +use display::framebuffer::{Framebuffer, UpdateMode}; use crate::gesture::GestureEvent; -use crate::color::{BLACK, WHITE}; -use crate::geom::{Rectangle}; +use display::color::{BLACK, WHITE}; +use display::geom::Rectangle; +use display::pt; use crate::view::{View, Event, Hub, Bus, Id, ID_FEEDER, RenderQueue, RenderData, ViewId}; use crate::context::Context; diff --git a/crates/core/src/view/home/mod.rs b/crates/core/src/view/home/mod.rs index 952a75ae..ddbd34ce 100644 --- a/crates/core/src/view/home/mod.rs +++ b/crates/core/src/view/home/mod.rs @@ -19,7 +19,7 @@ use rand_core::RngCore; use serde_json::{json, Value as JsonValue}; use anyhow::{Error, format_err}; use crate::library::Library; -use crate::framebuffer::{Framebuffer, UpdateMode}; +use display::framebuffer::{Framebuffer, UpdateMode}; use crate::metadata::{Info, Metadata, SortMethod, BookQuery, SimpleStatus, sort}; use crate::view::{View, Event, Hub, Bus, RenderQueue, RenderData}; use crate::view::{Id, ID_FEEDER, ViewId, EntryId, EntryKind}; @@ -40,11 +40,12 @@ use self::navigation_bar::NavigationBar; use self::shelf::Shelf; use self::bottom_bar::BottomBar; use crate::gesture::GestureEvent; -use crate::geom::{Rectangle, Dir, DiagDir, CycleDir, halves}; -use crate::input::{DeviceEvent, ButtonCode, ButtonStatus}; -use crate::device::CURRENT_DEVICE; +use display::geom::{Rectangle, Dir, DiagDir, CycleDir, halves}; +use display::input::{DeviceEvent, ButtonCode, ButtonStatus}; +use display::device::CURRENT_DEVICE; +use display::{rect, pt}; use crate::unit::scale_by_dpi; -use crate::color::BLACK; +use display::color::BLACK; use crate::font::Fonts; use crate::context::Context; diff --git a/crates/core/src/view/home/navigation_bar.rs b/crates/core/src/view/home/navigation_bar.rs index e412cdc0..5c2cab35 100644 --- a/crates/core/src/view/home/navigation_bar.rs +++ b/crates/core/src/view/home/navigation_bar.rs @@ -1,18 +1,19 @@ use std::path::{PathBuf, Path}; use std::collections::BTreeSet; use fxhash::FxHashMap; -use crate::device::CURRENT_DEVICE; -use crate::framebuffer::{Framebuffer, UpdateMode}; +use display::device::CURRENT_DEVICE; +use display::framebuffer::{Framebuffer, UpdateMode}; +use display::{rect, pt}; use crate::view::{View, Event, Hub, Bus, Id, ID_FEEDER, RenderQueue, RenderData}; use crate::view::{SMALL_BAR_HEIGHT, THICKNESS_MEDIUM}; use crate::unit::scale_by_dpi; use crate::view::filler::Filler; use super::directories_bar::DirectoriesBar; use crate::gesture::GestureEvent; -use crate::color::SEPARATOR_NORMAL; +use display::color::SEPARATOR_NORMAL; use crate::context::Context; use crate::font::{Fonts, font_from_style, NORMAL_STYLE}; -use crate::geom::{Point, Rectangle, Dir}; +use display::geom::{Point, Rectangle, Dir}; #[derive(Debug)] pub struct NavigationBar { diff --git a/crates/core/src/view/home/shelf.rs b/crates/core/src/view/home/shelf.rs index a4e1451a..b7cb92e3 100644 --- a/crates/core/src/view/home/shelf.rs +++ b/crates/core/src/view/home/shelf.rs @@ -3,19 +3,20 @@ use std::sync::Mutex; use std::path::PathBuf; use lazy_static::lazy_static; use super::book::Book; -use crate::device::CURRENT_DEVICE; +use display::device::CURRENT_DEVICE; use crate::view::{View, Event, Hub, Bus, Id, ID_FEEDER, RenderQueue, RenderData}; use crate::view::{BIG_BAR_HEIGHT, THICKNESS_MEDIUM}; use crate::view::filler::Filler; use crate::document::open; -use crate::framebuffer::{Framebuffer, UpdateMode}; +use display::framebuffer::{Framebuffer, UpdateMode}; use crate::settings::{FirstColumn, SecondColumn}; -use crate::geom::{Rectangle, Dir, CycleDir, halves}; -use crate::color::{WHITE, SEPARATOR_NORMAL}; +use display::geom::{Rectangle, Dir, CycleDir, halves}; +use display::color::{WHITE, SEPARATOR_NORMAL}; use crate::gesture::GestureEvent; use crate::unit::scale_by_dpi; use crate::metadata::Info; -use crate::geom::divide; +use display::geom::divide; +use display::rect; use crate::font::Fonts; use crate::context::Context; diff --git a/crates/core/src/view/icon.rs b/crates/core/src/view/icon.rs index ddd3e692..cacfde08 100644 --- a/crates/core/src/view/icon.rs +++ b/crates/core/src/view/icon.rs @@ -1,17 +1,18 @@ use std::path::Path; use fxhash::FxHashMap; use lazy_static::lazy_static; -use crate::device::CURRENT_DEVICE; -use crate::framebuffer::{Framebuffer, Pixmap, UpdateMode}; +use display::device::CURRENT_DEVICE; +use display::framebuffer::{Framebuffer, Pixmap, UpdateMode}; use super::{View, Event, Hub, Bus, Id, ID_FEEDER, RenderQueue, RenderData, ViewId, Align}; use crate::gesture::GestureEvent; -use crate::input::{DeviceEvent, FingerStatus}; +use display::input::{DeviceEvent, FingerStatus}; use crate::document::pdf::PdfOpener; -use crate::color::{Color, TEXT_NORMAL, TEXT_INVERTED_HARD}; +use display::color::{Color, TEXT_NORMAL, TEXT_INVERTED_HARD}; use crate::unit::scale_by_dpi_raw; -use crate::geom::{Rectangle, CornerSpec}; +use display::geom::{Rectangle, CornerSpec}; use crate::font::Fonts; use crate::context::Context; +use display::pt; const ICON_SCALE: f32 = 1.0 / 32.0; diff --git a/crates/core/src/view/image.rs b/crates/core/src/view/image.rs index 536724da..f937b620 100644 --- a/crates/core/src/view/image.rs +++ b/crates/core/src/view/image.rs @@ -1,9 +1,10 @@ -use crate::framebuffer::{Framebuffer, UpdateMode, Pixmap}; +use display::framebuffer::{Framebuffer, UpdateMode, Pixmap}; use crate::view::{View, Event, Hub, Bus, Id, ID_FEEDER, RenderQueue, RenderData}; -use crate::color::WHITE; -use crate::geom::Rectangle; +use display::color::WHITE; +use display::geom::Rectangle; use crate::context::Context; use crate::font::Fonts; +use display::{rect, pt}; pub struct Image { id: Id, diff --git a/crates/core/src/view/input_field.rs b/crates/core/src/view/input_field.rs index 28ad8f88..33c020cd 100644 --- a/crates/core/src/view/input_field.rs +++ b/crates/core/src/view/input_field.rs @@ -1,13 +1,14 @@ -use crate::device::CURRENT_DEVICE; -use crate::framebuffer::{Framebuffer, UpdateMode}; +use display::device::CURRENT_DEVICE; +use display::framebuffer::{Framebuffer, UpdateMode}; use super::{View, Event, Hub, Bus, Id, ID_FEEDER, RenderQueue, RenderData, KeyboardEvent, ViewId, EntryId, TextKind}; use super::THICKNESS_MEDIUM; use crate::gesture::GestureEvent; use crate::font::{Fonts, font_from_style, NORMAL_STYLE, FONT_SIZES}; -use crate::geom::{Rectangle, Point, LinearDir, BorderSpec, halves}; -use crate::color::{TEXT_NORMAL, BLACK}; +use display::geom::{Rectangle, Point, LinearDir, BorderSpec, halves}; +use display::color::{TEXT_NORMAL, BLACK}; use crate::context::Context; use crate::unit::scale_by_dpi; +use display::{rect, pt}; pub struct InputField { id: Id, diff --git a/crates/core/src/view/intermission.rs b/crates/core/src/view/intermission.rs index cfdb93e3..1a99ab23 100644 --- a/crates/core/src/view/intermission.rs +++ b/crates/core/src/view/intermission.rs @@ -1,14 +1,15 @@ use std::path::PathBuf; -use crate::device::CURRENT_DEVICE; +use display::device::CURRENT_DEVICE; use crate::document::{Location, open}; -use crate::geom::Rectangle; +use display::geom::Rectangle; use crate::font::{Fonts, font_from_style, DISPLAY_STYLE}; use super::{View, Event, Hub, Bus, Id, ID_FEEDER, RenderQueue}; -use crate::framebuffer::Framebuffer; +use display::framebuffer::Framebuffer; use crate::settings::{IntermKind, LOGO_SPECIAL_PATH, COVER_SPECIAL_PATH}; use crate::metadata::{SortMethod, BookQuery, sort}; -use crate::color::{TEXT_NORMAL, TEXT_INVERTED_HARD}; +use display::color::{TEXT_NORMAL, TEXT_INVERTED_HARD}; use crate::context::Context; +use display::pt; pub struct Intermission { id: Id, diff --git a/crates/core/src/view/key.rs b/crates/core/src/view/key.rs index 2aacca12..b9a9a634 100644 --- a/crates/core/src/view/key.rs +++ b/crates/core/src/view/key.rs @@ -1,15 +1,16 @@ -use crate::device::CURRENT_DEVICE; -use crate::framebuffer::{Framebuffer, UpdateMode}; -use crate::input::{DeviceEvent, FingerStatus}; +use display::device::CURRENT_DEVICE; +use display::framebuffer::{Framebuffer, UpdateMode}; +use display::input::{DeviceEvent, FingerStatus}; use crate::gesture::GestureEvent; use super::{View, Event, ViewId, KeyboardEvent, Hub, Bus, Id, ID_FEEDER, RenderQueue, RenderData, TextKind}; use super::BORDER_RADIUS_LARGE; use super::icon::ICONS_PIXMAPS; -use crate::color::{Color, TEXT_NORMAL, TEXT_INVERTED_HARD, KEYBOARD_BG}; +use display::color::{Color, TEXT_NORMAL, TEXT_INVERTED_HARD, KEYBOARD_BG}; use crate::font::{Fonts, font_from_style, KBD_CHAR, KBD_LABEL}; -use crate::geom::{Rectangle, LinearDir, CornerSpec}; +use display::geom::{Rectangle, LinearDir, CornerSpec}; use crate::context::Context; use crate::unit::scale_by_dpi; +use display::pt; #[derive(Copy, Clone, Debug, Eq, PartialEq)] pub enum KeyKind { diff --git a/crates/core/src/view/keyboard.rs b/crates/core/src/view/keyboard.rs index 6bd179ba..008f0939 100644 --- a/crates/core/src/view/keyboard.rs +++ b/crates/core/src/view/keyboard.rs @@ -1,17 +1,18 @@ use fxhash::FxHashMap; use lazy_static::lazy_static; use serde::Deserialize; -use crate::device::CURRENT_DEVICE; -use crate::framebuffer::{Framebuffer, UpdateMode}; +use display::device::CURRENT_DEVICE; +use display::framebuffer::{Framebuffer, UpdateMode}; use crate::gesture::GestureEvent; -use crate::input::DeviceEvent; +use display::input::DeviceEvent; use super::{View, Event, Hub, Bus, Id, ID_FEEDER, RenderQueue, RenderData, KeyboardEvent, EntryId, TextKind}; use super::key::{Key, KeyKind}; use super::BIG_BAR_HEIGHT; -use crate::color::KEYBOARD_BG; +use display::color::KEYBOARD_BG; use crate::font::Fonts; use crate::context::Context; -use crate::geom::Rectangle; +use display::geom::Rectangle; +use display::rect; use crate::unit::scale_by_dpi; const PADDING_RATIO: f32 = 0.06; diff --git a/crates/core/src/view/label.rs b/crates/core/src/view/label.rs index f0a15177..3806058c 100644 --- a/crates/core/src/view/label.rs +++ b/crates/core/src/view/label.rs @@ -1,11 +1,12 @@ -use crate::device::CURRENT_DEVICE; +use display::device::CURRENT_DEVICE; use crate::font::{Fonts, font_from_style, NORMAL_STYLE}; use super::{View, Event, Hub, Bus, Id, ID_FEEDER, RenderQueue, RenderData, Align}; use crate::gesture::GestureEvent; -use crate::framebuffer::{Framebuffer, UpdateMode}; -use crate::geom::Rectangle; -use crate::color::TEXT_NORMAL; +use display::framebuffer::{Framebuffer, UpdateMode}; +use display::geom::Rectangle; +use display::color::TEXT_NORMAL; use crate::context::Context; +use display::pt; pub struct Label { id: Id, diff --git a/crates/core/src/view/labeled_icon.rs b/crates/core/src/view/labeled_icon.rs index 374d9e53..ab6f881c 100644 --- a/crates/core/src/view/labeled_icon.rs +++ b/crates/core/src/view/labeled_icon.rs @@ -1,10 +1,11 @@ -use crate::framebuffer::Framebuffer; +use display::framebuffer::Framebuffer; use crate::view::{View, Event, Hub, Bus, Id, ID_FEEDER, RenderQueue, Align}; use crate::view::icon::Icon; use crate::view::label::Label; -use crate::geom::Rectangle; +use display::geom::Rectangle; use crate::font::Fonts; use crate::context::Context; +use display::rect; #[derive(Debug)] pub struct LabeledIcon { diff --git a/crates/core/src/view/menu.rs b/crates/core/src/view/menu.rs index 50bd42e9..e96f84a3 100644 --- a/crates/core/src/view/menu.rs +++ b/crates/core/src/view/menu.rs @@ -1,11 +1,12 @@ use std::thread; -use crate::device::CURRENT_DEVICE; +use display::device::CURRENT_DEVICE; use crate::font::{Fonts, font_from_style, NORMAL_STYLE}; -use crate::geom::{Point, Rectangle, CornerSpec, BorderSpec, small_half, big_half}; +use display::geom::{Point, Rectangle, CornerSpec, BorderSpec, small_half, big_half}; use crate::gesture::GestureEvent; use crate::unit::scale_by_dpi; -use crate::color::{BLACK, WHITE, SEPARATOR_NORMAL, SEPARATOR_STRONG}; -use crate::framebuffer::{Framebuffer, UpdateMode}; +use display::color::{BLACK, WHITE, SEPARATOR_NORMAL, SEPARATOR_STRONG}; +use display::framebuffer::{Framebuffer, UpdateMode}; +use display::{rect, pt}; use super::filler::Filler; use super::menu_entry::MenuEntry; use super::common::locate_by_id; diff --git a/crates/core/src/view/menu_entry.rs b/crates/core/src/view/menu_entry.rs index 09284cff..4b9c0a6e 100644 --- a/crates/core/src/view/menu_entry.rs +++ b/crates/core/src/view/menu_entry.rs @@ -1,13 +1,14 @@ use std::mem; -use crate::device::CURRENT_DEVICE; -use crate::framebuffer::{Framebuffer, UpdateMode}; -use crate::geom::{Rectangle, CornerSpec}; +use display::device::CURRENT_DEVICE; +use display::framebuffer::{Framebuffer, UpdateMode}; +use display::geom::{Rectangle, CornerSpec}; +use display::pt; use super::{View, Event, Hub, Bus, Id, ID_FEEDER, RenderQueue, RenderData, EntryKind}; use super::icon::ICONS_PIXMAPS; -use crate::input::{DeviceEvent, FingerStatus}; +use display::input::{DeviceEvent, FingerStatus}; use crate::gesture::GestureEvent; use crate::font::{Fonts, font_from_style, NORMAL_STYLE, SPECIAL_STYLE}; -use crate::color::{TEXT_NORMAL, TEXT_INVERTED_HARD}; +use display::color::{TEXT_NORMAL, TEXT_INVERTED_HARD}; use crate::context::Context; pub struct MenuEntry { diff --git a/crates/core/src/view/mod.rs b/crates/core/src/view/mod.rs index 4e8a350d..ae832854 100644 --- a/crates/core/src/view/mod.rs +++ b/crates/core/src/view/mod.rs @@ -53,13 +53,13 @@ use std::fmt::{self, Debug}; use fxhash::FxHashMap; use downcast_rs::{Downcast, impl_downcast}; use crate::font::Fonts; -use crate::color::Color; +use display::color::Color; use crate::document::{Location, TextLocation}; -use crate::settings::{ButtonScheme, FirstColumn, SecondColumn, RotationLock}; +use crate::settings::{FirstColumn, SecondColumn, RotationLock}; use crate::metadata::{Info, ZoomMode, ScrollMode, SortMethod, TextAlign, SimpleStatus, PageScheme, Margin}; -use crate::geom::{LinearDir, CycleDir, Rectangle, Boundary}; -use crate::framebuffer::{Framebuffer, UpdateMode}; -use crate::input::{DeviceEvent, FingerStatus}; +use display::geom::{LinearDir, CycleDir, Rectangle, Boundary}; +use display::framebuffer::{Framebuffer, UpdateMode}; +use display::input::{DeviceEvent, FingerStatus, ButtonScheme}; use crate::gesture::GestureEvent; use self::calculator::LineOrigin; use self::key::KeyKind; diff --git a/crates/core/src/view/named_input.rs b/crates/core/src/view/named_input.rs index 894a62dd..b3db1612 100644 --- a/crates/core/src/view/named_input.rs +++ b/crates/core/src/view/named_input.rs @@ -1,6 +1,6 @@ -use crate::framebuffer::Framebuffer; +use display::framebuffer::Framebuffer; use crate::font::{Fonts, font_from_style, NORMAL_STYLE}; -use crate::geom::{Rectangle, CornerSpec, BorderSpec, halves, big_half}; +use display::geom::{Rectangle, CornerSpec, BorderSpec, halves, big_half}; use crate::gesture::GestureEvent; use super::{View, Event, Hub, Bus, Id, ID_FEEDER, RenderQueue, ViewId, Align}; use super::{THICKNESS_LARGE, BORDER_RADIUS_MEDIUM}; @@ -8,9 +8,10 @@ use super::common::shift; use super::label::Label; use super::input_field::InputField; use crate::unit::scale_by_dpi; -use crate::color::{BLACK, WHITE}; -use crate::device::CURRENT_DEVICE; +use display::color::{BLACK, WHITE}; +use display::device::CURRENT_DEVICE; use crate::context::Context; +use display::{rect, pt}; pub struct NamedInput { id: Id, diff --git a/crates/core/src/view/notification.rs b/crates/core/src/view/notification.rs index d9144bf7..3faee105 100644 --- a/crates/core/src/view/notification.rs +++ b/crates/core/src/view/notification.rs @@ -1,16 +1,17 @@ use std::thread; use std::time::Duration; -use crate::device::CURRENT_DEVICE; -use crate::framebuffer::{Framebuffer, UpdateMode}; -use crate::geom::{Rectangle, CornerSpec, BorderSpec}; +use display::device::CURRENT_DEVICE; +use display::framebuffer::{Framebuffer, UpdateMode}; +use display::geom::{Rectangle, CornerSpec, BorderSpec}; use crate::font::{Fonts, font_from_style, NORMAL_STYLE}; -use crate::color::{BLACK, WHITE, TEXT_NORMAL}; +use display::color::{BLACK, WHITE, TEXT_NORMAL}; use super::{View, Event, Hub, Bus, Id, ID_FEEDER, RenderQueue, RenderData, ViewId}; use super::{SMALL_BAR_HEIGHT, THICKNESS_LARGE, BORDER_RADIUS_MEDIUM}; use crate::gesture::GestureEvent; -use crate::input::DeviceEvent; +use display::input::DeviceEvent; use crate::unit::scale_by_dpi; use crate::context::Context; +use display::{rect, pt}; const NOTIFICATION_CLOSE_DELAY: Duration = Duration::from_secs(4); diff --git a/crates/core/src/view/page_label.rs b/crates/core/src/view/page_label.rs index 7d4ab4b7..67dc938a 100644 --- a/crates/core/src/view/page_label.rs +++ b/crates/core/src/view/page_label.rs @@ -1,10 +1,11 @@ -use crate::device::CURRENT_DEVICE; +use display::device::CURRENT_DEVICE; use crate::font::{Fonts, font_from_style, NORMAL_STYLE}; -use crate::color::{BLACK, WHITE}; +use display::color::{BLACK, WHITE}; use crate::gesture::GestureEvent; -use crate::geom::{Rectangle}; +use display::geom::{Rectangle}; +use display::pt; use crate::document::BYTES_PER_PAGE; -use crate::framebuffer::{Framebuffer, UpdateMode}; +use display::framebuffer::{Framebuffer, UpdateMode}; use super::{View, Event, Hub, Bus, Id, ID_FEEDER, RenderQueue, RenderData, ViewId}; use crate::context::Context; diff --git a/crates/core/src/view/preset.rs b/crates/core/src/view/preset.rs index 2ea46546..78bb6791 100644 --- a/crates/core/src/view/preset.rs +++ b/crates/core/src/view/preset.rs @@ -1,12 +1,13 @@ -use crate::device::CURRENT_DEVICE; -use crate::geom::{Rectangle, CornerSpec, CycleDir}; +use display::device::CURRENT_DEVICE; +use display::geom::{Rectangle, CornerSpec, CycleDir}; use crate::font::{Fonts, font_from_style, NORMAL_STYLE}; use super::{View, Event, Hub, Bus, Id, ID_FEEDER, RenderQueue, RenderData}; use super::BORDER_RADIUS_MEDIUM; -use crate::framebuffer::{Framebuffer, UpdateMode}; -use crate::input::{DeviceEvent, FingerStatus}; +use display::framebuffer::{Framebuffer, UpdateMode}; +use display::input::{DeviceEvent, FingerStatus}; use crate::gesture::GestureEvent; -use crate::color::{TEXT_NORMAL, TEXT_INVERTED_HARD}; +use display::color::{TEXT_NORMAL, TEXT_INVERTED_HARD}; +use display::pt; use crate::unit::scale_by_dpi; use crate::context::Context; diff --git a/crates/core/src/view/presets_list.rs b/crates/core/src/view/presets_list.rs index 38299853..d3bad65d 100644 --- a/crates/core/src/view/presets_list.rs +++ b/crates/core/src/view/presets_list.rs @@ -1,12 +1,13 @@ -use crate::device::CURRENT_DEVICE; -use crate::geom::{Rectangle, Dir, CycleDir}; +use display::device::CURRENT_DEVICE; +use display::geom::{Rectangle, Dir, CycleDir}; use crate::font::{Fonts, font_from_style, NORMAL_STYLE}; -use crate::framebuffer::{Framebuffer, UpdateMode}; +use display::framebuffer::{Framebuffer, UpdateMode}; use super::{View, Event, Hub, Bus, Id, ID_FEEDER, RenderQueue, RenderData}; use super::preset::{Preset, PresetKind}; use crate::gesture::GestureEvent; use crate::settings::LightPreset; -use crate::color::WHITE; +use display::color::WHITE; +use display::rect; use crate::context::Context; pub struct PresetsList { diff --git a/crates/core/src/view/reader/bottom_bar.rs b/crates/core/src/view/reader/bottom_bar.rs index 1c10fe4a..347d4b0f 100644 --- a/crates/core/src/view/reader/bottom_bar.rs +++ b/crates/core/src/view/reader/bottom_bar.rs @@ -1,14 +1,15 @@ -use crate::framebuffer::{Framebuffer, UpdateMode}; +use display::framebuffer::{Framebuffer, UpdateMode}; +use display::{rect, pt}; use crate::view::{View, Event, Hub, Bus, Id, ID_FEEDER, RenderQueue, RenderData}; use crate::view::icon::Icon; use crate::view::filler::Filler; use crate::view::page_label::PageLabel; use super::chapter_label::ChapterLabel; use crate::gesture::GestureEvent; -use crate::input::DeviceEvent; -use crate::geom::{Rectangle, CycleDir, halves}; +use display::input::DeviceEvent; +use display::geom::{Rectangle, CycleDir, halves}; use crate::document::{Document, Neighbors, TocEntry}; -use crate::color::WHITE; +use display::color::WHITE; use crate::font::Fonts; use crate::context::Context; diff --git a/crates/core/src/view/reader/chapter_label.rs b/crates/core/src/view/reader/chapter_label.rs index c53c4d3f..da885b50 100644 --- a/crates/core/src/view/reader/chapter_label.rs +++ b/crates/core/src/view/reader/chapter_label.rs @@ -1,9 +1,10 @@ -use crate::device::CURRENT_DEVICE; +use display::device::CURRENT_DEVICE; use crate::font::{Fonts, font_from_style, NORMAL_STYLE}; -use crate::color::{BLACK, WHITE}; +use display::color::{BLACK, WHITE}; use crate::gesture::GestureEvent; -use crate::geom::{Rectangle}; -use crate::framebuffer::{Framebuffer, UpdateMode}; +use display::geom::Rectangle; +use display::framebuffer::{Framebuffer, UpdateMode}; +use display::pt; use super::{View, Event, Hub, Bus, Id, ID_FEEDER, RenderQueue, RenderData, ViewId}; use crate::context::Context; diff --git a/crates/core/src/view/reader/margin_cropper.rs b/crates/core/src/view/reader/margin_cropper.rs index 8c46d63b..4210463c 100644 --- a/crates/core/src/view/reader/margin_cropper.rs +++ b/crates/core/src/view/reader/margin_cropper.rs @@ -1,14 +1,15 @@ -use crate::framebuffer::{Framebuffer, UpdateMode, Pixmap}; +use display::framebuffer::{Framebuffer, UpdateMode, Pixmap}; +use display::{rect, pt}; use crate::metadata::Margin; use crate::gesture::GestureEvent; use crate::font::Fonts; -use crate::geom::{Rectangle, Point, CornerSpec, BorderSpec}; +use display::geom::{Rectangle, Point, CornerSpec, BorderSpec}; use crate::view::{View, Event, Hub, Bus, Id, ID_FEEDER, RenderQueue, RenderData, ViewId}; use crate::view::{SMALL_BAR_HEIGHT, THICKNESS_MEDIUM}; use crate::view::rounded_button::RoundedButton; use crate::unit::scale_by_dpi; -use crate::color::{BLACK, WHITE, GRAY12}; -use crate::device::CURRENT_DEVICE; +use display::color::{BLACK, WHITE, GRAY12}; +use display::device::CURRENT_DEVICE; use crate::context::Context; pub const BUTTON_DIAMETER: f32 = 30.0; diff --git a/crates/core/src/view/reader/mod.rs b/crates/core/src/view/reader/mod.rs index e677440f..a3f020ed 100644 --- a/crates/core/src/view/reader/mod.rs +++ b/crates/core/src/view/reader/mod.rs @@ -19,13 +19,13 @@ use regex::Regex; use septem::prelude::*; use septem::{Roman, Digit}; use rand_core::RngCore; -use crate::input::{DeviceEvent, FingerStatus, ButtonCode, ButtonStatus}; -use crate::framebuffer::{Framebuffer, UpdateMode, Pixmap}; +use display::input::{DeviceEvent, FingerStatus, ButtonCode, ButtonStatus}; +use display::framebuffer::{Framebuffer, UpdateMode, Pixmap}; use crate::view::{View, Event, AppCmd, Hub, Bus, RenderQueue, RenderData}; use crate::view::{ViewId, Id, ID_FEEDER, EntryKind, EntryId, SliderId}; use crate::view::{SMALL_BAR_HEIGHT, BIG_BAR_HEIGHT, THICKNESS_MEDIUM}; use crate::unit::{scale_by_dpi, mm_to_px}; -use crate::device::CURRENT_DEVICE; +use display::device::CURRENT_DEVICE; use crate::helpers::AsciiExtension; use crate::font::Fonts; use crate::font::family_names; @@ -54,9 +54,10 @@ use crate::document::html::HtmlDocument; use crate::metadata::{Info, FileInfo, ReaderInfo, Annotation, TextAlign, ZoomMode, ScrollMode, PageScheme}; use crate::metadata::{Margin, CroppingMargins, make_query}; use crate::metadata::{DEFAULT_CONTRAST_EXPONENT, DEFAULT_CONTRAST_GRAY}; -use crate::geom::{Point, Vec2, Rectangle, Boundary, CornerSpec, BorderSpec}; -use crate::geom::{Dir, DiagDir, CycleDir, LinearDir, Axis, Region, halves}; -use crate::color::{BLACK, WHITE}; +use display::geom::{Point, Vec2, Rectangle, Boundary, CornerSpec, BorderSpec}; +use display::geom::{Dir, DiagDir, CycleDir, LinearDir, Axis, Region, halves}; +use display::color::{BLACK, WHITE}; +use display::{rect, pt}; use crate::context::Context; const HISTORY_SIZE: usize = 32; diff --git a/crates/core/src/view/reader/results_bar.rs b/crates/core/src/view/reader/results_bar.rs index 615b1087..1254c785 100644 --- a/crates/core/src/view/reader/results_bar.rs +++ b/crates/core/src/view/reader/results_bar.rs @@ -1,13 +1,14 @@ -use crate::framebuffer::{Framebuffer, UpdateMode}; +use display::framebuffer::{Framebuffer, UpdateMode}; +use display::{rect, pt}; use crate::view::{View, Event, Hub, Bus, Id, ID_FEEDER, RenderQueue, RenderData, ViewId}; use crate::view::icon::Icon; use crate::view::filler::Filler; use crate::view::page_label::PageLabel; use super::results_label::ResultsLabel; use crate::gesture::GestureEvent; -use crate::input::DeviceEvent; -use crate::geom::{Rectangle, CycleDir, halves}; -use crate::color::WHITE; +use display::input::DeviceEvent; +use display::geom::{Rectangle, CycleDir, halves}; +use display::color::WHITE; use crate::context::Context; use crate::font::Fonts; diff --git a/crates/core/src/view/reader/results_label.rs b/crates/core/src/view/reader/results_label.rs index 25e0891c..e66c8cd1 100644 --- a/crates/core/src/view/reader/results_label.rs +++ b/crates/core/src/view/reader/results_label.rs @@ -1,8 +1,9 @@ -use crate::device::CURRENT_DEVICE; +use display::device::CURRENT_DEVICE; use crate::font::{Fonts, font_from_style, NORMAL_STYLE}; -use crate::framebuffer::{Framebuffer, UpdateMode}; -use crate::color::TEXT_NORMAL; -use crate::geom::{Rectangle}; +use display::framebuffer::{Framebuffer, UpdateMode}; +use display::color::TEXT_NORMAL; +use display::geom::Rectangle; +use display::pt; use crate::view::{View, Event, Hub, Bus, Id, ID_FEEDER, RenderQueue, RenderData}; use crate::context::Context; diff --git a/crates/core/src/view/reader/tool_bar.rs b/crates/core/src/view/reader/tool_bar.rs index d5eb7e20..4d74d697 100644 --- a/crates/core/src/view/reader/tool_bar.rs +++ b/crates/core/src/view/reader/tool_bar.rs @@ -1,5 +1,6 @@ -use crate::device::CURRENT_DEVICE; -use crate::framebuffer::{Framebuffer, UpdateMode}; +use display::device::CURRENT_DEVICE; +use display::framebuffer::{Framebuffer, UpdateMode}; +use display::rect; use crate::settings::ReaderSettings; use crate::metadata::{ReaderInfo, TextAlign}; use crate::metadata::{DEFAULT_CONTRAST_EXPONENT, DEFAULT_CONTRAST_GRAY}; @@ -9,11 +10,11 @@ use crate::view::slider::Slider; use crate::view::icon::Icon; use crate::view::labeled_icon::LabeledIcon; use crate::gesture::GestureEvent; -use crate::input::DeviceEvent; +use display::input::DeviceEvent; use crate::unit::scale_by_dpi; -use crate::geom::Rectangle; +use display::geom::Rectangle; use crate::font::Fonts; -use crate::color::{SEPARATOR_NORMAL, WHITE}; +use display::color::{SEPARATOR_NORMAL, WHITE}; use crate::context::Context; #[derive(Debug)] diff --git a/crates/core/src/view/rotation_values/mod.rs b/crates/core/src/view/rotation_values/mod.rs index b5c7c421..41efa564 100644 --- a/crates/core/src/view/rotation_values/mod.rs +++ b/crates/core/src/view/rotation_values/mod.rs @@ -1,12 +1,13 @@ use std::mem; -use crate::device::CURRENT_DEVICE; -use crate::geom::{Point, Rectangle}; +use display::device::CURRENT_DEVICE; +use display::geom::{Point, Rectangle}; use crate::view::{View, Event, Hub, Bus, RenderQueue, RenderData}; use crate::view::{Id, ID_FEEDER}; use crate::gesture::GestureEvent; -use crate::framebuffer::{Framebuffer, UpdateMode}; +use display::framebuffer::{Framebuffer, UpdateMode}; use crate::font::{Fonts, font_from_style, NORMAL_STYLE, DISPLAY_STYLE}; -use crate::color::{BLACK, WHITE, GRAY07}; +use display::color::{BLACK, WHITE, GRAY07}; +use display::pt; use crate::context::Context; const MESSAGE_1: &str = "Hold you device in portrait mode\n\ diff --git a/crates/core/src/view/rounded_button.rs b/crates/core/src/view/rounded_button.rs index c7297fb5..9f09c70a 100644 --- a/crates/core/src/view/rounded_button.rs +++ b/crates/core/src/view/rounded_button.rs @@ -1,15 +1,16 @@ -use crate::device::CURRENT_DEVICE; -use crate::framebuffer::{Framebuffer, UpdateMode}; +use display::device::CURRENT_DEVICE; +use display::framebuffer::{Framebuffer, UpdateMode}; use super::{View, Event, Hub, Bus, Id, ID_FEEDER, RenderQueue, RenderData}; use super::THICKNESS_MEDIUM; use super::icon::ICONS_PIXMAPS; use crate::gesture::GestureEvent; -use crate::input::{DeviceEvent, FingerStatus}; +use display::input::{DeviceEvent, FingerStatus}; use crate::unit::scale_by_dpi; use crate::font::Fonts; use crate::context::Context; -use crate::geom::{Rectangle, CornerSpec, BorderSpec}; -use crate::color::{TEXT_NORMAL, TEXT_INVERTED_HARD}; +use display::geom::{Rectangle, CornerSpec, BorderSpec}; +use display::color::{TEXT_NORMAL, TEXT_INVERTED_HARD}; +use display::pt; pub struct RoundedButton { id: Id, diff --git a/crates/core/src/view/search_bar.rs b/crates/core/src/view/search_bar.rs index 692c42c3..055a8581 100644 --- a/crates/core/src/view/search_bar.rs +++ b/crates/core/src/view/search_bar.rs @@ -1,16 +1,17 @@ -use crate::framebuffer::Framebuffer; -use crate::device::CURRENT_DEVICE; +use display::framebuffer::Framebuffer; +use display::device::CURRENT_DEVICE; use super::{View, Event, Hub, Bus, Id, ID_FEEDER, RenderQueue, ViewId, THICKNESS_MEDIUM}; use super::icon::Icon; use super::input_field::InputField; use super::filler::Filler; use crate::gesture::GestureEvent; -use crate::input::DeviceEvent; -use crate::color::{TEXT_BUMP_SMALL, SEPARATOR_NORMAL}; -use crate::geom::Rectangle; +use display::input::DeviceEvent; +use display::color::{TEXT_BUMP_SMALL, SEPARATOR_NORMAL}; +use display::geom::Rectangle; use crate::context::Context; use crate::unit::scale_by_dpi; use crate::font::Fonts; +use display::{rect, pt}; #[derive(Debug)] pub struct SearchBar { diff --git a/crates/core/src/view/sketch/mod.rs b/crates/core/src/view/sketch/mod.rs index 291d07bc..5a2abcdc 100644 --- a/crates/core/src/view/sketch/mod.rs +++ b/crates/core/src/view/sketch/mod.rs @@ -5,9 +5,9 @@ use chrono::Local; use walkdir::WalkDir; use globset::Glob; use anyhow::Error; -use crate::device::CURRENT_DEVICE; -use crate::geom::{Point, Rectangle, CornerSpec}; -use crate::input::{DeviceEvent, FingerStatus}; +use display::device::CURRENT_DEVICE; +use display::geom::{Point, Rectangle, CornerSpec}; +use display::input::{DeviceEvent, FingerStatus}; use crate::view::icon::{Icon, ICONS_PIXMAPS}; use crate::view::notification::Notification; use crate::view::menu::{Menu, MenuKind}; @@ -15,12 +15,13 @@ use crate::view::common::{locate_by_id}; use crate::view::{View, Event, Hub, Bus, RenderQueue, RenderData}; use crate::view::{EntryKind, EntryId, ViewId, Id, ID_FEEDER}; use crate::view::{SMALL_BAR_HEIGHT, BORDER_RADIUS_SMALL}; -use crate::framebuffer::{Framebuffer, UpdateMode, Pixmap}; +use display::framebuffer::{Framebuffer, UpdateMode, Pixmap}; use crate::settings::{ImportSettings, Pen}; use crate::helpers::IsHidden; use crate::font::Fonts; use crate::unit::scale_by_dpi; -use crate::color::{Color, BLACK, WHITE}; +use display::color::{Color, BLACK, WHITE}; +use display::{rect, vec2}; use crate::context::Context; const FILENAME_PATTERN: &str = "sketch-%Y%m%d_%H%M%S.png"; diff --git a/crates/core/src/view/slider.rs b/crates/core/src/view/slider.rs index 4b789e39..6f41082b 100644 --- a/crates/core/src/view/slider.rs +++ b/crates/core/src/view/slider.rs @@ -1,12 +1,13 @@ -use crate::device::CURRENT_DEVICE; +use display::device::CURRENT_DEVICE; use crate::unit::scale_by_dpi; -use crate::framebuffer::{Framebuffer, UpdateMode}; -use crate::input::{DeviceEvent, FingerStatus}; +use display::framebuffer::{Framebuffer, UpdateMode}; +use display::input::{DeviceEvent, FingerStatus}; use super::{View, Event, Hub, Bus, Id, ID_FEEDER, RenderQueue, RenderData, SliderId, THICKNESS_SMALL}; -use crate::color::{BLACK, WHITE, PROGRESS_VALUE, PROGRESS_FULL, PROGRESS_EMPTY}; +use display::color::{BLACK, WHITE, PROGRESS_VALUE, PROGRESS_FULL, PROGRESS_EMPTY}; use crate::font::{Fonts, font_from_style, SLIDER_VALUE}; -use crate::geom::{Rectangle, BorderSpec, CornerSpec, halves}; +use display::geom::{Rectangle, BorderSpec, CornerSpec, halves}; use crate::context::Context; +use display::{rect, pt}; const PROGRESS_HEIGHT: f32 = 7.0; const BUTTON_DIAMETER: f32 = 46.0; diff --git a/crates/core/src/view/top_bar.rs b/crates/core/src/view/top_bar.rs index d2bffc77..c0fc091c 100644 --- a/crates/core/src/view/top_bar.rs +++ b/crates/core/src/view/top_bar.rs @@ -1,12 +1,13 @@ -use crate::framebuffer::{Framebuffer, UpdateMode}; +use display::framebuffer::{Framebuffer, UpdateMode}; use crate::gesture::GestureEvent; -use crate::input::DeviceEvent; +use display::input::DeviceEvent; use crate::view::{View, Event, Hub, Bus, Id, ID_FEEDER, RenderQueue, RenderData, ViewId, Align}; use crate::view::icon::Icon; use crate::view::clock::Clock; use crate::view::battery::Battery; use crate::view::label::Label; -use crate::geom::{Rectangle}; +use display::geom::Rectangle; +use display::{rect, pt}; use crate::font::Fonts; use crate::context::Context; diff --git a/crates/core/src/view/touch_events/mod.rs b/crates/core/src/view/touch_events/mod.rs index 3ee556b2..daeecf36 100644 --- a/crates/core/src/view/touch_events/mod.rs +++ b/crates/core/src/view/touch_events/mod.rs @@ -1,14 +1,15 @@ -use crate::device::CURRENT_DEVICE; -use crate::geom::{Rectangle, Region, Dir, CornerSpec}; +use display::device::CURRENT_DEVICE; +use display::geom::{Rectangle, Region, Dir, CornerSpec}; use crate::view::icon::Icon; use crate::view::notification::Notification; use crate::view::{View, Event, Hub, Bus, RenderQueue, RenderData}; use crate::view::{Id, ID_FEEDER}; use crate::view::SMALL_BAR_HEIGHT; -use crate::framebuffer::{Framebuffer, UpdateMode}; +use display::framebuffer::{Framebuffer, UpdateMode}; use crate::font::Fonts; use crate::unit::scale_by_dpi; -use crate::color::{BLACK, WHITE, GRAY05, GRAY10}; +use display::color::{BLACK, WHITE, GRAY05, GRAY10}; +use display::{rect, pt}; use crate::context::Context; pub struct TouchEvents { diff --git a/crates/emulator/src/main.rs b/crates/emulator/src/main.rs index dc7c3221..e3740b03 100644 --- a/crates/emulator/src/main.rs +++ b/crates/emulator/src/main.rs @@ -15,7 +15,7 @@ use sdl2::mouse::MouseState; use sdl2::rect::Point as SdlPoint; use sdl2::rect::Rect as SdlRect; use display::framebuffer::{Framebuffer, UpdateMode}; -use plato_core::input::{DeviceEvent, FingerStatus, ButtonCode, ButtonStatus}; +use display::input::{DeviceEvent, FingerStatus, ButtonCode, ButtonStatus}; use plato_core::document::sys_info_as_html; use plato_core::view::{View, Event, ViewId, EntryId, AppCmd, EntryKind}; use plato_core::view::{process_render_queue, wait_for_all, handle_event, RenderQueue, RenderData}; @@ -36,16 +36,16 @@ use plato_core::view::common::{toggle_input_history_menu, toggle_keyboard_layout use plato_core::helpers::{load_toml, save_toml}; use plato_core::settings::{Settings, SETTINGS_PATH, IntermKind}; use display::geom::{Rectangle, Axis}; -use plato_core::color::Color; +use display::color::Color; use plato_core::gesture::{GestureEvent, gesture_events}; -use plato_core::device::CURRENT_DEVICE; +use display::device::CURRENT_DEVICE; use plato_core::battery::{Battery, FakeBattery}; use plato_core::frontlight::{Frontlight, LightLevels}; use plato_core::lightsensor::LightSensor; use plato_core::library::Library; use plato_core::font::Fonts; use plato_core::context::Context; -use plato_core::pt; +use display::pt; use plato_core::png; pub const APP_NAME: &str = "Plato"; diff --git a/crates/plato/src/app.rs b/crates/plato/src/app.rs index 4928cec4..03491d7f 100644 --- a/crates/plato/src/app.rs +++ b/crates/plato/src/app.rs @@ -9,7 +9,7 @@ use std::time::{Duration, Instant}; use display::input::ButtonScheme; use plato_core::anyhow::{Error, Context as ResultExt, format_err}; use plato_core::chrono::Local; -use plato_core::framebuffer::{Framebuffer, KoboFramebuffer1, KoboFramebuffer2, UpdateMode}; +use display::framebuffer::{Framebuffer, KoboFramebuffer1, KoboFramebuffer2, UpdateMode}; use plato_core::view::{View, Event, EntryId, EntryKind, ViewId, AppCmd, RenderData, RenderQueue, UpdateData}; use plato_core::view::{handle_event, process_render_queue, wait_for_all}; use plato_core::view::common::{locate, locate_by_id, transfer_notifications, overlapping_rectangle}; @@ -22,21 +22,21 @@ use plato_core::view::sketch::Sketch; use plato_core::view::touch_events::TouchEvents; use plato_core::view::rotation_values::RotationValues; use plato_core::document::sys_info_as_html; -use plato_core::input::{DeviceEvent, PowerSource, ButtonCode, ButtonStatus, VAL_RELEASE, VAL_PRESS}; -use plato_core::input::{raw_events, device_events, usb_events, display_rotate_event, button_scheme_event}; +use display::input::{DeviceEvent, PowerSource, ButtonCode, ButtonStatus, VAL_RELEASE, VAL_PRESS}; +use display::input::{raw_events, device_events, usb_events, display_rotate_event, button_scheme_event}; use plato_core::gesture::{GestureEvent, gesture_events}; use plato_core::helpers::{load_toml, save_toml}; use plato_core::settings::{Settings, SETTINGS_PATH, RotationLock, IntermKind}; use plato_core::frontlight::{Frontlight, StandardFrontlight, NaturalFrontlight, PremixedFrontlight}; use plato_core::lightsensor::{LightSensor, KoboLightSensor}; use plato_core::battery::{Battery, KoboBattery}; -use plato_core::geom::{Rectangle, DiagDir, Region}; +use display::geom::{Rectangle, DiagDir, Region}; use plato_core::view::home::Home; use plato_core::view::reader::Reader; use plato_core::view::dialog::Dialog; use plato_core::view::intermission::Intermission; use plato_core::view::notification::Notification; -use plato_core::device::{CURRENT_DEVICE, Orientation, FrontlightKind}; +use display::device::{CURRENT_DEVICE, Orientation, FrontlightKind}; use plato_core::library::Library; use plato_core::font::Fonts; use plato_core::rtc::Rtc;