Le Thu, 03 Mar 2011 11:59:19 +0000,
Michael Meeks <[email protected]> a écrit :

> Hi Sebastien,
> 
> On Tue, 2011-03-01 at 23:42 +0100, Sébastien Le Ray wrote:
> > Here is a complete patch for fdo#31251. It adds a smooth shadow to
> > the page.
> 
>       Wow - it is really pretty indeed :-) I just pushed it. Nice
> work ! can you confirm is it LGPLv3+/MPL ?
> 
>       Incidentally, it would be lovely to have the post-it notes,
> not only to have a border, but to have curved corners at the bottom,
> but not the top, so they really look like sticky notes. ie. take a
> sticky note an stick it flat on your desk, and you see the effect
> [ both bottom corners curl slightly ] ;-) possibly that will require
> some (manual?) re-coloring action of the bitmaps, which might be
> slightly painful, though I guess it is just a matter of keeping a
> constant AlphaMask bitmap around, and merging it into a BitmapEx with
> a Bitmap (of the same size obviously) 'Erase'd with the correct color
> for the note.
> 
> > During its development, I found that SwRect::_Intersection (used in
> > page margin painting) returns negative height/width if the two
> > rectangles do not overlap. I don't know if it is the expected
> > behavior or a bug. If it's a bug I guess I can provide a patch.
> 
>       Ho hum - probably a difficult one to audit for, to check
> every location to ensure they are not depending on this. Possibly it
> makes the impl. faster too (?).
> 
>       Well worth documenting though in the API.
> 
>       Thanks !
> 
>               Michael.
>

Hi,

this simple shadow patch has generated a long discussion on
Libreoffice-design. Some people don't like the color, some people don't
like the amount of blur, some people want no shadow at all, some people
want a "4 borders" shadow. So here is a second patchset that tries to
address the first three critics :
 - It adds a configuration option (in Appearance category) to set shadow
   color. It currently defaults to gray but I'm sure design team will
   find a more sensitive default :
 - It adds a configuration option to disable shadow;
 - It doesn't use bitmaps directly anymore but an alpha mask, so if
   people want to try another blur effect, they just have to edit
   images.zip:/sw/res/page-*-shadow-mask.png These are black & white
   image. Black amount determines transparency, white being fully
   transparent. Here again, I'm sure that design people will find a
   better default. Only constraints are 1x10px for bottom shadow,
   10x10px for corner and 10x1px for right shadow.
I'll let design team play and discuss with that, when they agree on a
default, I'll provide an additional patch to take it into account.

Note: I had to perform a make dev-install for settings to be correctly
saved.

Regards

Sébastien
From 56705efe8542ad48d7e2b498d702c067878aab26 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Le=20Ray?= <[email protected]>
Date: Tue, 8 Mar 2011 08:02:08 +0100
Subject: [PATCH] Added shadow color configuration save.

---
 svtools/inc/svtools/colorcfg.hxx   |    1 +
 svtools/source/config/colorcfg.cxx |    2 ++
 2 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/svtools/inc/svtools/colorcfg.hxx b/svtools/inc/svtools/colorcfg.hxx
index 6231685..5c95dc1 100644
--- a/svtools/inc/svtools/colorcfg.hxx
+++ b/svtools/inc/svtools/colorcfg.hxx
@@ -51,6 +51,7 @@ enum ColorConfigEntry
     ANCHOR              ,
     SPELL         ,
     SMARTTAGS     ,
+    SHADOWCOLOR         ,
     WRITERTEXTGRID      ,
     WRITERFIELDSHADINGS ,
     WRITERIDXSHADINGS         ,
diff --git a/svtools/source/config/colorcfg.cxx b/svtools/source/config/colorcfg.cxx
index c98c885..7be72cf 100644
--- a/svtools/source/config/colorcfg.cxx
+++ b/svtools/source/config/colorcfg.cxx
@@ -137,6 +137,7 @@ uno::Sequence< OUString> ColorConfig_Impl::GetPropertyNames(const rtl::OUString&
         { RTL_CONSTASCII_USTRINGPARAM("/Anchor")          ,sal_False },
         { RTL_CONSTASCII_USTRINGPARAM("/Spell")     ,sal_False },
         { RTL_CONSTASCII_USTRINGPARAM("/SmartTags")     ,sal_False },
+        { RTL_CONSTASCII_USTRINGPARAM("/Shadow")        , sal_True },
         { RTL_CONSTASCII_USTRINGPARAM("/WriterTextGrid")  ,sal_False },
         { RTL_CONSTASCII_USTRINGPARAM("/WriterFieldShadings"),sal_True },
         { RTL_CONSTASCII_USTRINGPARAM("/WriterIdxShadings")     ,sal_True },
@@ -428,6 +429,7 @@ Color ColorConfig::GetDefaultColor(ColorConfigEntry eEntry)
         0, // ANCHOR
         0xff0000, // SPELL
         COL_LIGHTMAGENTA,// SMARTTAGS
+        COL_GRAY, // SHADOWCOLOR
         0xc0c0c0, // WRITERTEXTGRID
         0xc0c0c0, // WRITERFIELDSHADIN
         0xc0c0c0, // WRITERIDXSHADINGS
-- 
1.7.4.1

From c30a7d8001c04bacead8b72c175e640e76ee4017 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Le=20Ray?= <[email protected]>
Date: Tue, 8 Mar 2011 08:02:57 +0100
Subject: [PATCH] Added shadow configuration to prefs schema.

---
 .../registry/data/org/openoffice/Office/UI.xcu     |    8 ++++++++
 .../registry/schema/org/openoffice/Office/UI.xcs   |   16 ++++++++++++++++
 2 files changed, 24 insertions(+), 0 deletions(-)

diff --git a/officecfg/registry/data/org/openoffice/Office/UI.xcu b/officecfg/registry/data/org/openoffice/Office/UI.xcu
index 5af8183..cca7916 100644
--- a/officecfg/registry/data/org/openoffice/Office/UI.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/UI.xcu
@@ -361,6 +361,14 @@
                         <value xsi:nil="true"/>
                     </prop>
                 </node>
+                <node oor:name="Shadow">
+                    <prop oor:name="IsVisible">
+                        <value>true</value>
+                    </prop>
+                    <prop oor:name="Color">
+                        <value xsi:nil="true"/>
+                    </prop>
+                </node>
                 <node oor:name="WriterTextGrid">
                     <prop oor:name="Color">
                         <value xsi:nil="true"/>
diff --git a/officecfg/registry/schema/org/openoffice/Office/UI.xcs b/officecfg/registry/schema/org/openoffice/Office/UI.xcs
index 48d018d..1784d82 100644
--- a/officecfg/registry/schema/org/openoffice/Office/UI.xcs
+++ b/officecfg/registry/schema/org/openoffice/Office/UI.xcs
@@ -199,6 +199,22 @@
 					</info>
 				</prop>
 			</group>
+			<group oor:name="Shadow">
+				<info>
+					<desc>Specifies the settings for shadows.</desc>
+				</info>
+				<prop oor:name="IsVisible" oor:type="xs:boolean">
+					<info>
+						<desc>Specifies the visibility of shadows (true = visible).</desc>
+					</info>
+					<value>true</value>
+				</prop>
+				<prop oor:name="Color" oor:type="xs:int">
+					<info>
+						<desc>Specifies the color used for shadows.</desc>
+					</info>
+				</prop>
+			</group>
 			<group oor:name="WriterTextGrid">
 				<info>
 					<desc>Specifies the settings for the text grid in Writer.</desc>
-- 
1.7.4.1

From 03204823664dd33d66c6dacb35d5a969d6f67d5b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Le=20Ray?= <[email protected]>
Date: Tue, 8 Mar 2011 07:58:42 +0100
Subject: [PATCH] Added shadow option to appearance dialog.

---
 cui/source/options/optcolor.cxx |   10 +++
 cui/source/options/optcolor.hrc |    4 +
 cui/source/options/optcolor.src |  155 ++++++++++++++++++++-------------------
 3 files changed, 95 insertions(+), 74 deletions(-)

diff --git a/cui/source/options/optcolor.cxx b/cui/source/options/optcolor.cxx
index 4ac044a..f2c3a4e 100644
--- a/cui/source/options/optcolor.cxx
+++ b/cui/source/options/optcolor.cxx
@@ -110,6 +110,9 @@ class ColorConfigWindow_Impl : public Window
     FixedText       aSmarttagsFT;
     ColorListBox    aSmarttagsLB;
     Window          aSmarttagsWN;
+    CheckBox        aShadowColorCB;
+    ColorListBox    aShadowColorLB;
+    Window          aShadowColorWN;
     Window          aWriterBackWN;
     SvxExtFixedText_Impl    aWriterFT;
     FixedText       aWrtTextGridFT;
@@ -305,6 +308,7 @@ sal_Int16 lcl_getGroup( sal_Int32 _nFeature )
         case ANCHOR :
         case SPELL :
         case SMARTTAGS :
+        case SHADOWCOLOR :
         {
             nRet = GROUP_GENERAL;
             break;
@@ -412,6 +416,9 @@ ColorConfigWindow_Impl::ColorConfigWindow_Impl(Window* pParent, const ResId& rRe
         aSmarttagsFT(this, ResId(        FT_SMARTTAGS, *rResId.GetResMgr() )),
         aSmarttagsLB(this, ResId(        LB_SMARTTAGS, *rResId.GetResMgr() )),
         aSmarttagsWN(this, ResId(        WN_SMARTTAGS, *rResId.GetResMgr() )),
+        aShadowColorCB(this, ResId(      CB_SHADOWCOLOR, *rResId.GetResMgr())),
+        aShadowColorLB(this, ResId(      LB_SHADOWCOLOR, *rResId.GetResMgr())),
+        aShadowColorWN(this, ResId(      WN_SHADOWCOLOR, *rResId.GetResMgr())),
         aWriterBackWN(this),
         aWriterFT(this, ResId(FT_WRITER, *rResId.GetResMgr())),
         aWrtTextGridFT(this, ResId(     FT_WRITERTEXTGRID, *rResId.GetResMgr())),
@@ -549,6 +556,7 @@ ColorConfigWindow_Impl::ColorConfigWindow_Impl(Window* pParent, const ResId& rRe
     aCheckBoxes[LINKSVISITED        ] = &aLinksVisitedCB         ;
     aFixedTexts[SPELL            ]=& aSpellFT;
     aFixedTexts[SMARTTAGS        ]=& aSmarttagsFT;
+    aCheckBoxes[SHADOWCOLOR      ]=& aShadowColorCB;
     aFixedTexts[WRITERTEXTGRID   ]=& aWrtTextGridFT;
     aCheckBoxes[WRITERFIELDSHADINGS ] = &aWrtFieldCB             ;
     aCheckBoxes[WRITERIDXSHADINGS   ] = &aWrtIdxShadingBackCB       ;
@@ -594,6 +602,7 @@ ColorConfigWindow_Impl::ColorConfigWindow_Impl(Window* pParent, const ResId& rRe
     aColorBoxes[LINKSVISITED        ] = &aLinksVisitedLB         ;
     aColorBoxes[SPELL               ] = &aSpellLB             ;
     aColorBoxes[SMARTTAGS           ] = &aSmarttagsLB             ;
+    aColorBoxes[SHADOWCOLOR         ] = &aShadowColorLB  ;
     aColorBoxes[WRITERTEXTGRID      ] = &aWrtTextGridLB          ;
     aColorBoxes[WRITERFIELDSHADINGS ] = &aWrtFieldLB             ;
     aColorBoxes[WRITERIDXSHADINGS   ] = &aWrtIdxShadingBackLB       ;
@@ -639,6 +648,7 @@ ColorConfigWindow_Impl::ColorConfigWindow_Impl(Window* pParent, const ResId& rRe
     aWindows[LINKSVISITED        ] = &aLinksVisitedWN         ;
     aWindows[SPELL               ] = &aSpellWN             ;
     aWindows[SMARTTAGS           ] = &aSmarttagsWN             ;
+    aWindows[SHADOWCOLOR         ] = &aShadowColorWN    ;
     aWindows[WRITERTEXTGRID      ] = &aWrtTextGridWN          ;
     aWindows[WRITERFIELDSHADINGS ] = &aWrtFieldWN             ;
     aWindows[WRITERIDXSHADINGS   ] = &aWrtIdxShadingBackWN       ;
diff --git a/cui/source/options/optcolor.hrc b/cui/source/options/optcolor.hrc
index 37478e0..504cd5f 100644
--- a/cui/source/options/optcolor.hrc
+++ b/cui/source/options/optcolor.hrc
@@ -186,6 +186,10 @@
 #define LB_SQLCOMMENT			 193
 #define WN_SQLCOMMENT			 194
 
+#define CB_SHADOWCOLOR          196
+#define LB_SHADOWCOLOR          197
+#define WN_SHADOWCOLOR          198
+
 #define ST_EXTENSION				166
 
 
diff --git a/cui/source/options/optcolor.src b/cui/source/options/optcolor.src
index b2e9c15..83dc067 100644
--- a/cui/source/options/optcolor.src
+++ b/cui/source/options/optcolor.src
@@ -211,280 +211,287 @@ TabPage RID_SVXPAGE_COLORCONFIG
             };
             LB_WN( SMARTTAGS, 10 )
 
+            Checkbox CB_SHADOWCOLOR
+            {
+                CB_POS_SIZE( 11 );
+                Text [ en-US ] = "Shadows";
+            };
+            LB_WN( SHADOWCOLOR, 11 )
+
             FixedText FT_WRITER
             {
-                FT_SEP_POS_SIZE( 11 );
+                FT_SEP_POS_SIZE( 12 );
                 Text [ en-US ] = "Text Document";
             };
 
             FixedText FT_WRITERTEXTGRID
             {
-                FT_POS_SIZE( 12 );
+                FT_POS_SIZE( 13 );
                 Text [ en-US ] = "Grid";
             };
-            LB_WN( WRITERTEXTGRID, 12 )
+            LB_WN( WRITERTEXTGRID, 13 )
 
             CheckBox CB_WRITERFIELDSHADINGS
             {
-                CB_POS_SIZE( 13 );
+                CB_POS_SIZE( 14 );
                 Text [ en-US ] = "Field shadings";
             };
-            LB_WN( WRITERFIELDSHADINGS, 13 )
+            LB_WN( WRITERFIELDSHADINGS, 14 )
 
             CheckBox CB_WRITERIDXSHADINGS
             {
-                CB_POS_SIZE( 14 );
+                CB_POS_SIZE( 15 );
                 Text [ en-US ] = "Index and table shadings";
             };
-            LB_WN( WRITERIDXSHADINGS, 14 )
+            LB_WN( WRITERIDXSHADINGS, 15 )
 
 
             FixedText FT_WRITERSCRIPTINDICATOR
             {
-                FT_POS_SIZE( 15 );
+                FT_POS_SIZE( 16 );
                 Text [ en-US ] = "Script indicator";
             };
-            LB_WN( WRITERSCRIPTINDICATOR, 15 )
+            LB_WN( WRITERSCRIPTINDICATOR, 16 )
 
             CheckBox CB_WRITERSECTIONBOUNDARIES
             {
-                CB_POS_SIZE( 16 );
+                CB_POS_SIZE( 17 );
                 Text [ en-US ] = "Section boundaries";
             };
-            LB_WN( WRITERSECTIONBOUNDARIES, 16 )
+            LB_WN( WRITERSECTIONBOUNDARIES, 17 )
 
             FixedText FT_WRITERPAGEBREAKS
             {
-                FT_POS_SIZE( 17 );
+                FT_POS_SIZE( 18 );
                 Text [ en-US ] = "Page and column breaks";
             };
-            LB_WN( WRITERPAGEBREAKS, 17 )
+            LB_WN( WRITERPAGEBREAKS, 18 )
 
             FixedText FT_WRITERDIRECTCURSOR
             {
-                FT_POS_SIZE( 18 );
+                FT_POS_SIZE( 19 );
                 Text [ en-US ] = "Direct cursor";
             };
-            LB_WN( WRITERDIRECTCURSOR, 18 )
+            LB_WN( WRITERDIRECTCURSOR, 19 )
 
             FixedText FT_HTML
             {
-                FT_SEP_POS_SIZE( 19 );
+                FT_SEP_POS_SIZE( 20 );
                 Text [ en-US ] = "HTML Document";
             };
 
             FixedText FT_HTMLSGML
             {
-                FT_POS_SIZE( 20 );
+                FT_POS_SIZE( 21 );
                 Text [ en-US ] = "SGML syntax highlighting";
             };
-            LB_WN( HTMLSGML, 20 )
+            LB_WN( HTMLSGML, 21 )
 
             FixedText FT_HTMLCOMMENT
             {
-                FT_POS_SIZE( 21 );
+                FT_POS_SIZE( 22 );
                 Text [ en-US ] = "Comment highlighting";
             };
-            LB_WN( HTMLCOMMENT, 21 )
+            LB_WN( HTMLCOMMENT, 22 )
 
             FixedText FT_HTMLKEYWORD
             {
-                FT_POS_SIZE( 22 );
+                FT_POS_SIZE( 23 );
                 Text [ en-US ] = "Keyword highlighting";
             };
-            LB_WN( HTMLKEYWORD, 22 )
+            LB_WN( HTMLKEYWORD, 23 )
 
             FixedText FT_HTMLUNKNOWN
             {
-                FT_POS_SIZE( 23 );
+                FT_POS_SIZE( 24 );
                 Text [ en-US ] = "Text";
             };
-            LB_WN( HTMLUNKNOWN, 23 )
+            LB_WN( HTMLUNKNOWN, 24 )
 
             FixedText FT_CALC
             {
-                FT_SEP_POS_SIZE( 24 );
+                FT_SEP_POS_SIZE( 25 );
                 Text [ en-US ] = "Spreadsheet";
             };
 
             FixedText FT_CALCGRID
             {
-                FT_POS_SIZE( 25 );
+                FT_POS_SIZE( 26 );
                 Text [ en-US ] = "Grid lines";
             };
-            LB_WN( CALCGRID, 25 )
+            LB_WN( CALCGRID, 26 )
 
             FixedText FT_CALCPAGEBREAK
             {
-                FT_POS_SIZE( 26 );
+                FT_POS_SIZE( 27 );
                 Text [ en-US ] = "Page breaks";
             };
-            LB_WN( CALCPAGEBREAK, 26 )
+            LB_WN( CALCPAGEBREAK, 27 )
 
             FixedText FT_CALCPAGEBREAKMANUAL
             {
-                FT_POS_SIZE( 27 );
+                FT_POS_SIZE( 28 );
                 Text [ en-US ] = "Manual page breaks";
             };
-            LB_WN( CALCPAGEBREAKMANUAL, 27 )
+            LB_WN( CALCPAGEBREAKMANUAL, 28 )
 
             FixedText FT_CALCPAGEBREAKAUTO
             {
-                FT_POS_SIZE( 28 );
+                FT_POS_SIZE( 29 );
                 Text [ en-US ] = "Automatic page breaks";
             };
-            LB_WN( CALCPAGEBREAKAUTO, 28)
+            LB_WN( CALCPAGEBREAKAUTO, 29)
 
             FixedText FT_CALCDETECTIVE
             {
-                FT_POS_SIZE( 29 );
+                FT_POS_SIZE( 30 );
                 Text [ en-US ] = "Detective";
             };
-            LB_WN( CALCDETECTIVE, 29 )
+            LB_WN( CALCDETECTIVE, 30 )
 
             FixedText FT_CALCDETECTIVEERROR
             {
-                FT_POS_SIZE( 30 );
+                FT_POS_SIZE( 31 );
                 Text [ en-US ] = "Detective error";
             };
-            LB_WN( CALCDETECTIVEERROR, 30 )
+            LB_WN( CALCDETECTIVEERROR, 31 )
 
             FixedText FT_CALCREFERENCE
             {
-                FT_POS_SIZE( 31 );
+                FT_POS_SIZE( 32 );
                 Text [ en-US ] = "References";
             };
-            LB_WN( CALCREFERENCE, 31 )
+            LB_WN( CALCREFERENCE, 32 )
 
             FixedText FT_CALCNOTESBACKGROUND
             {
-                FT_POS_SIZE( 32 );
+                FT_POS_SIZE( 33 );
                 Text [ en-US ] = "Notes background";
             };
-            LB_WN( CALCNOTESBACKGROUND, 32 )
+            LB_WN( CALCNOTESBACKGROUND, 33 )
 
             FixedText FT_DRAW
             {
-                FT_SEP_POS_SIZE( 33 );
+                FT_SEP_POS_SIZE( 34 );
                 Text [ en-US ] = "Drawing / Presentation";
             };
 
             FixedText FT_DRAWGRID
             {
-                FT_POS_SIZE( 34 );
+                FT_POS_SIZE( 35 );
                 Text [ en-US ] = "Grid";
             };
-            LB_WN( DRAWGRID, 34 )
+            LB_WN( DRAWGRID, 35 )
 
             FixedText FT_BASIC
             {
-                FT_SEP_POS_SIZE( 35 );
+                FT_SEP_POS_SIZE( 36 );
                 Text [ en-US ] = "Basic Syntax Highlighting";
             };
 
             FixedText FT_BASICIDENTIFIER
             {
-                FT_POS_SIZE( 36 );
+                FT_POS_SIZE( 37 );
                 Text [ en-US ] = "Identifier";
             };
-            LB_WN( BASICIDENTIFIER, 36 )
+            LB_WN( BASICIDENTIFIER, 37 )
 
             FixedText FT_BASICCOMMENT
             {
-                FT_POS_SIZE( 37 );
+                FT_POS_SIZE( 38 );
                 Text [ en-US ] = "Comment";
             };
-            LB_WN( BASICCOMMENT, 37 )
+            LB_WN( BASICCOMMENT, 38 )
 
             FixedText FT_BASICNUMBER
             {
-                FT_POS_SIZE( 38 );
+                FT_POS_SIZE( 39 );
                 Text [ en-US ] = "Number";
             };
-            LB_WN( BASICNUMBER, 38)
+            LB_WN( BASICNUMBER, 39)
 
             FixedText FT_BASICSTRING
             {
-                FT_POS_SIZE( 39 );
+                FT_POS_SIZE( 40 );
                 Text [ en-US ] = "String";
             };
-            LB_WN( BASICSTRING, 39 )
+            LB_WN( BASICSTRING, 40 )
 
             FixedText FT_BASICOPERATOR
             {
-                FT_POS_SIZE( 40 );
+                FT_POS_SIZE( 41 );
                 Text [ en-US ] = "Operator";
             };
-            LB_WN( BASICOPERATOR, 40 )
+            LB_WN( BASICOPERATOR, 41 )
 
             FixedText FT_BASICKEYWORD
             {
-                FT_POS_SIZE( 41 );
+                FT_POS_SIZE( 42 );
                 Text [ en-US ] = "Reserved expression";
             };
-            LB_WN( BASICKEYWORD, 41 )
+            LB_WN( BASICKEYWORD, 42 )
 
             FixedText FT_BASICERROR
             {
-                FT_POS_SIZE( 42 );
+                FT_POS_SIZE( 43 );
                 Text [ en-US ] = "Error";
             };
-            LB_WN( BASICERROR, 42 )
+            LB_WN( BASICERROR, 43 )
             
             FixedText FT_SQL_COMMAND
             {
-                FT_SEP_POS_SIZE( 43 );
+                FT_SEP_POS_SIZE( 44 );
                 Text [ en-US ] = "SQL Syntax Highlighting";
             };
             
             FixedText FT_SQLIDENTIFIER
             {
-                FT_POS_SIZE( 44 );
+                FT_POS_SIZE( 45 );
                 Text [ en-US ] = "Identifier";
             };
-            LB_WN( SQLIDENTIFIER, 44 )
+            LB_WN( SQLIDENTIFIER, 45 )
             
             FixedText FT_SQLNUMBER
             {
-                FT_POS_SIZE( 45 );
+                FT_POS_SIZE( 46 );
                 Text [ en-US ] = "Number";
             };
-            LB_WN( SQLNUMBER, 45 )
+            LB_WN( SQLNUMBER, 46 )
             
             FixedText FT_SQLSTRING
             {
-                FT_POS_SIZE( 46 );
+                FT_POS_SIZE( 47 );
                 Text [ en-US ] = "String";
             };
-            LB_WN( SQLSTRING, 46 )
+            LB_WN( SQLSTRING, 47 )
             
             FixedText FT_SQLOPERATOR
             {
-                FT_POS_SIZE( 47 );
+                FT_POS_SIZE( 48 );
                 Text [ en-US ] = "Operator";
             };
-            LB_WN( SQLOPERATOR, 47 )
+            LB_WN( SQLOPERATOR, 48 )
             
             FixedText FT_SQLKEYWORD
             {
-                FT_POS_SIZE( 48 );
+                FT_POS_SIZE( 49 );
                 Text [ en-US ] = "Keyword";
             };
-            LB_WN( SQLKEYWORD, 48 )
+            LB_WN( SQLKEYWORD, 49 )
             
             FixedText FT_SQLPARAMETER
             {
-                FT_POS_SIZE( 49 );
+                FT_POS_SIZE( 50 );
                 Text [ en-US ] = "Parameter";
             };
-            LB_WN( SQLPARAMETER, 49 )
+            LB_WN( SQLPARAMETER, 50 )
             
             FixedText FT_SQLCOMMENT
             {
-                FT_POS_SIZE( 50 );
+                FT_POS_SIZE( 51 );
                 Text [ en-US ] = "Comment";
             };
-            LB_WN( SQLCOMMENT, 50 )
+            LB_WN( SQLCOMMENT, 51 )
 
             String ST_EXTENSION
             {
-- 
1.7.4.1

From 03d88d4c4448d05a0328a3fa5c6d7dd054a150e3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Le=20Ray?= <[email protected]>
Date: Sun, 6 Mar 2011 16:18:09 +0100
Subject: [PATCH 1/3] Converted shadow images to alpha masks.

---
 default_images/sw/res/page-bottom-shadow.png      |  Bin 193 -> 181 bytes
 default_images/sw/res/page-bottomright-shadow.png |  Bin 289 -> 208 bytes
 default_images/sw/res/page-right-shadow.png       |  Bin 191 -> 180 bytes
 3 files changed, 0 insertions(+), 0 deletions(-)

diff --git a/default_images/sw/res/page-bottom-shadow.png b/default_images/sw/res/page-bottom-shadow.png
index fe881a97cc14556d3da978024cbff78912d9c1f6..fd19f034bb0fc80350c240eab1c0e33d7864f1e0 100644
GIT binary patch
delta 100
zcmX@exRr5&q%s2#1nkV72Ba8^gWR1M)}51i3FI&(dAqwX{BQ3+vwxz4JSQ_7pQ5O(
y)qbam85)`*o-U3d9M_W*5+<ZfN&>=^rppW*TN%DRy;`~+WT2<3pUXO@geCy?ejwuj

delta 112
zcmdnWc#v^|q&gb|14HR06E7geSRCZ;#IWw1%u67LEy>&6h2cL4F4((#@<bbXP9|v{
zS;4Eu1r`%iGz?`tT^vI=t|#xP`TM6{jg77CxepHy&-n*OisvLT1Z?A8cHq?AML=^H
NJYD@<);T3K0RY>0CeZ)@

diff --git a/default_images/sw/res/page-bottomright-shadow.png b/default_images/sw/res/page-bottomright-shadow.png
index ff00470bc5f24ee6ede99cbc892430cb9cbea8c9..94f32290092a528df8eeb76fadec1f5b9b77987b 100644
GIT binary patch
delta 163
zcmZ3;bb)b#q%s2#tcaYD2&5Q`gWR1M)}51i3FI&(dAqwX{BQ3+vwxz4d?_;<m$XR6
z+@FO&sSr;W#}JO|tOrjr9#G(5Ip7-3IZws@#r_LtIFyu)jW!*5vu0@r$L9N~tJY48
zoIXF(d1_$p?)Mve0!w4}r%#N$@~!r7gXZ6v$L$*efArKc7%W*S$WSNZ#gb9|%B2Ko
OK7*&LpUXO@geCx(6F(^c

delta 245
zcmV<R01E%m0ignr87Bq+0050L&%FQu00DDSM?wIu&K&6g000JJOGiWi{{a60|De66
zlaV|he*zl}8Y^6WKTQAt0HH}lK~xyiUC=vj!!Qtp;ZK1tqe6x5e~1(*d;_OTWJ$3s
zM~@U928I?GkRbov8M68~zwh|O<z>Ab&)%~6!2=6cY|&nHO4kEdjF>P-ztK{_HBg5>
z4ij#r=@jcV7sF0hJsXCABc@ky##lWgbcxbqLu~5y-+Bu;WzrSj=$g9ip@4fHbWgrM
vQ@^B&^_H)>C)ZFW9l<@{Fk@=!c5$dbiV|COnXtfk00000NkvXXu0mjfb`53v

diff --git a/default_images/sw/res/page-right-shadow.png b/default_images/sw/res/page-right-shadow.png
index 7b8870ed042f72bb7da4e0c6abcc1930b778cb0f..784e00f37afcaf952f6a82c40f390b0f5fbda432 100644
GIT binary patch
delta 99
zcmdnbxP@_oq%s2#9GaJ~2uLv&2e~^jtUD+363Agn@^*J&_}|`tX8%M7c}`|FJ_W5w
x?u+dvW@u;#d%8G=a9mGLnJ{J2q$wcG!oV_-;d#-Xpp78&JYD@<);T3K0RZ|yAW;AS

delta 110
zcmdnOxSw%?q&gb|1H<#L_H{stu{g-xiDBJ2nU_EgTavfC3&Vd9T(Ecf<cT)&oJ`U@
zGUjrsM_MMPXy{9Mx;Tb#Tu<Ip^Y>3Z8(Z6R9v+_a3w~Id*)i}JaZe36ll2B@3WKMs
KpUXO@geCyLw<R+G

-- 
1.7.4.1

From eff3d43f2fb30ba8114396aa733658f15c80ef8a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Le=20Ray?= <[email protected]>
Date: Sun, 6 Mar 2011 16:19:48 +0100
Subject: [PATCH 1/4] Using alpha mask for page shadow drawing.

Alpha masks will allow us to have configurable shadow colors.
---
 sw/source/core/layout/paintfrm.cxx |   39 +++++++++++++++++++++++++++++++----
 1 files changed, 34 insertions(+), 5 deletions(-)

diff --git a/sw/source/core/layout/paintfrm.cxx b/sw/source/core/layout/paintfrm.cxx
index ec6a5d6..82ab24b 100644
--- a/sw/source/core/layout/paintfrm.cxx
+++ b/sw/source/core/layout/paintfrm.cxx
@@ -5303,7 +5303,38 @@ const sal_Int8 SwPageFrm::mnShadowPxWidth = 10;
     SwTaggedPDFHelper aTaggedPDFHelper( 0, 0, 0, *_pViewShell->GetOut() );
     // <--
 
-    BitmapEx aPageBottomShadow( SW_RES( BMP_PAGE_BOTTOM_SHADOW ) );
+    static bool initialized = false;
+    static BitmapEx aPageTopRightShadow;
+    static BitmapEx aPageBottomRightShadow;
+    static BitmapEx aPageBottomLeftShadow;
+    static BitmapEx aPageBottomShadowBase;
+    static BitmapEx aPageRightShadowBase;
+    static Color aShadowColor( COL_BLACK );
+
+
+    if(!initialized) {
+        AlphaMask aMask( SW_RES( BMP_PAGE_BOTTOM_RIGHT_SHADOW ) );
+        Bitmap aFilledSquare( Size( mnShadowPxWidth, mnShadowPxWidth ), 24 );
+        aFilledSquare.Erase( aShadowColor );
+
+        aPageBottomRightShadow = BitmapEx( aFilledSquare, aMask );
+        aMask.Rotate( 900, 255 );
+        aPageTopRightShadow = BitmapEx( aFilledSquare, aMask );
+        aMask.Rotate( 1800, 255);
+        aPageBottomLeftShadow = BitmapEx( aFilledSquare, aMask );
+
+        aFilledSquare = Bitmap( Size( 1, mnShadowPxWidth ), 24 );
+        aFilledSquare.Erase( aShadowColor );
+        aMask = Bitmap( SW_RES( BMP_PAGE_BOTTOM_SHADOW ) );
+        aPageBottomShadowBase = BitmapEx( aFilledSquare, aMask );
+
+        aFilledSquare = Bitmap( Size( mnShadowPxWidth, 1 ), 24 );
+        aFilledSquare.Erase( aShadowColor );
+        aMask = Bitmap( SW_RES( BMP_PAGE_RIGHT_SHADOW ) );
+        aPageRightShadowBase = BitmapEx( aFilledSquare, aMask );
+
+        initialized = true;
+    }
 
     SwRect aPaintRect;
     OutputDevice *pOut = _pViewShell->GetOut();
@@ -5311,10 +5342,8 @@ const sal_Int8 SwPageFrm::mnShadowPxWidth = 10;
     // paint right shadow
     if ( bPaintRightShadow )
     {
-        BitmapEx aPageRightShadow( SW_RES( BMP_PAGE_RIGHT_SHADOW ) );
-        BitmapEx aPageTopRightShadow( SW_RES( BMP_PAGE_TOP_RIGHT_SHADOW ) );
-        BitmapEx aPageBottomRightShadow( SW_RES( BMP_PAGE_BOTTOM_RIGHT_SHADOW ) );
         SwPageFrm::GetRightShadowRect( _rPageRect, _pViewShell, aPaintRect, bRightSidebar );
+        BitmapEx aPageRightShadow = aPageRightShadowBase;
         aPageRightShadow.Scale( 1, aPaintRect.Height() );
         pOut->DrawBitmapEx( pOut->PixelToLogic( aPaintRect.Pos() ), aPageRightShadow );
         pOut->DrawBitmapEx( pOut->PixelToLogic( Point( aPaintRect.Left(), aPaintRect.Top() - mnShadowPxWidth ) ), aPageTopRightShadow );
@@ -5325,9 +5354,9 @@ const sal_Int8 SwPageFrm::mnShadowPxWidth = 10;
     SwPageFrm::GetBottomShadowRect( _rPageRect, _pViewShell, aPaintRect, bFullBottomShadow, bRightSidebar );
     if(!bFullBottomShadow)
     {
-        BitmapEx aPageBottomLeftShadow( SW_RES( BMP_PAGE_BOTTOM_LEFT_SHADOW ) );
         pOut->DrawBitmapEx( pOut->PixelToLogic( Point( aPaintRect.Left() - mnShadowPxWidth, aPaintRect.Top() ) ), aPageBottomLeftShadow );
     }
+    BitmapEx aPageBottomShadow = aPageBottomShadowBase;
     aPageBottomShadow.Scale( aPaintRect.Width(), 1 );
     pOut->DrawBitmapEx( pOut->PixelToLogic( aPaintRect.Pos() ), aPageBottomShadow);
 }
-- 
1.7.4.1

From b9b31354be0a43da21ceac086d471f3787eb3fc8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Le=20Ray?= <[email protected]>
Date: Sun, 6 Mar 2011 16:31:58 +0100
Subject: [PATCH 2/4] Removed no more used shadow images.

---
 sw/source/core/inc/pagefrm.hrc    |    8 +++-----
 sw/source/core/layout/pagefrm.src |   10 ----------
 2 files changed, 3 insertions(+), 15 deletions(-)

diff --git a/sw/source/core/inc/pagefrm.hrc b/sw/source/core/inc/pagefrm.hrc
index c72c212..20a0512 100644
--- a/sw/source/core/inc/pagefrm.hrc
+++ b/sw/source/core/inc/pagefrm.hrc
@@ -31,11 +31,9 @@
 #include "rcid.hrc"
 
 //  Bitmaps for page shadow
-#define BMP_PAGE_TOP_RIGHT_SHADOW      RC_PAGEFRM_BEGIN
-#define BMP_PAGE_RIGHT_SHADOW          RC_PAGEFRM_BEGIN + 1
-#define BMP_PAGE_BOTTOM_RIGHT_SHADOW   RC_PAGEFRM_BEGIN + 2
-#define BMP_PAGE_BOTTOM_SHADOW         RC_PAGEFRM_BEGIN + 3
-#define BMP_PAGE_BOTTOM_LEFT_SHADOW    RC_PAGEFRM_BEGIN + 4
+#define BMP_PAGE_RIGHT_SHADOW          RC_PAGEFRM_BEGIN + 0
+#define BMP_PAGE_BOTTOM_RIGHT_SHADOW   RC_PAGEFRM_BEGIN + 1
+#define BMP_PAGE_BOTTOM_SHADOW         RC_PAGEFRM_BEGIN + 2
 
 
 // If you add resources, don't forget to update this
diff --git a/sw/source/core/layout/pagefrm.src b/sw/source/core/layout/pagefrm.src
index dfa9b2b..dd77467 100644
--- a/sw/source/core/layout/pagefrm.src
+++ b/sw/source/core/layout/pagefrm.src
@@ -1,10 +1,5 @@
 #include "pagefrm.hrc"
 
-Bitmap BMP_PAGE_TOP_RIGHT_SHADOW
-{
-    File = "page-topright-shadow.png";
-};
-
 Bitmap BMP_PAGE_RIGHT_SHADOW
 {
     File = "page-right-shadow.png";
@@ -20,8 +15,3 @@ Bitmap BMP_PAGE_BOTTOM_SHADOW
     File = "page-bottom-shadow.png";
 };
 
-Bitmap BMP_PAGE_BOTTOM_LEFT_SHADOW
-{
-    File = "page-bottomleft-shadow.png";
-};
-
-- 
1.7.4.1

From 0e973d8fcc78acdbad66b888663ca976954bbe16 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Le=20Ray?= <[email protected]>
Date: Sun, 6 Mar 2011 16:31:41 +0100
Subject: [PATCH 2/3] Removed now useless images.

---
 default_images/sw/res/page-bottomleft-shadow.png |  Bin 285 -> 0 bytes
 default_images/sw/res/page-topright-shadow.png   |  Bin 306 -> 0 bytes
 2 files changed, 0 insertions(+), 0 deletions(-)
 delete mode 100644 default_images/sw/res/page-bottomleft-shadow.png
 delete mode 100644 default_images/sw/res/page-topright-shadow.png

diff --git a/default_images/sw/res/page-bottomleft-shadow.png b/default_images/sw/res/page-bottomleft-shadow.png
deleted file mode 100644
index 9e4a72b1acacb82f99f323cdaf415f39f6cf4774..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 285
zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4F%}28J29*~C-V}>VN3FMcVYMs
zf(!O8p9~b?EbxddW?<kJ24O~qS#u<Sg6t)pzOL-InWTB7S!Zr$J`5C^>*?YcB5}F&
z{OP<y4m=JQjSWm3<V6A%C;tCGUuV+^^^)+FS^@J~U1bCtvtFK(`hDu#l3gpk)-)Ma
zRPYxZjMtxEEwkZZ`Z2-f8t<Cp*BD+qR^E3^??sE|Jf~ZV&olCpkMehMFTOIbsN<G_
z<K2+_h)2xad)Uuw7<d@Q-3^&*a-3)VjFP0X?)4}B-uE+f@_MIqu7b0x{^*3_{9LzP
ZOgjP$&+h*;pA+a%22WQ%mvv4FO#mOpX<PsR

diff --git a/default_images/sw/res/page-topright-shadow.png b/default_images/sw/res/page-topright-shadow.png
deleted file mode 100644
index 2603731527826eb1143d6191c4e27950b0d67d81..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 306
zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4F%}28J29*~C-V}>VN3FMcVYMs
zf(!O8p9~b?EbxddW?<kJ24O~qS#u<Sg6t)pzOL-InWTB7g>%!lO#%vS@^o<wk+>Xt
z-Zt-0fPm}6^L&O++yfUWC~aou;`+9qLtJl9rv|G4M_+TWfwJPflG*0&<>y3luV0Zc
ze9-c^YOCa(Jwm5FWFxo4elFtnOR{(*&Tf-@yUe$B{nxBwzk<%<bw~L`-z|D$9DY6g
z=K-1b6^FC4QXa=|$#qvdx-`?FKl!$4I}7`pKv9v0)m+crZJrp~raipEzM*@+<g%MT
vWH0zLT=o#H`d)eF^3|m?FS#yu`N)6J*I4l5y#Ka9*E4v!`njxgN@xNA0Vi<z

-- 
1.7.4.1

From d6cd9b8866a7697f270061d0e6abb3f31eb34dbb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Le=20Ray?= <[email protected]>
Date: Sun, 6 Mar 2011 16:39:25 +0100
Subject: [PATCH 3/4] Renamed shadow images to *-mask.

---
 sw/source/core/inc/pagefrm.hrc     |    6 +++---
 sw/source/core/layout/pagefrm.src  |   12 ++++++------
 sw/source/core/layout/paintfrm.cxx |    6 +++---
 3 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/sw/source/core/inc/pagefrm.hrc b/sw/source/core/inc/pagefrm.hrc
index 20a0512..302ba9a 100644
--- a/sw/source/core/inc/pagefrm.hrc
+++ b/sw/source/core/inc/pagefrm.hrc
@@ -31,9 +31,9 @@
 #include "rcid.hrc"
 
 //  Bitmaps for page shadow
-#define BMP_PAGE_RIGHT_SHADOW          RC_PAGEFRM_BEGIN + 0
-#define BMP_PAGE_BOTTOM_RIGHT_SHADOW   RC_PAGEFRM_BEGIN + 1
-#define BMP_PAGE_BOTTOM_SHADOW         RC_PAGEFRM_BEGIN + 2
+#define BMP_PAGE_RIGHT_SHADOW_MASK          RC_PAGEFRM_BEGIN + 0
+#define BMP_PAGE_BOTTOM_RIGHT_SHADOW_MASK   RC_PAGEFRM_BEGIN + 1
+#define BMP_PAGE_BOTTOM_SHADOW_MASK         RC_PAGEFRM_BEGIN + 2
 
 
 // If you add resources, don't forget to update this
diff --git a/sw/source/core/layout/pagefrm.src b/sw/source/core/layout/pagefrm.src
index dd77467..83b80e4 100644
--- a/sw/source/core/layout/pagefrm.src
+++ b/sw/source/core/layout/pagefrm.src
@@ -1,17 +1,17 @@
 #include "pagefrm.hrc"
 
-Bitmap BMP_PAGE_RIGHT_SHADOW
+Bitmap BMP_PAGE_RIGHT_SHADOW_MASK
 {
-    File = "page-right-shadow.png";
+    File = "page-right-shadow-mask.png";
 };
 
-Bitmap BMP_PAGE_BOTTOM_RIGHT_SHADOW
+Bitmap BMP_PAGE_BOTTOM_RIGHT_SHADOW_MASK
 {
-    File = "page-bottomright-shadow.png";
+    File = "page-bottomright-shadow-mask.png";
 };
 
-Bitmap BMP_PAGE_BOTTOM_SHADOW
+Bitmap BMP_PAGE_BOTTOM_SHADOW_MASK
 {
-    File = "page-bottom-shadow.png";
+    File = "page-bottom-shadow-mask.png";
 };
 
diff --git a/sw/source/core/layout/paintfrm.cxx b/sw/source/core/layout/paintfrm.cxx
index 82ab24b..13b51d3 100644
--- a/sw/source/core/layout/paintfrm.cxx
+++ b/sw/source/core/layout/paintfrm.cxx
@@ -5313,7 +5313,7 @@ const sal_Int8 SwPageFrm::mnShadowPxWidth = 10;
 
 
     if(!initialized) {
-        AlphaMask aMask( SW_RES( BMP_PAGE_BOTTOM_RIGHT_SHADOW ) );
+        AlphaMask aMask( SW_RES( BMP_PAGE_BOTTOM_RIGHT_SHADOW_MASK ) );
         Bitmap aFilledSquare( Size( mnShadowPxWidth, mnShadowPxWidth ), 24 );
         aFilledSquare.Erase( aShadowColor );
 
@@ -5325,12 +5325,12 @@ const sal_Int8 SwPageFrm::mnShadowPxWidth = 10;
 
         aFilledSquare = Bitmap( Size( 1, mnShadowPxWidth ), 24 );
         aFilledSquare.Erase( aShadowColor );
-        aMask = Bitmap( SW_RES( BMP_PAGE_BOTTOM_SHADOW ) );
+        aMask = Bitmap( SW_RES( BMP_PAGE_BOTTOM_SHADOW_MASK ) );
         aPageBottomShadowBase = BitmapEx( aFilledSquare, aMask );
 
         aFilledSquare = Bitmap( Size( mnShadowPxWidth, 1 ), 24 );
         aFilledSquare.Erase( aShadowColor );
-        aMask = Bitmap( SW_RES( BMP_PAGE_RIGHT_SHADOW ) );
+        aMask = Bitmap( SW_RES( BMP_PAGE_RIGHT_SHADOW_MASK ) );
         aPageRightShadowBase = BitmapEx( aFilledSquare, aMask );
 
         initialized = true;
-- 
1.7.4.1

From 29894b3c170ba6167106003d35f2fe065319f61e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Le=20Ray?= <[email protected]>
Date: Sun, 6 Mar 2011 16:38:54 +0100
Subject: [PATCH 3/3] Use meaningful names for shadow images.

---
 default_images/sw/res/page-bottom-shadow-mask.png  |  Bin 0 -> 181 bytes
 default_images/sw/res/page-bottom-shadow.png       |  Bin 181 -> 0 bytes
 .../sw/res/page-bottomright-shadow-mask.png        |  Bin 0 -> 208 bytes
 default_images/sw/res/page-bottomright-shadow.png  |  Bin 208 -> 0 bytes
 default_images/sw/res/page-right-shadow-mask.png   |  Bin 0 -> 180 bytes
 default_images/sw/res/page-right-shadow.png        |  Bin 180 -> 0 bytes
 6 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 default_images/sw/res/page-bottom-shadow-mask.png
 delete mode 100644 default_images/sw/res/page-bottom-shadow.png
 create mode 100644 default_images/sw/res/page-bottomright-shadow-mask.png
 delete mode 100644 default_images/sw/res/page-bottomright-shadow.png
 create mode 100644 default_images/sw/res/page-right-shadow-mask.png
 delete mode 100644 default_images/sw/res/page-right-shadow.png

diff --git a/default_images/sw/res/page-bottom-shadow-mask.png b/default_images/sw/res/page-bottom-shadow-mask.png
new file mode 100644
index 0000000000000000000000000000000000000000..fd19f034bb0fc80350c240eab1c0e33d7864f1e0
GIT binary patch
literal 181
zcmeAS@N?(olHy`uVBq!ia0vp^j6lrA0VEg#c4kil2^0spJ29*~C-V}>VM_9LcVYP7
z-hXC4kjGiz5n0T@z%2~Ij105pNB{-dOFVsD*>5wm@hOVhTJ3iN3Q3l@MwB?`=jNv7
zl`uFLr6!i7rYMwWmSiZnd-?{1H}Z)C6^VGdIEHXsPfkdfkTNL=2veFaGjMEW`1bT_
R>3X0%gQu&X%Q~loCID+EFY5pR

literal 0
HcmV?d00001

diff --git a/default_images/sw/res/page-bottom-shadow.png b/default_images/sw/res/page-bottom-shadow.png
deleted file mode 100644
index fd19f034bb0fc80350c240eab1c0e33d7864f1e0..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 181
zcmeAS@N?(olHy`uVBq!ia0vp^j6lrA0VEg#c4kil2^0spJ29*~C-V}>VM_9LcVYP7
z-hXC4kjGiz5n0T@z%2~Ij105pNB{-dOFVsD*>5wm@hOVhTJ3iN3Q3l@MwB?`=jNv7
zl`uFLr6!i7rYMwWmSiZnd-?{1H}Z)C6^VGdIEHXsPfkdfkTNL=2veFaGjMEW`1bT_
R>3X0%gQu&X%Q~loCID+EFY5pR

diff --git a/default_images/sw/res/page-bottomright-shadow-mask.png b/default_images/sw/res/page-bottomright-shadow-mask.png
new file mode 100644
index 0000000000000000000000000000000000000000..94f32290092a528df8eeb76fadec1f5b9b77987b
GIT binary patch
literal 208
zcmeAS@N?(olHy`uVBq!ia0vp^AT}2VkYHF5IUx~9F%}28J29*~C-V}>VM_9LcVYP7
z-hXC4kjGiz5n0T@z%2~Ij105pNB{-dOFVsD*>5wmaY>70%>7vi6bkWlaSY+O&U)}9
z;{gQ@mIJQgoby!dU+lkdhC@l&*l5#{H*1!5aBRMxx@zsj$m#Plou>xo?tZ_qC$Kbj
zfBMA8E8lAWHfa8xdECAs@JCNAgTa!Of(&&cUMv~auUtxi<}-M@`njxgN@xNAtSm##

literal 0
HcmV?d00001

diff --git a/default_images/sw/res/page-bottomright-shadow.png b/default_images/sw/res/page-bottomright-shadow.png
deleted file mode 100644
index 94f32290092a528df8eeb76fadec1f5b9b77987b..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 208
zcmeAS@N?(olHy`uVBq!ia0vp^AT}2VkYHF5IUx~9F%}28J29*~C-V}>VM_9LcVYP7
z-hXC4kjGiz5n0T@z%2~Ij105pNB{-dOFVsD*>5wmaY>70%>7vi6bkWlaSY+O&U)}9
z;{gQ@mIJQgoby!dU+lkdhC@l&*l5#{H*1!5aBRMxx@zsj$m#Plou>xo?tZ_qC$Kbj
zfBMA8E8lAWHfa8xdECAs@JCNAgTa!Of(&&cUMv~auUtxi<}-M@`njxgN@xNAtSm##

diff --git a/default_images/sw/res/page-right-shadow-mask.png b/default_images/sw/res/page-right-shadow-mask.png
new file mode 100644
index 0000000000000000000000000000000000000000..784e00f37afcaf952f6a82c40f390b0f5fbda432
GIT binary patch
literal 180
zcmeAS@N?(olHy`uVBq!ia0vp^AT}chkYG48FJTdgQyk>(#IWw1%u67LDaqU2h2ejD
z|C#+j9%q3^WHAE+w=f7ZGR&GI0Tg5}@$_|Nzs=0Xr=T^-eX$)-NV3E=qQp5rH#aq}
zgu%HeHL)Z$MWH;iBtya7(>EZzkxv|`NZ8ZGF@)oKa>|4$lO|08VHO6Ki44z+_5^JN
PN;7!6`njxgN@xNAgB34b

literal 0
HcmV?d00001

diff --git a/default_images/sw/res/page-right-shadow.png b/default_images/sw/res/page-right-shadow.png
deleted file mode 100644
index 784e00f37afcaf952f6a82c40f390b0f5fbda432..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 180
zcmeAS@N?(olHy`uVBq!ia0vp^AT}chkYG48FJTdgQyk>(#IWw1%u67LDaqU2h2ejD
z|C#+j9%q3^WHAE+w=f7ZGR&GI0Tg5}@$_|Nzs=0Xr=T^-eX$)-NV3E=qQp5rH#aq}
zgu%HeHL)Z$MWH;iBtya7(>EZzkxv|`NZ8ZGF@)oKa>|4$lO|08VHO6Ki44z+_5^JN
PN;7!6`njxgN@xNAgB34b

-- 
1.7.4.1

From e0b8024df145078ba2a8ee94623f2ef4c045cb7f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Le=20Ray?= <[email protected]>
Date: Tue, 8 Mar 2011 08:43:28 +0100
Subject: [PATCH 4/4] Handle shadow option in frame painting.

---
 sw/inc/viewopt.hxx                 |    4 ++++
 sw/source/core/layout/paintfrm.cxx |   11 ++++++-----
 sw/source/ui/config/viewopt.cxx    |   12 ++++++++++++
 3 files changed, 22 insertions(+), 5 deletions(-)

diff --git a/sw/inc/viewopt.hxx b/sw/inc/viewopt.hxx
index c71bfb1..2c4d2e7 100644
--- a/sw/inc/viewopt.hxx
+++ b/sw/inc/viewopt.hxx
@@ -110,6 +110,7 @@ namespace svtools{ class ColorConfig;}
 #define VIEWOPT_VISITED_LINKS       0x0020
 #define VIEWOPT_FIELD_SHADINGS      0x0040
 #define VIEWOPT_SECTION_BOUNDARIES  0x0080
+#define VIEWOPT_SHADOW              0x0100
 
 // Implementierung in core/text/txtpaint.cxx
 extern void SyncVout( const OutputDevice *pOut );
@@ -133,6 +134,7 @@ class SwViewOption
     static Color    aSectionBoundColor;
     static Color    aPageBreakColor;
     static Color    aScriptIndicatorColor;
+    static Color    aShadowColor;
 
     static sal_Int32 nAppearanceFlags;  //
 protected:
@@ -557,6 +559,7 @@ public:
     static Color&   GetTextGridColor();
     static Color&   GetSpellColor();
     static Color&   GetSmarttagColor();
+    static Color&   GetShadowColor();
     SW_DLLPUBLIC static Color&   GetFontColor();
     static Color&   GetFieldShadingsColor();
     static Color&   GetSectionBoundColor();
@@ -572,6 +575,7 @@ public:
     static BOOL     IsVisitedLinks()    {return IsAppearanceFlag(VIEWOPT_VISITED_LINKS    );}
     static BOOL     IsFieldShadings()   {return IsAppearanceFlag(VIEWOPT_FIELD_SHADINGS);}
     static BOOL     IsSectionBoundaries() {return IsAppearanceFlag(VIEWOPT_SECTION_BOUNDARIES);}
+    static BOOL     IsShadow()          {return IsAppearanceFlag(VIEWOPT_SHADOW           );}
 
     static void     SetAppearanceFlag(sal_Int32 nFlag, BOOL bSet, BOOL bSaveInConfig = FALSE);
 
diff --git a/sw/source/core/layout/paintfrm.cxx b/sw/source/core/layout/paintfrm.cxx
index 13b51d3..da5e5db 100644
--- a/sw/source/core/layout/paintfrm.cxx
+++ b/sw/source/core/layout/paintfrm.cxx
@@ -5299,20 +5299,23 @@ const sal_Int8 SwPageFrm::mnShadowPxWidth = 10;
                                                  bool bFullBottomShadow,
                                                  bool bRightSidebar )
 {
+    // No shadow in prefs
+    if( !SwViewOption::IsShadow() ) return;
+
     // --> FME 2004-06-24 #i16816# tagged pdf support
     SwTaggedPDFHelper aTaggedPDFHelper( 0, 0, 0, *_pViewShell->GetOut() );
     // <--
 
-    static bool initialized = false;
     static BitmapEx aPageTopRightShadow;
     static BitmapEx aPageBottomRightShadow;
     static BitmapEx aPageBottomLeftShadow;
     static BitmapEx aPageBottomShadowBase;
     static BitmapEx aPageRightShadowBase;
-    static Color aShadowColor( COL_BLACK );
+    static Color aShadowColor;
 
 
-    if(!initialized) {
+    if(aShadowColor != SwViewOption::GetShadowColor() ) {
+        aShadowColor = SwViewOption::GetShadowColor();
         AlphaMask aMask( SW_RES( BMP_PAGE_BOTTOM_RIGHT_SHADOW_MASK ) );
         Bitmap aFilledSquare( Size( mnShadowPxWidth, mnShadowPxWidth ), 24 );
         aFilledSquare.Erase( aShadowColor );
@@ -5332,8 +5335,6 @@ const sal_Int8 SwPageFrm::mnShadowPxWidth = 10;
         aFilledSquare.Erase( aShadowColor );
         aMask = Bitmap( SW_RES( BMP_PAGE_RIGHT_SHADOW_MASK ) );
         aPageRightShadowBase = BitmapEx( aFilledSquare, aMask );
-
-        initialized = true;
     }
 
     SwRect aPaintRect;
diff --git a/sw/source/ui/config/viewopt.cxx b/sw/source/ui/config/viewopt.cxx
index 18a1a23..a0db43d 100644
--- a/sw/source/ui/config/viewopt.cxx
+++ b/sw/source/ui/config/viewopt.cxx
@@ -72,6 +72,7 @@ Color SwViewOption::aFieldShadingsColor(COL_LIGHTGRAY);
 Color SwViewOption::aSectionBoundColor(COL_LIGHTGRAY);
 Color SwViewOption::aPageBreakColor(COL_BLUE);
 Color SwViewOption::aScriptIndicatorColor(COL_GREEN);
+Color SwViewOption::aShadowColor(COL_GRAY);
 
 sal_Int32 SwViewOption::nAppearanceFlags = VIEWOPT_DOC_BOUNDARIES|VIEWOPT_OBJECT_BOUNDARIES;
 USHORT SwViewOption::nPixelTwips = 0;   // one pixel on the screen
@@ -418,6 +419,11 @@ Color&   SwViewOption::GetSmarttagColor()
     return aSmarttagColor;
 }
 
+Color&   SwViewOption::GetShadowColor()
+{
+    return aShadowColor;
+}
+
 Color&   SwViewOption::GetFontColor()
 {
     return aFontColor;
@@ -475,6 +481,11 @@ void SwViewOption::ApplyColorConfigValues(const svtools::ColorConfig& rConfig )
     if(aValue.bIsVisible)
         nAppearanceFlags |= VIEWOPT_VISITED_LINKS;
 
+    aValue = rConfig.GetColorValue(svtools::SHADOWCOLOR);
+    aShadowColor.SetColor(aValue.nColor);
+    if(aValue.bIsVisible)
+        nAppearanceFlags |= VIEWOPT_SHADOW;
+
     aDirectCursorColor.SetColor(rConfig.GetColorValue(svtools::WRITERDIRECTCURSOR).nColor);
 
     aTextGridColor.SetColor(rConfig.GetColorValue(svtools::WRITERTEXTGRID).nColor);
@@ -526,6 +537,7 @@ void SwViewOption::SetAppearanceFlag(sal_Int32 nFlag, BOOL bSet, BOOL bSaveInCon
             { VIEWOPT_VISITED_LINKS      ,   svtools::LINKSVISITED },
             { VIEWOPT_FIELD_SHADINGS     ,   svtools::WRITERFIELDSHADINGS },
             { VIEWOPT_SECTION_BOUNDARIES ,   svtools::WRITERSECTIONBOUNDARIES },
+            { VIEWOPT_SHADOW             ,   svtools::SHADOWCOLOR },
             { 0                          ,   svtools::ColorConfigEntryCount }
         };
         sal_uInt16 nPos = 0;
-- 
1.7.4.1

Attachment: signature.asc
Description: PGP signature

_______________________________________________
LibreOffice mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to