mirror of
https://github.com/storytold/wordcraft.git
synced 2026-11-10 20:29:51 -06:00
49 lines
1.9 KiB
Rust
49 lines
1.9 KiB
Rust
//! Ribbon widgets: large and small buttons, split buttons, groups, combo fields, colour grids.
|
||
|
||
use egui::{Align2, Color32, CornerRadius, Rect, Response, Sense, Stroke, Ui, pos2, vec2};
|
||
use serde_json::Value;
|
||
|
||
use crate::theme::{Tokens, regular};
|
||
use crate::{WordApp, icons};
|
||
|
||
mod buttons;
|
||
mod combo;
|
||
mod groups;
|
||
mod icon_buttons;
|
||
mod tooltip;
|
||
|
||
pub use buttons::{
|
||
BIG_ICON_Y, BIG_LABEL_Y, ButtonAction, CONTENT_H, DROPDOWN, LABEL_H, LABEL_LINE_H, LABEL_PITCH, MenuButtonOptions, big, big_toggle, enabled,
|
||
label_line, menu_button, menu_enabled, small, split,
|
||
};
|
||
pub(crate) use buttons::{bg, run_from_ribbon};
|
||
pub(crate) use combo::swatch;
|
||
pub use combo::{
|
||
ADD_FONT, COMBO_PREVIEW_ROW_H, DrawnState, FontComboOptions, LOAD_SYSTEM_FONTS, color_grid, combo, combo_hint, combo_list, drawn_state,
|
||
font_combo, font_combo_with_recent, font_combo_with_recent_hint, font_matches,
|
||
};
|
||
#[cfg(test)]
|
||
use combo::{Row, highlight_row, section_row, section_rows};
|
||
pub use groups::{command_icon, command_menu, customize_menu_items, group, group_titled, row};
|
||
pub use icon_buttons::{
|
||
dialog_tabs, icon_button, icon_menu_item, icon_only_button, icon_text_button, icon_text_button_width, icon_text_menu_button, primary_button,
|
||
};
|
||
#[cfg(test)]
|
||
use tooltip::show_hint;
|
||
#[cfg(test)]
|
||
pub(crate) use tooltip::tooltip_lines;
|
||
pub use tooltip::{key_text, shortcut_text};
|
||
// #653: a two-line label ends inside the content, above the group title row.
|
||
const _: () = assert!(BIG_LABEL_Y + LABEL_PITCH + LABEL_LINE_H <= CONTENT_H);
|
||
const _: () = assert!(BIG_ICON_Y + 16.0 <= BIG_LABEL_Y);
|
||
|
||
#[cfg(test)]
|
||
thread_local! {
|
||
/// Groups drawn taller than [`CONTENT_H`] (title and height): their content runs into the
|
||
/// group label below, as View › Show did with four check boxes in one column.
|
||
pub(crate) static TALL_GROUPS: std::cell::RefCell<Vec<String>> = const { std::cell::RefCell::new(Vec::new()) };
|
||
}
|
||
|
||
#[cfg(test)]
|
||
mod tests;
|