Resolves: tdf#160681 draw impress comment similarly to how writer does it
so we get the same filled MenuButton in both applications
Change-Id: Iea41a17285287ec2794e4cdce6eaae0906fff291
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168969
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Signed-off-by: Xisco Fauli <xiscofauli@libreoffice.org>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168989
diff --git a/sd/source/ui/annotations/annotationwindow.cxx b/sd/source/ui/annotations/annotationwindow.cxx
index a2f17a1a..ec9a211 100644
--- a/sd/source/ui/annotations/annotationwindow.cxx
+++ b/sd/source/ui/annotations/annotationwindow.cxx
@@ -40,11 +40,13 @@
#include <vcl/commandevent.hxx>
#include <vcl/commandinfoprovider.hxx>
#include <vcl/decoview.hxx>
#include <vcl/vclenum.hxx>
#include <vcl/svapp.hxx>
#include <vcl/gradient.hxx>
#include <vcl/settings.hxx>
#include <vcl/ptrstyle.hxx>
#include <vcl/virdev.hxx>
#include <strings.hrc>
#include "annotationwindow.hxx"
@@ -278,10 +280,7 @@ void AnnotationWindow::InitControls()
if (mbReadonly)
mxMenuButton->hide();
else
{
mxMenuButton->set_size_request(METABUTTON_WIDTH, METABUTTON_HEIGHT);
mxMenuButton->connect_selected(LINK(this, AnnotationWindow, MenuItemSelectedHdl));
}
EEControlBits nCntrl = mpOutliner->GetControlWord();
nCntrl |= EEControlBits::PASTESPECIAL | EEControlBits::AUTOCORRECT | EEControlBits::USECHARATTRIBS | EEControlBits::NOCOLORS;
@@ -557,6 +556,32 @@ void AnnotationWindow::SetColor()
mxPopover->set_background(maColor);
mxMenuButton->set_background(maColor);
ScopedVclPtrInstance<VirtualDevice> xVirDev;
xVirDev->SetLineColor();
xVirDev->SetFillColor(maColor);
Size aSize(METABUTTON_WIDTH, METABUTTON_HEIGHT);
::tools::Rectangle aRect(Point(0, 0), aSize);
xVirDev->SetOutputSizePixel(aSize);
xVirDev->DrawRect(aRect);
::tools::Rectangle aSymbolRect(aRect);
// 25% distance to the left and right button border
const ::tools::Long nBorderDistanceLeftAndRight = ((aSymbolRect.GetWidth() * 250) + 500) / 1000;
aSymbolRect.AdjustLeft(nBorderDistanceLeftAndRight );
aSymbolRect.AdjustRight( -nBorderDistanceLeftAndRight );
// 40% distance to the top button border
const ::tools::Long nBorderDistanceTop = ((aSymbolRect.GetHeight() * 400) + 500) / 1000;
aSymbolRect.AdjustTop(nBorderDistanceTop );
// 15% distance to the bottom button border
const ::tools::Long nBorderDistanceBottom = ((aSymbolRect.GetHeight() * 150) + 500) / 1000;
aSymbolRect.AdjustBottom( -nBorderDistanceBottom );
DecorationView aDecoView(xVirDev.get());
aDecoView.DrawSymbol(aSymbolRect, SymbolType::SPIN_DOWN, COL_BLACK,
DrawSymbolFlags::NONE);
mxMenuButton->set_image(xVirDev);
mxMenuButton->set_size_request(aSize.Width() + 4, aSize.Height() + 4);
mxMeta->set_font_color(bHighContrast ? maColorLight : maColorDark);
mxVScrollbar->customize_scrollbars(maColorLight,
diff --git a/sd/uiconfig/simpress/ui/annotation.ui b/sd/uiconfig/simpress/ui/annotation.ui
index 49a8a30..dcebff0 100644
--- a/sd/uiconfig/simpress/ui/annotation.ui
+++ b/sd/uiconfig/simpress/ui/annotation.ui
@@ -2,6 +2,12 @@
<!-- Generated with glade 3.38.2 -->
<interface domain="sd">
<requires lib="gtk+" version="3.20"/>
<object class="GtkImage" id="image7">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">open-menu-symbolic</property>
<property name="icon_size">2</property>
</object>
<object class="GtkMenu" id="menu">
<property name="visible">True</property>
<property name="can-focus">False</property>
@@ -140,8 +146,9 @@
<property name="valign">start</property>
<property name="margin-end">10</property>
<property name="margin-top">5</property>
<property name="image">image7</property>
<property name="relief">none</property>
<property name="draw-indicator">True</property>
<property name="always-show-image">True</property>
<property name="popup">menu</property>
<child>
<placeholder/>