From 1eb0f569bf6e9d3fde4f482fb2c06e980b6f72af Mon Sep 17 00:00:00 2001 From: Nicholai Benalal Date: Thu, 19 Apr 2018 07:31:34 +1000 Subject: Backport: SC_PRINT_SCREENCOLOURS doesn't force the background colour of line numbers white. Backport of changeset 6700:daa126b86c17. --- doc/ScintillaDoc.html | 17 ++++++++++++++--- doc/ScintillaHistory.html | 5 +++++ include/Scintilla.h | 1 + include/Scintilla.iface | 3 +++ src/EditView.cxx | 5 +++-- 5 files changed, 26 insertions(+), 5 deletions(-) diff --git a/doc/ScintillaDoc.html b/doc/ScintillaDoc.html index b55c305b4..d019a5688 100644 --- a/doc/ScintillaDoc.html +++ b/doc/ScintillaDoc.html @@ -5534,7 +5534,8 @@ struct Sci_RangeToFormat { 0 - Print using the current screen colours. This is the default. + Print using the current screen colours with the exception of line number margins which print on a white background. + This is the default. @@ -5567,9 +5568,19 @@ struct Sci_RangeToFormat { 4 - Everything prints in its own colour on a white background except that line numbers - use their own background colour. + Everything prints in its own foreground colour but all styles up to and including STYLE_LINENUMBER will print + on a white background. + + + SC_PRINT_SCREENCOLOURS + + 5 + + Print using the current screen colours for both foreground and background. + This is the only mode that does not set the background colour of the line number margin to white. + + diff --git a/doc/ScintillaHistory.html b/doc/ScintillaHistory.html index 61d3e3bf3..620b44aad 100644 --- a/doc/ScintillaHistory.html +++ b/doc/ScintillaHistory.html @@ -520,6 +520,7 @@ Georger Araújo Dimitar Radev Gunter Königsmann + Nicholai Benalal

@@ -543,6 +544,10 @@ 2 GigaBytes.

  • + Additional print option SC_PRINT_SCREENCOLOURS prints with the same colours used on screen + including line numbers. +
  • +
  • Set the last X chosen when SCI_REPLACESEL called to ensure macros work when text insertion followed by caret up or down.
  • diff --git a/include/Scintilla.h b/include/Scintilla.h index d17a53718..833ac9aab 100644 --- a/include/Scintilla.h +++ b/include/Scintilla.h @@ -390,6 +390,7 @@ typedef sptr_t (*SciFnDirect)(sptr_t ptr, unsigned int iMessage, uptr_t wParam, #define SC_PRINT_BLACKONWHITE 2 #define SC_PRINT_COLOURONWHITE 3 #define SC_PRINT_COLOURONWHITEDEFAULTBG 4 +#define SC_PRINT_SCREENCOLOURS 5 #define SCI_SETPRINTCOLOURMODE 2148 #define SCI_GETPRINTCOLOURMODE 2149 #define SCFIND_WHOLEWORD 0x2 diff --git a/include/Scintilla.iface b/include/Scintilla.iface index e7c6d4725..b51d0db96 100644 --- a/include/Scintilla.iface +++ b/include/Scintilla.iface @@ -922,6 +922,7 @@ get int GetPrintMagnification=2147(,) enu PrintOption=SC_PRINT_ # PrintColourMode - use same colours as screen. +# with the exception of line number margins, which use a white background val SC_PRINT_NORMAL=0 # PrintColourMode - invert the light value of each style for printing. val SC_PRINT_INVERTLIGHT=1 @@ -931,6 +932,8 @@ val SC_PRINT_BLACKONWHITE=2 val SC_PRINT_COLOURONWHITE=3 # PrintColourMode - only the default-background is forced to be white for printing. val SC_PRINT_COLOURONWHITEDEFAULTBG=4 +# PrintColourMode - use same colours as screen, including line number margins. +val SC_PRINT_SCREENCOLOURS=5 # Modify colours when printing for clearer printed text. set void SetPrintColourMode=2148(int mode,) diff --git a/src/EditView.cxx b/src/EditView.cxx index 5ff43558d..65b2e1038 100644 --- a/src/EditView.cxx +++ b/src/EditView.cxx @@ -2242,8 +2242,9 @@ Sci::Position EditView::FormatRange(bool draw, Sci_RangeToFormat *pfr, Surface * } } } - // White background for the line numbers - vsPrint.styles[STYLE_LINENUMBER].back = ColourDesired(0xff, 0xff, 0xff); + // White background for the line numbers if SC_PRINT_SCREENCOLOURS isn't used + if (printParameters.colourMode != SC_PRINT_SCREENCOLOURS) + vsPrint.styles[STYLE_LINENUMBER].back = ColourDesired(0xff, 0xff, 0xff); // Printing uses different margins, so reset screen margins vsPrint.leftMarginWidth = 0; -- cgit v1.2.3