use crate::foundation::{id, NSString, NSUInteger};
#[derive(Clone, Copy, Debug)]
pub enum ToolbarDisplayMode {
Default,
IconAndLabel,
IconOnly,
LabelOnly
}
impl From<ToolbarDisplayMode> for NSUInteger {
fn from(mode: ToolbarDisplayMode) -> Self {
match mode {
ToolbarDisplayMode::Default => 0,
ToolbarDisplayMode::IconAndLabel => 1,
ToolbarDisplayMode::IconOnly => 2,
ToolbarDisplayMode::LabelOnly => 3
}
}
}
#[derive(Clone, Debug)]
pub enum ItemIdentifier {
Custom(&'static str),
CloudSharing,
FlexibleSpace,
Print,
Colors,
Fonts,
Space,
ToggleSidebar,
SidebarTracker
}
extern "C" {
static NSToolbarToggleSidebarItemIdentifier: id;
static NSToolbarCloudSharingItemIdentifier: id;
static NSToolbarFlexibleSpaceItemIdentifier: id;
static NSToolbarPrintItemIdentifier: id;
static NSToolbarShowColorsItemIdentifier: id;
static NSToolbarShowFontsItemIdentifier: id;
static NSToolbarSpaceItemIdentifier: id;
}
impl ItemIdentifier {
pub(crate) fn to_nsstring(&self) -> id {
unsafe {
match self {
Self::Custom(s) => NSString::new(s).into(),
Self::CloudSharing => NSToolbarCloudSharingItemIdentifier,
Self::FlexibleSpace => NSToolbarFlexibleSpaceItemIdentifier,
Self::Print => NSToolbarPrintItemIdentifier,
Self::Colors => NSToolbarShowColorsItemIdentifier,
Self::Fonts => NSToolbarShowFontsItemIdentifier,
Self::Space => NSToolbarSpaceItemIdentifier,
Self::ToggleSidebar => NSToolbarToggleSidebarItemIdentifier,
Self::SidebarTracker => NSString::no_copy("NSToolbarSidebarTrackingSeparatorItemIdentifier").into()
}
}
}
}
#[derive(Clone, Copy, Debug)]
pub enum ToolbarSizeMode {
Default,
Regular,
Small
}
impl From<ToolbarSizeMode> for NSUInteger {
fn from(mode: ToolbarSizeMode) -> Self {
match mode {
ToolbarSizeMode::Default => 0,
ToolbarSizeMode::Regular => 1,
ToolbarSizeMode::Small => 2
}
}
}