diff options
Diffstat (limited to 'src/ViewStyle.cxx')
-rw-r--r-- | src/ViewStyle.cxx | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/ViewStyle.cxx b/src/ViewStyle.cxx index ab3c68907..b8be22646 100644 --- a/src/ViewStyle.cxx +++ b/src/ViewStyle.cxx @@ -145,6 +145,7 @@ ViewStyle::ViewStyle(const ViewStyle &source) { for (int mrk=0; mrk<=MARKER_MAX; mrk++) { markers[mrk] = source.markers[mrk]; } + CalcLargestMarkerHeight(); for (int ind=0; ind<=INDIC_MAX; ind++) { indicators[ind] = source.indicators[ind]; } @@ -230,6 +231,9 @@ void ViewStyle::Init(size_t stylesSize_) { fontNames.Clear(); ResetDefaultStyle(); + // There are no image markers by default, so no need for calling CalcLargestMarkerHeight() + largestMarkerHeight = 0; + indicators[0].style = INDIC_SQUIGGLE; indicators[0].under = false; indicators[0].fore = ColourDesired(0, 0x7f, 0); @@ -457,3 +461,19 @@ bool ViewStyle::ValidStyle(size_t styleIndex) const { return styleIndex < stylesSize; } +void ViewStyle::CalcLargestMarkerHeight() { + largestMarkerHeight = 0; + for (int m = 0; m <= MARKER_MAX; ++m) { + switch (markers[m].markType) { + case SC_MARK_PIXMAP: + if (markers[m].pxpm->GetHeight() > largestMarkerHeight) + largestMarkerHeight = markers[m].pxpm->GetHeight(); + break; + case SC_MARK_RGBAIMAGE: + if (markers[m].image->GetHeight() > largestMarkerHeight) + largestMarkerHeight = markers[m].image->GetHeight(); + break; + } + } +} + |