Fix fdo#84512 Background color not shown in Styles-Dropdown

this fix is only for simple color backgrounds; gradient, hatching and bitmap are not implement.

Change-Id: I5ec31c0105491c6d27835d63648fedff21998926
Reviewed-on: https://gerrit.libreoffice.org/11762
Reviewed-by: Samuel Mehrbrodt <s.mehrbrodt@gmail.com>
Tested-by: Samuel Mehrbrodt <s.mehrbrodt@gmail.com>
diff --git a/svx/source/tbxctrls/tbcontrl.cxx b/svx/source/tbxctrls/tbcontrl.cxx
index fe8597d..669d985 100644
--- a/svx/source/tbxctrls/tbcontrl.cxx
+++ b/svx/source/tbxctrls/tbcontrl.cxx
@@ -62,7 +62,6 @@
#include <svx/xtable.hxx>
#include <editeng/fontitem.hxx>
#include <editeng/fhgtitem.hxx>
#include <editeng/brushitem.hxx>
#include <editeng/boxitem.hxx>
#include <editeng/charreliefitem.hxx>
#include <editeng/contouritem.hxx>
@@ -89,6 +88,9 @@
#include <editeng/eerdll.hxx>
#include <editeng/editrids.hrc>
#include <svx/xlnclit.hxx>
#include <svx/xfillit0.hxx>
#include <svx/xflclit.hxx>


#define MAX_MRU_FONTNAME_ENTRIES    5
#define LOGICAL_EDIT_HEIGHT         12
@@ -647,43 +649,55 @@ void SvxStyleBox_Impl::UserDraw( const UserDrawEvent& rUDEvt )
                Color aOldColor( pDevice->GetTextColor() );
                Color aOldFillColor( pDevice->GetFillColor() );

                Color aFontCol = COL_AUTO, aBackCol = COL_AUTO;

                pDevice->SetFont( aFont );

                Color aFontCol, aBackCol;
                bool  IsNotSelect = rUDEvt.GetItemId() != GetSelectEntryPos();
                bool IsNotSelected = rUDEvt.GetItemId() != GetSelectEntryPos();

                // text color
                pItem = aItemSet.GetItem( SID_ATTR_CHAR_COLOR );
                if ( NULL != pItem )
                // text color, when nothing is selected
                if ( (NULL != pItem) && IsNotSelected)
                    aFontCol = Color( static_cast< const SvxColorItem* >( pItem )->GetValue() );
                else
                    aFontCol = COL_AUTO;

                // background color
                pItem = aItemSet.GetItem( SID_ATTR_BRUSH );
                if ( NULL != pItem )
                    aBackCol = Color( static_cast< const SvxBrushItem* >( pItem )->GetColor() );
                else
                    aBackCol = COL_AUTO;
                sal_uInt16 style = drawing::FillStyle_NONE;
                // which kind of Fill style is selected
                pItem = aItemSet.GetItem( XATTR_FILLSTYLE );
                // only when ok and not selected
                if ( (NULL != pItem) && IsNotSelected)
                    style = static_cast< const XFillStyleItem* >( pItem )->GetValue();

                // test is the font-, background-color not different, then change the Font-Color
                switch(style)
                {
                    case drawing::FillStyle_SOLID:
                    {
                        // set background color
                        pItem = aItemSet.GetItem( XATTR_FILLCOLOR );
                        if ( NULL != pItem )
                            aBackCol = Color( static_cast< const XFillColorItem* >( pItem )->GetColorValue() );

                        if ( aBackCol != COL_AUTO )
                        {
                            pDevice->SetFillColor( aBackCol );
                            pDevice->DrawRect( rUDEvt.GetRect() );
                        }
                    }
                    break;

                    //TODO Draw the other background styles: gradient, hatching and bitmap
               }

                // when the font- and background-color are too similiar, adjust the Font-Color
                if( (aFontCol != COL_AUTO) || (aBackCol != COL_AUTO) )
                    aFontCol = TestColorsVisible(aFontCol, (aBackCol != COL_AUTO) ? aBackCol : pDevice->GetBackground().GetColor());

                // text color, when we are not selected
                if ( (aFontCol != COL_AUTO) && IsNotSelect )
                // set text color
                if ( aFontCol != COL_AUTO )
                    pDevice->SetTextColor( aFontCol );

                // background color
                if (pItem && IsNotSelect)
                // handle the push-button
                if (IsNotSelected)
                {
                    // background color,  when we are not selected
                    if ( aBackCol != COL_AUTO )
                    {
                        pDevice->SetFillColor( aBackCol );
                        pDevice->DrawRect( rUDEvt.GetRect() );
                    }

                    Rectangle aRect(rUDEvt.GetRect());
                    unsigned int nId = (aRect.getY() / aRect.GetSize().Height());
                    if(nId < MAX_STYLES_ENTRIES && m_pButtons[nId])