use scintilla_sys::{
INDIC_BOX, INDIC_COMPOSITIONTHICK, INDIC_COMPOSITIONTHIN, INDIC_DASH, INDIC_DIAGONAL,
INDIC_DOTBOX, INDIC_DOTS, INDIC_FULLBOX, INDIC_HIDDEN, INDIC_PLAIN, INDIC_POINT,
INDIC_POINTCHARACTER, INDIC_ROUNDBOX, INDIC_SQUIGGLE, INDIC_SQUIGGLELOW, INDIC_SQUIGGLEPIXMAP,
INDIC_STRAIGHTBOX, INDIC_STRIKE, INDIC_TEXTFORE, INDIC_TT,
};
const INDIC_GRADIENT: u32 = 20;
const INDIC_GRADIENTCENTRE: u32 = 21;
const INDIC_POINT_TOP: u32 = 22;
#[derive(Debug, PartialEq)]
pub enum Indicator {
Plain,
Squiggle,
Tt,
Diagonal,
Strike,
Hidden,
Box,
RoundBox,
StraightBox,
FullBox,
Dash,
Dots,
SquiggleLow,
DotBox,
Gradient,
GradientCentre,
SquigglePixmap,
CompositionThick,
CompositionThin,
TextFore,
Point,
PointCharacter,
PointTop,
}
impl From<u32> for Indicator {
fn from(value: u32) -> Self {
match value {
INDIC_PLAIN => Self::Plain,
INDIC_SQUIGGLE => Self::Squiggle,
INDIC_TT => Self::Tt,
INDIC_DIAGONAL => Self::Diagonal,
INDIC_STRIKE => Self::Strike,
INDIC_HIDDEN => Self::Hidden,
INDIC_BOX => Self::Box,
INDIC_ROUNDBOX => Self::RoundBox,
INDIC_STRAIGHTBOX => Self::StraightBox,
INDIC_FULLBOX => Self::FullBox,
INDIC_DASH => Self::Dash,
INDIC_DOTS => Self::Dots,
INDIC_SQUIGGLELOW => Self::SquiggleLow,
INDIC_DOTBOX => Self::DotBox,
INDIC_SQUIGGLEPIXMAP => Self::SquigglePixmap,
INDIC_COMPOSITIONTHICK => Self::CompositionThick,
INDIC_COMPOSITIONTHIN => Self::CompositionThin,
INDIC_TEXTFORE => Self::TextFore,
INDIC_POINT => Self::Point,
INDIC_POINTCHARACTER => Self::PointCharacter,
INDIC_GRADIENT => Self::Gradient,
INDIC_GRADIENTCENTRE => Self::GradientCentre,
INDIC_POINT_TOP => Self::PointTop,
_ => Self::Plain,
}
}
}
impl Into<u32> for Indicator {
fn into(self) -> u32 {
match self {
Self::Plain => INDIC_PLAIN,
Self::Squiggle => INDIC_SQUIGGLE,
Self::Tt => INDIC_TT,
Self::Diagonal => INDIC_DIAGONAL,
Self::Strike => INDIC_STRIKE,
Self::Hidden => INDIC_HIDDEN,
Self::Box => INDIC_BOX,
Self::RoundBox => INDIC_ROUNDBOX,
Self::StraightBox => INDIC_STRAIGHTBOX,
Self::FullBox => INDIC_FULLBOX,
Self::Dash => INDIC_DASH,
Self::Dots => INDIC_DOTS,
Self::SquiggleLow => INDIC_SQUIGGLELOW,
Self::DotBox => INDIC_DOTBOX,
Self::Gradient => INDIC_GRADIENT,
Self::GradientCentre => INDIC_GRADIENTCENTRE,
Self::SquigglePixmap => INDIC_SQUIGGLEPIXMAP,
Self::CompositionThick => INDIC_COMPOSITIONTHICK,
Self::CompositionThin => INDIC_COMPOSITIONTHIN,
Self::TextFore => INDIC_TEXTFORE,
Self::Point => INDIC_POINT,
Self::PointCharacter => INDIC_POINTCHARACTER,
Self::PointTop => INDIC_POINT_TOP,
}
}
}