Convert AreaTransparencyGradientPopup to WeldToolbarPopup
Change-Id: I3cbb17de9953281e884f6c1b2984bc4865a56227 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118471 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Szymon Kłos <szymon.klos@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120700 Tested-by: Jenkins
This commit is contained in:
@@ -97,6 +97,8 @@ private:
|
||||
void Initialize();
|
||||
|
||||
protected:
|
||||
const css::uno::Reference<css::frame::XFrame>& mxFrame;
|
||||
|
||||
sal_uInt16 meLastXFS;
|
||||
|
||||
sal_Int32 mnLastPosHatch;
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
#define INCLUDED_SVX_SOURCE_SIDEBAR_AREA_AREATRANSPARENCYGRADIENTPOPUP_HXX
|
||||
|
||||
#include <vcl/weld.hxx>
|
||||
#include <svtools/toolbarmenu.hxx>
|
||||
|
||||
class XFillFloatTransparenceItem;
|
||||
|
||||
@@ -28,12 +29,10 @@ namespace svx::sidebar
|
||||
class AreaTransparencyGradientControl;
|
||||
class AreaPropertyPanelBase;
|
||||
|
||||
class AreaTransparencyGradientPopup final
|
||||
class AreaTransparencyGradientPopup final : public WeldToolbarPopup
|
||||
{
|
||||
private:
|
||||
AreaPropertyPanelBase& mrAreaPropertyPanel;
|
||||
std::unique_ptr<weld::Builder> mxBuilder;
|
||||
std::unique_ptr<weld::Container> mxTopLevel;
|
||||
std::unique_ptr<weld::Widget> mxCenterGrid;
|
||||
std::unique_ptr<weld::Widget> mxAngleGrid;
|
||||
std::unique_ptr<weld::MetricSpinButton> mxMtrTrgrCenterX;
|
||||
@@ -53,12 +52,12 @@ private:
|
||||
DECL_LINK(FocusHdl, weld::Widget&, void);
|
||||
|
||||
public:
|
||||
AreaTransparencyGradientPopup(AreaPropertyPanelBase& rPanel, weld::Widget* pParent);
|
||||
AreaTransparencyGradientPopup(const css::uno::Reference<css::frame::XFrame>& rFrame,
|
||||
AreaPropertyPanelBase& rPanel, weld::Widget* pParent);
|
||||
~AreaTransparencyGradientPopup();
|
||||
|
||||
weld::Container* getTopLevel() const { return mxTopLevel.get(); }
|
||||
|
||||
void Rearrange(XFillFloatTransparenceItem const* pItem);
|
||||
virtual void GrabFocus() override;
|
||||
};
|
||||
|
||||
} // end of namespace svx::sidebar
|
||||
|
||||
@@ -65,6 +65,7 @@ AreaPropertyPanelBase::AreaPropertyPanelBase(
|
||||
weld::Widget* pParent,
|
||||
const css::uno::Reference<css::frame::XFrame>& rxFrame)
|
||||
: PanelLayout(pParent, "AreaPropertyPanel", "svx/ui/sidebararea.ui"),
|
||||
mxFrame(rxFrame),
|
||||
meLastXFS(static_cast<sal_uInt16>(-1)),
|
||||
mnLastPosHatch(0),
|
||||
mnLastPosBitmap(0),
|
||||
@@ -179,7 +180,7 @@ void AreaPropertyPanelBase::Initialize()
|
||||
mxMTRTransparent->connect_value_changed(LINK(this, AreaPropertyPanelBase, ModifyTransparentHdl_Impl));
|
||||
mxSldTransparent->connect_value_changed(LINK(this, AreaPropertyPanelBase, ModifyTransSliderHdl));
|
||||
|
||||
mxTrGrPopup = std::make_unique<AreaTransparencyGradientPopup>(*this, mxBTNGradient.get());
|
||||
mxTrGrPopup = std::make_unique<AreaTransparencyGradientPopup>(mxFrame, *this, mxBTNGradient.get());
|
||||
|
||||
mxBTNGradient->set_item_popover(SIDEBARGRADIENT, mxTrGrPopup->getTopLevel());
|
||||
mxBTNGradient->connect_clicked(LINK(this, AreaPropertyPanelBase, ToolbarHdl_Impl));
|
||||
|
||||
@@ -25,20 +25,20 @@
|
||||
|
||||
namespace svx::sidebar {
|
||||
|
||||
AreaTransparencyGradientPopup::AreaTransparencyGradientPopup(AreaPropertyPanelBase& rPanel, weld::Widget* pParent)
|
||||
: mrAreaPropertyPanel(rPanel)
|
||||
, mxBuilder(Application::CreateBuilder(pParent, "svx/ui/floatingareastyle.ui"))
|
||||
, mxTopLevel(mxBuilder->weld_container("FloatingAreaStyle"))
|
||||
, mxCenterGrid(mxBuilder->weld_widget("centergrid"))
|
||||
, mxAngleGrid(mxBuilder->weld_widget("anglegrid"))
|
||||
, mxMtrTrgrCenterX(mxBuilder->weld_metric_spin_button("centerx", FieldUnit::PERCENT))
|
||||
, mxMtrTrgrCenterY(mxBuilder->weld_metric_spin_button("centery", FieldUnit::PERCENT))
|
||||
, mxMtrTrgrAngle(mxBuilder->weld_metric_spin_button("angle", FieldUnit::DEGREE))
|
||||
, mxBtnLeft45(mxBuilder->weld_toolbar("lefttoolbox"))
|
||||
, mxBtnRight45(mxBuilder->weld_toolbar("righttoolbox"))
|
||||
, mxMtrTrgrStartValue(mxBuilder->weld_metric_spin_button("start", FieldUnit::PERCENT))
|
||||
, mxMtrTrgrEndValue(mxBuilder->weld_metric_spin_button("end", FieldUnit::PERCENT))
|
||||
, mxMtrTrgrBorder(mxBuilder->weld_metric_spin_button("border", FieldUnit::PERCENT))
|
||||
AreaTransparencyGradientPopup::AreaTransparencyGradientPopup(const css::uno::Reference<css::frame::XFrame>& rFrame,
|
||||
AreaPropertyPanelBase& rPanel, weld::Widget* pParent)
|
||||
: WeldToolbarPopup(rFrame, pParent, "svx/ui/floatingareastyle.ui", "FloatingAreaStyle")
|
||||
, mrAreaPropertyPanel(rPanel)
|
||||
, mxCenterGrid(m_xBuilder->weld_widget("centergrid"))
|
||||
, mxAngleGrid(m_xBuilder->weld_widget("anglegrid"))
|
||||
, mxMtrTrgrCenterX(m_xBuilder->weld_metric_spin_button("centerx", FieldUnit::PERCENT))
|
||||
, mxMtrTrgrCenterY(m_xBuilder->weld_metric_spin_button("centery", FieldUnit::PERCENT))
|
||||
, mxMtrTrgrAngle(m_xBuilder->weld_metric_spin_button("angle", FieldUnit::DEGREE))
|
||||
, mxBtnLeft45(m_xBuilder->weld_toolbar("lefttoolbox"))
|
||||
, mxBtnRight45(m_xBuilder->weld_toolbar("righttoolbox"))
|
||||
, mxMtrTrgrStartValue(m_xBuilder->weld_metric_spin_button("start", FieldUnit::PERCENT))
|
||||
, mxMtrTrgrEndValue(m_xBuilder->weld_metric_spin_button("end", FieldUnit::PERCENT))
|
||||
, mxMtrTrgrBorder(m_xBuilder->weld_metric_spin_button("border", FieldUnit::PERCENT))
|
||||
{
|
||||
Link<weld::MetricSpinButton&,void> aLink = LINK(this, AreaTransparencyGradientPopup, ModifiedTrgrHdl_Impl);
|
||||
mxMtrTrgrCenterX->connect_value_changed(aLink);
|
||||
@@ -49,7 +49,6 @@ AreaTransparencyGradientPopup::AreaTransparencyGradientPopup(AreaPropertyPanelBa
|
||||
mxMtrTrgrEndValue->connect_value_changed(aLink);
|
||||
mxBtnLeft45->connect_clicked(LINK(this, AreaTransparencyGradientPopup, Left_Click45_Impl));
|
||||
mxBtnRight45->connect_clicked(LINK(this, AreaTransparencyGradientPopup, Right_Click45_Impl));
|
||||
mxTopLevel->connect_focus_in(LINK(this, AreaTransparencyGradientPopup, FocusHdl));
|
||||
}
|
||||
|
||||
AreaTransparencyGradientPopup::~AreaTransparencyGradientPopup()
|
||||
@@ -171,7 +170,7 @@ IMPL_LINK_NOARG(AreaTransparencyGradientPopup, Right_Click45_Impl, const OString
|
||||
ExecuteValueModify(nStartCol, nEndCol);
|
||||
}
|
||||
|
||||
IMPL_LINK_NOARG(AreaTransparencyGradientPopup, FocusHdl, weld::Widget&, void)
|
||||
void AreaTransparencyGradientPopup::GrabFocus()
|
||||
{
|
||||
mxMtrTrgrCenterX->grab_focus();
|
||||
}
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
<property name="border_width">4</property>
|
||||
<child>
|
||||
<!-- n-columns=1 n-rows=1 -->
|
||||
<object class="GtkGrid">
|
||||
<object class="GtkGrid" id="container">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="hexpand">True</property>
|
||||
|
||||
@@ -70,7 +70,8 @@ bool isBuilderEnabledForPopup(std::u16string_view rUIFile)
|
||||
|| rUIFile == u"svx/ui/floatinglineproperty.ui" || rUIFile == u"svx/ui/floatinglinestyle.ui"
|
||||
|| rUIFile == u"svx/ui/floatinglineend.ui"
|
||||
|| rUIFile == u"svx/ui/fontworkalignmentcontrol.ui"
|
||||
|| rUIFile == u"svx/ui/fontworkcharacterspacingcontrol.ui")
|
||||
|| rUIFile == u"svx/ui/fontworkcharacterspacingcontrol.ui"
|
||||
|| rUIFile == u"svx/ui/floatingareastyle.ui")
|
||||
return true;
|
||||
|
||||
return false;
|
||||
|
||||
Reference in New Issue
Block a user