From 50fe4c1dedae94692f95ffaf79c60bb122616d37 Mon Sep 17 00:00:00 2001 From: nyamatongwe Date: Sun, 9 Feb 2003 00:38:33 +0000 Subject: Protected style fixed in several ways. Method to determine cheaply if protection turned on at all. Caret movement doesn't skip over text outside protected range. Methods for deciding if a range or the selection contains protected text. Several deletion commands perform no action if they would delete protected text. Two phase drawing no longer draws invisible text. --- src/ViewStyle.cxx | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/ViewStyle.cxx') diff --git a/src/ViewStyle.cxx b/src/ViewStyle.cxx index 91f2d2d2f..ea1b3e955 100644 --- a/src/ViewStyle.cxx +++ b/src/ViewStyle.cxx @@ -139,6 +139,7 @@ void ViewStyle::Init() { edgecolour.desired = ColourDesired(0xc0, 0xc0, 0xc0); edgeState = EDGE_NONE; caretWidth = 1; + someStylesProtected = false; leftMarginWidth = 1; rightMarginWidth = 1; @@ -197,6 +198,7 @@ void ViewStyle::Refresh(Surface &surface) { styles[STYLE_DEFAULT].Realise(surface, zoomLevel); maxAscent = styles[STYLE_DEFAULT].ascent; maxDescent = styles[STYLE_DEFAULT].descent; + someStylesProtected = false; for (unsigned int i=0;i<(sizeof(styles)/sizeof(styles[0]));i++) { if (i != STYLE_DEFAULT) { styles[i].Realise(surface, zoomLevel, &styles[STYLE_DEFAULT]); @@ -205,6 +207,9 @@ void ViewStyle::Refresh(Surface &surface) { if (maxDescent < styles[i].descent) maxDescent = styles[i].descent; } + if (styles[i].IsProtected()) { + someStylesProtected = true; + } } lineHeight = maxAscent + maxDescent; @@ -243,3 +248,7 @@ void ViewStyle::ClearStyles() { void ViewStyle::SetStyleFontName(int styleIndex, const char *name) { styles[styleIndex].fontName = fontNames.Save(name); } + +bool ViewStyle::ProtectionActive() const { + return someStylesProtected; +} -- cgit v1.2.3