Kaydet (Commit) e239f372 authored tarafından Maxim Monastirsky's avatar Maxim Monastirsky Kaydeden (comit) Caolán McNamara

fdo#71748 Fix color pickers

This commit includes the following changes:

1) Remove boxes from PNG files, and draw them ourselves.
This will ensure that the color rec will always fit the box.
Also it will make all color pickers look the same, and greatly
simplify the code. (a part of the code was not reachable anyway.)

2) Fix color preview for toolbar large icons. (a regression of
commit f59c47fc.)

3) Fix sidebar paragraph color picker initial drawing. reset should
be called *after* the icon assignment.

Change-Id: I13ae02bc3dd68dd14877ccc949784072c58bf211
Reviewed-on: https://gerrit.libreoffice.org/6882Reviewed-by: 's avatarCaolán McNamara <caolanm@redhat.com>
Tested-by: 's avatarCaolán McNamara <caolanm@redhat.com>
üst 4f743082
......@@ -345,9 +345,8 @@ void ParaPropertyPanel::InitToolBoxBGColor()
{
const sal_uInt16 nIdBackColor = mpTBxBackColor->GetItemId(UNO_PARABACKCOLOR);
mpColorUpdater.reset(new ::svx::ToolboxButtonColorUpdater(SID_BACKGROUND_COLOR, nIdBackColor, mpTBxBackColor));
mpTBxBackColor->SetItemImage(nIdBackColor, GetDisplayBackground().GetColor().IsDark()? maImgBackColorHigh : maImgBackColor);
mpColorUpdater.reset(new ::svx::ToolboxButtonColorUpdater(SID_BACKGROUND_COLOR, nIdBackColor, mpTBxBackColor));
mpTBxBackColor->SetItemBits( nIdBackColor, mpTBxBackColor->GetItemBits( nIdBackColor ) | TIB_DROPDOWNONLY );
Link aLink = LINK(this, ParaPropertyPanel, ToolBoxBackColorDDHandler);
......
......@@ -126,7 +126,7 @@ namespace svx
mbWasHiContrastMode = mpTbx->GetSettings().GetStyleSettings().GetHighContrastMode();
if( COL_TRANSPARENT != aColor.GetColor() )
if( ( COL_TRANSPARENT != aColor.GetColor() ) && ( maBmpSize.Width() == maBmpSize.Height() ) )
pBmpAcc->SetLineColor( aColor );
else if( mpTbx->GetBackground().GetColor().IsDark() )
pBmpAcc->SetLineColor( Color( COL_WHITE ) );
......@@ -135,33 +135,10 @@ namespace svx
pBmpAcc->SetFillColor( maCurColor = aColor );
if( maBmpSize.Width() <= 16 )
maUpdRect = Rectangle( Point( 0,12 ), Size( maBmpSize.Width(), 4 ) );
else if(76 == maBmpSize.Width() && 12 == maBmpSize.Height())
{
maUpdRect.Left() = 22;
maUpdRect.Top() = 2;
maUpdRect.Right() = 73;
maUpdRect.Bottom() = 9;
}
else if(maBmpSize.Width() >= (2 * maBmpSize.Height() - 2) && maBmpSize.Height() >= 16)
{
maUpdRect.Left() = maBmpSize.Height() + 2;
maUpdRect.Top() = 2;
maUpdRect.Right() = maBmpSize.Width() - 3;
maUpdRect.Bottom() = maBmpSize.Height() - 3;
}
if( maBmpSize.Width() == maBmpSize.Height() )
maUpdRect = Rectangle( Point( 0, maBmpSize.Height() * 3 / 4 ), Size( maBmpSize.Width(), maBmpSize.Height() / 4 ) );
else
{
maUpdRect = Rectangle( Point( 0, 0 ), Size( maBmpSize.Width(), maBmpSize.Height() ) );
// Now, fit the selected color inside the toolbox color-rectangle such that
// the distinct boundaries of the rectangle of toolbox are also clearly visible.
maUpdRect.Left() += 21;
maUpdRect.Top() += 1;
maUpdRect.Bottom() -= 1;
maUpdRect.Right() -= 4;
}
maUpdRect = Rectangle( Point( maBmpSize.Height() + 2, 2 ), Point( maBmpSize.Width() - 3, maBmpSize.Height() - 3 ) );
pBmpAcc->DrawRect( maUpdRect );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment