tdf#130096 Wrap Sidebar update use common .uno commands and layout
Change-Id: Ie8185169582616179fd96850283836f4e3d60ad1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87309
Tested-by: Jenkins
Reviewed-by: andreas_kainz <kainz.a@gmail.com>
diff --git a/framework/source/fwe/xml/toolboxdocumenthandler.cxx b/framework/source/fwe/xml/toolboxdocumenthandler.cxx
index 1ded389..a01e0fc 100644
--- a/framework/source/fwe/xml/toolboxdocumenthandler.cxx
+++ b/framework/source/fwe/xml/toolboxdocumenthandler.cxx
@@ -369,6 +369,10 @@
aCommandURL = ".uno:AlignRight";
else if (aCommandURL == ".uno:AlignRight")
aCommandURL = ".uno:AlignLeft";
else if (aCommandURL == ".uno:WrapLeft")
aCommandURL = ".uno:WrapRight";
else if (aCommandURL == ".uno:WrapRight")
aCommandURL = ".uno:WrapLeft";
}
auto aToolbarItemProp( comphelper::InitPropertySequence( {
diff --git a/solenv/sanitizers/ui/modules/swriter.suppr b/solenv/sanitizers/ui/modules/swriter.suppr
index 119f862..47348e2 100644
--- a/solenv/sanitizers/ui/modules/swriter.suppr
+++ b/solenv/sanitizers/ui/modules/swriter.suppr
@@ -197,8 +197,6 @@
sw/uiconfig/swriter/ui/selectaddressdialog.ui://GtkLabel[@id='label2'] orphan-label
sw/uiconfig/swriter/ui/selectaddressdialog.ui://GtkLabel[@id='connecting'] orphan-label
sw/uiconfig/swriter/ui/selecttabledialog.ui://GtkLabel[@id='select'] orphan-label
sw/uiconfig/swriter/ui/sidebarwrap.ui://GtkLabel[@id='label1'] orphan-label
sw/uiconfig/swriter/ui/sidebarwrap.ui://GtkLabel[@id='customlabel'] orphan-label
sw/uiconfig/swriter/ui/spellmenu.ui://GtkMenuItem[@id='spelldialog'] button-no-label
sw/uiconfig/swriter/ui/spellmenu.ui://GtkMenuItem[@id='correctdialog'] button-no-label
sw/uiconfig/swriter/ui/statisticsinfopage.ui://GtkLabel[@id='nopages'] orphan-label
diff --git a/sw/inc/strings.hrc b/sw/inc/strings.hrc
index 561014a..88bf8e9 100644
--- a/sw/inc/strings.hrc
+++ b/sw/inc/strings.hrc
@@ -1388,6 +1388,8 @@
#define STR_AUTOMARK_YES NC_("createautomarkdialog|yes", "Yes")
#define STR_AUTOMARK_NO NC_("createautomarkdialog|no", "No")
#define STR_WRAP_PANEL_CUSTOM_STR NC_("sidebarwrap|customlabel", "Custom")
#endif
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/uibase/sidebar/WrapPropertyPanel.cxx b/sw/source/uibase/sidebar/WrapPropertyPanel.cxx
index 080946f..a2d0336 100644
--- a/sw/source/uibase/sidebar/WrapPropertyPanel.cxx
+++ b/sw/source/uibase/sidebar/WrapPropertyPanel.cxx
@@ -30,17 +30,11 @@
#include <editeng/lrspitem.hxx>
#include <editeng/ulspitem.hxx>
#include <hintids.hxx>
#include <strings.hrc>
#include <uitool.hxx>
#include <com/sun/star/lang/IllegalArgumentException.hpp>
#include <comphelper/lok.hxx>
const char UNO_WRAPOFF[] = ".uno:WrapOff";
const char UNO_WRAPLEFT[] = ".uno:WrapLeft";
const char UNO_WRAPRIGHT[] = ".uno:WrapRight";
const char UNO_WRAPON[] = ".uno:WrapOn";
const char UNO_WRAPTHROUGH[] = ".uno:WrapThrough";
const char UNO_WRAPIDEAL[] = ".uno:WrapIdeal";
namespace sw::sidebar {
VclPtr<vcl::Window> WrapPropertyPanel::Create (
@@ -74,27 +68,15 @@
, nLeft(0)
, nRight(0)
// resources
, aCustomEntry()
, aCustomEntry(SwResId(STR_WRAP_PANEL_CUSTOM_STR))
// controller items
, maSwNoWrapControl(FN_FRAME_NOWRAP, *pBindings, *this)
, maSwWrapLeftControl(FN_FRAME_WRAP, *pBindings, *this)
, maSwWrapRightControl(FN_FRAME_WRAP_RIGHT, *pBindings, *this)
, maSwWrapParallelControl(FN_FRAME_WRAP_LEFT, *pBindings, *this)
, maSwWrapThroughControl(FN_FRAME_WRAPTHRU, *pBindings, *this)
, maSwWrapIdealControl(FN_FRAME_WRAP_IDEAL, *pBindings, *this)
, maSwEnableContourControl(FN_FRAME_WRAP_CONTOUR, *pBindings, *this)
, maSwLRSpacingControl(SID_ATTR_LRSPACE, *pBindings, *this)
, maSwULSpacingControl(SID_ATTR_ULSPACE, *pBindings, *this)
, mxRBNoWrap(m_xBuilder->weld_radio_button("buttonnone"))
, mxRBWrapLeft(m_xBuilder->weld_radio_button("buttonbefore"))
, mxRBWrapRight(m_xBuilder->weld_radio_button("buttonafter"))
, mxRBWrapParallel(m_xBuilder->weld_radio_button("buttonparallel"))
, mxRBWrapThrough(m_xBuilder->weld_radio_button("buttonthrough"))
, mxRBIdealWrap(m_xBuilder->weld_radio_button("buttonoptimal"))
, mxEditContour(m_xBuilder->weld_button("editcontour"))
, mxEnableContour(m_xBuilder->weld_check_button("enablecontour"))
, mxWrapOptions1(m_xBuilder->weld_toolbar("wrapoptions1"))
, mxWrapOptions1Dispatch(new ToolbarUnoDispatcher(*mxWrapOptions1, rxFrame))
, mxWrapOptions2(m_xBuilder->weld_toolbar("wrapoptions2"))
, mxWrapOptions2Dispatch(new ToolbarUnoDispatcher(*mxWrapOptions2, rxFrame))
, mxSpacingLB(m_xBuilder->weld_combo_box("spacingLB"))
, mxCustomEntry(m_xBuilder->weld_label("customlabel"))
{
FieldUnit eMetric = ::GetDfltMetric(false);
SpacingListBox::Fill(IsInch(eMetric) ? SpacingType::SPACING_INCH : SpacingType::SPACING_CM, *mxSpacingLB);
@@ -109,24 +91,13 @@
void WrapPropertyPanel::dispose()
{
mxRBNoWrap.reset();
mxRBWrapLeft.reset();
mxRBWrapRight.reset();
mxRBWrapParallel.reset();
mxRBWrapThrough.reset();
mxRBIdealWrap.reset();
mxEnableContour.reset();
mxEditContour.reset();
mxSpacingLB.reset();
mxCustomEntry.reset();
maSwNoWrapControl.dispose();
maSwWrapLeftControl.dispose();
maSwWrapRightControl.dispose();
maSwWrapParallelControl.dispose();
maSwWrapThroughControl.dispose();
maSwWrapIdealControl.dispose();
maSwEnableContourControl.dispose();
mxWrapOptions2Dispatch.reset();
mxWrapOptions2.reset();
mxWrapOptions1Dispatch.reset();
mxWrapOptions1.reset();
maSwLRSpacingControl.dispose();
maSwULSpacingControl.dispose();
@@ -135,54 +106,10 @@
void WrapPropertyPanel::Initialize()
{
Link<weld::ToggleButton&,void> aLink = LINK(this, WrapPropertyPanel, WrapTypeHdl);
mxRBNoWrap->connect_toggled(aLink);
mxRBWrapLeft->connect_toggled(aLink);
mxRBWrapRight->connect_toggled(aLink);
mxRBWrapParallel->connect_toggled(aLink);
mxRBWrapThrough->connect_toggled(aLink);
mxRBIdealWrap->connect_toggled(aLink);
Link<weld::Button&,void> EditContourLink = LINK(this, WrapPropertyPanel, EditContourHdl);
mxEditContour->connect_clicked(EditContourLink);
if (comphelper::LibreOfficeKit::isActive())
{
// Disable Edit Contour button for LOK purposes.
mxEditContour->hide();
}
Link<weld::ToggleButton&, void> EnableContourLink = LINK(this,WrapPropertyPanel, EnableContourHdl);
mxEnableContour->connect_toggled(EnableContourLink);
mxSpacingLB->connect_changed(LINK(this, WrapPropertyPanel, SpacingLBHdl));
mxRBNoWrap->set_image(vcl::CommandInfoProvider::GetXGraphicForCommand(UNO_WRAPOFF, mxFrame));
if ( AllSettings::GetLayoutRTL() )
{
mxRBWrapLeft->set_image(vcl::CommandInfoProvider::GetXGraphicForCommand(UNO_WRAPRIGHT, mxFrame));
mxRBWrapRight->set_image(vcl::CommandInfoProvider::GetXGraphicForCommand(UNO_WRAPLEFT, mxFrame));
}
else
{
mxRBWrapLeft->set_image(vcl::CommandInfoProvider::GetXGraphicForCommand(UNO_WRAPLEFT, mxFrame));
mxRBWrapRight->set_image(vcl::CommandInfoProvider::GetXGraphicForCommand(UNO_WRAPRIGHT, mxFrame));
}
mxRBWrapParallel->set_image(vcl::CommandInfoProvider::GetXGraphicForCommand(UNO_WRAPON, mxFrame));
mxRBWrapThrough->set_image(vcl::CommandInfoProvider::GetXGraphicForCommand(UNO_WRAPTHROUGH, mxFrame));
mxRBIdealWrap->set_image(vcl::CommandInfoProvider::GetXGraphicForCommand(UNO_WRAPIDEAL, mxFrame));
aCustomEntry = mxCustomEntry->get_label();
mpBindings->Update( FN_FRAME_NOWRAP );
mpBindings->Update( FN_FRAME_WRAP );
mpBindings->Update( FN_FRAME_WRAP_RIGHT );
mpBindings->Update( FN_FRAME_WRAP_LEFT );
mpBindings->Update( FN_FRAME_WRAPTHRU );
mpBindings->Update( FN_FRAME_WRAP_IDEAL );
mpBindings->Update( FN_FRAME_WRAP_CONTOUR );
mpBindings->Update( SID_ATTR_LRSPACE );
mpBindings->Update( SID_ATTR_ULSPACE );
}
void WrapPropertyPanel::UpdateSpacingLB()
@@ -208,21 +135,6 @@
mxSpacingLB->set_active_text(aCustomEntry);
}
IMPL_LINK_NOARG(WrapPropertyPanel, EditContourHdl, weld::Button&, void)
{
SfxBoolItem aItem(SID_CONTOUR_DLG, true);
mpBindings->GetDispatcher()->ExecuteList(SID_CONTOUR_DLG,
SfxCallMode::RECORD, { &aItem });
}
IMPL_LINK_NOARG(WrapPropertyPanel, EnableContourHdl, weld::ToggleButton&, void)
{
bool IsContour = mxEnableContour->get_active();
SfxBoolItem aItem(FN_FRAME_WRAP_CONTOUR, IsContour);
mpBindings->GetDispatcher()->ExecuteList(FN_FRAME_WRAP_CONTOUR,
SfxCallMode::RECORD, { &aItem });
}
IMPL_LINK(WrapPropertyPanel, SpacingLBHdl, weld::ComboBox&, rBox, void)
{
sal_uInt16 nVal = rBox.get_active_id().toUInt32();
@@ -237,97 +149,11 @@
SfxCallMode::RECORD, { &aULItem });
}
IMPL_LINK_NOARG(WrapPropertyPanel, WrapTypeHdl, weld::ToggleButton&, void)
{
sal_uInt16 nSlot = 0;
if ( mxRBWrapLeft->get_active() )
{
nSlot = FN_FRAME_WRAP_LEFT;
}
else if( mxRBWrapRight->get_active() )
{
nSlot = FN_FRAME_WRAP_RIGHT;
}
else if ( mxRBWrapParallel->get_active() )
{
nSlot = FN_FRAME_WRAP;
}
else if( mxRBWrapThrough->get_active() )
{
nSlot = FN_FRAME_WRAPTHRU;
}
else if( mxRBIdealWrap->get_active() )
{
nSlot = FN_FRAME_WRAP_IDEAL;
}
else
{
nSlot = FN_FRAME_NOWRAP;
}
SfxBoolItem bStateItem( nSlot, true );
mpBindings->GetDispatcher()->ExecuteList(nSlot,
SfxCallMode::RECORD, { &bStateItem });
}
void WrapPropertyPanel::UpdateEditContour()
{
if (mxRBNoWrap->get_active() || mxRBWrapThrough->get_active())
{
mxEnableContour->set_active(false);
mxEnableContour->set_sensitive(false);
}
else
{
mxEnableContour->set_sensitive(true);
}
}
void WrapPropertyPanel::NotifyItemUpdate(
const sal_uInt16 nSId,
const SfxItemState eState,
const SfxPoolItem* pState)
{
if ( eState == SfxItemState::DEFAULT &&
dynamic_cast< const SfxBoolItem *>( pState ) != nullptr )
{
//Set Radio Button enable
mxRBNoWrap->set_sensitive(true);
mxRBWrapLeft->set_sensitive(true);
mxRBWrapRight->set_sensitive(true);
mxRBWrapParallel->set_sensitive(true);
mxRBWrapThrough->set_sensitive(true);
mxRBIdealWrap->set_sensitive(true);
mxEnableContour->set_sensitive(true);
const SfxBoolItem* pBoolItem = static_cast< const SfxBoolItem* >( pState );
switch( nSId )
{
case FN_FRAME_WRAP_RIGHT:
mxRBWrapRight->set_active( pBoolItem->GetValue() );
break;
case FN_FRAME_WRAP_LEFT:
mxRBWrapLeft->set_active( pBoolItem->GetValue() );
break;
case FN_FRAME_WRAPTHRU:
mxRBWrapThrough->set_active( pBoolItem->GetValue() );
break;
case FN_FRAME_WRAP_IDEAL:
mxRBIdealWrap->set_active( pBoolItem->GetValue() );
break;
case FN_FRAME_WRAP:
mxRBWrapParallel->set_active( pBoolItem->GetValue() );
break;
case FN_FRAME_WRAP_CONTOUR:
mxEnableContour->set_active( pBoolItem->GetValue() );
break;
case FN_FRAME_NOWRAP:
mxRBNoWrap->set_active( pBoolItem->GetValue() );
break;
}
UpdateEditContour();
}
switch(nSId)
{
case SID_ATTR_LRSPACE:
diff --git a/sw/source/uibase/sidebar/WrapPropertyPanel.hxx b/sw/source/uibase/sidebar/WrapPropertyPanel.hxx
index 9d1eeac..b62922e 100644
--- a/sw/source/uibase/sidebar/WrapPropertyPanel.hxx
+++ b/sw/source/uibase/sidebar/WrapPropertyPanel.hxx
@@ -21,6 +21,7 @@
#include <svx/sidebar/PanelLayout.hxx>
#include <sfx2/sidebar/ControllerItem.hxx>
#include <sfx2/weldutils.hxx>
#include <com/sun/star/frame/XFrame.hpp>
#include <vcl/weld.hxx>
@@ -63,34 +64,20 @@
OUString aCustomEntry;
// Controller Items
::sfx2::sidebar::ControllerItem maSwNoWrapControl;
::sfx2::sidebar::ControllerItem maSwWrapLeftControl;
::sfx2::sidebar::ControllerItem maSwWrapRightControl;
::sfx2::sidebar::ControllerItem maSwWrapParallelControl;
::sfx2::sidebar::ControllerItem maSwWrapThroughControl;
::sfx2::sidebar::ControllerItem maSwWrapIdealControl;
::sfx2::sidebar::ControllerItem maSwEnableContourControl;
::sfx2::sidebar::ControllerItem maSwLRSpacingControl;
::sfx2::sidebar::ControllerItem maSwULSpacingControl;
std::unique_ptr<weld::RadioButton> mxRBNoWrap;
std::unique_ptr<weld::RadioButton> mxRBWrapLeft;
std::unique_ptr<weld::RadioButton> mxRBWrapRight;
std::unique_ptr<weld::RadioButton> mxRBWrapParallel;
std::unique_ptr<weld::RadioButton> mxRBWrapThrough;
std::unique_ptr<weld::RadioButton> mxRBIdealWrap;
std::unique_ptr<weld::Button> mxEditContour;
std::unique_ptr<weld::CheckButton> mxEnableContour;
std::unique_ptr<weld::Toolbar> mxWrapOptions1;
std::unique_ptr<ToolbarUnoDispatcher> mxWrapOptions1Dispatch;
std::unique_ptr<weld::Toolbar> mxWrapOptions2;
std::unique_ptr<ToolbarUnoDispatcher> mxWrapOptions2Dispatch;
std::unique_ptr<weld::ComboBox> mxSpacingLB;
std::unique_ptr<weld::Label> mxCustomEntry;
void Initialize();
void UpdateEditContour();
void UpdateSpacingLB();
DECL_LINK(WrapTypeHdl, weld::ToggleButton&, void);
DECL_LINK(EnableContourHdl, weld::ToggleButton&, void);
DECL_LINK(EditContourHdl, weld::Button&, void);
DECL_LINK(SpacingLBHdl, weld::ComboBox&, void);
};
diff --git a/sw/uiconfig/swriter/ui/sidebarwrap.ui b/sw/uiconfig/swriter/ui/sidebarwrap.ui
index c193a7c..6d8e730 100644
--- a/sw/uiconfig/swriter/ui/sidebarwrap.ui
+++ b/sw/uiconfig/swriter/ui/sidebarwrap.ui
@@ -5,253 +5,141 @@
<object class="GtkGrid" id="WrapPropertyPanel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="row_homogeneous">True</property>
<property name="column_homogeneous">True</property>
<child>
<object class="GtkBox" id="box1">
<object class="GtkGrid">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="border_width">6</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<property name="row_spacing">3</property>
<property name="column_spacing">6</property>
<property name="column_homogeneous">True</property>
<child>
<object class="GtkBox" id="box2">
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="spacing">6</property>
<property name="homogeneous">True</property>
<child>
<object class="GtkRadioButton" id="buttonnone">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="tooltip_text" translatable="yes" context="sidebarwrap|buttonnone|tooltip_text">None</property>
<property name="use_underline">True</property>
<property name="xalign">0</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="buttonnone-atkobject">
<property name="AtkObject::accessible-name" translatable="yes" context="sidebarwrap|buttonnone-atkobject">None</property>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="buttonparallel">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="tooltip_text" translatable="yes" context="sidebarwrap|buttonparallel|tooltip_text">Parallel</property>
<property name="use_underline">True</property>
<property name="xalign">0</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
<property name="group">buttonnone</property>
<child internal-child="accessible">
<object class="AtkObject" id="buttonparallel-atkobject">
<property name="AtkObject::accessible-name" translatable="yes" context="sidebarwrap|buttonparallel-atkobject">Parallel</property>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="buttonoptimal">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="tooltip_text" translatable="yes" context="sidebarwrap|buttonoptimal|tooltip_text">Optimal</property>
<property name="use_underline">True</property>
<property name="xalign">0</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
<property name="group">buttonnone</property>
<child internal-child="accessible">
<object class="AtkObject" id="buttonoptimal-atkobject">
<property name="AtkObject::accessible-name" translatable="yes" context="sidebarwrap|buttonoptimal-atkobject">Optimal</property>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="buttonbefore">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="tooltip_text" translatable="yes" context="sidebarwrap|buttonbefore|tooltip_text">Before</property>
<property name="use_underline">True</property>
<property name="xalign">0</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
<property name="group">buttonnone</property>
<child internal-child="accessible">
<object class="AtkObject" id="buttonbefore-atkobject">
<property name="AtkObject::accessible-name" translatable="yes" context="sidebarwrap|buttonbefore-atkobject">Before</property>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">3</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="buttonafter">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="tooltip_text" translatable="yes" context="sidebarwrap|buttonafter|tooltip_text">After</property>
<property name="use_underline">True</property>
<property name="xalign">0</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
<property name="group">buttonnone</property>
<child internal-child="accessible">
<object class="AtkObject" id="buttonafter-atkobject">
<property name="AtkObject::accessible-name" translatable="yes" context="sidebarwrap|buttonafter-atkobject">After</property>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">4</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="buttonthrough">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="tooltip_text" translatable="yes" context="sidebarwrap|buttonthrough|tooltip_text">Through</property>
<property name="use_underline">True</property>
<property name="xalign">0</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
<property name="group">buttonnone</property>
<child internal-child="accessible">
<object class="AtkObject" id="buttonthrough-atkobject">
<property name="AtkObject::accessible-name" translatable="yes" context="sidebarwrap|buttonthrough-atkobject">Through</property>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">5</property>
</packing>
</child>
<property name="label" translatable="yes" context="sidebarwrap|label1">Spacing:</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">spacingLB</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
<property name="left_attach">0</property>
<property name="top_attach">1</property>
</packing>
</child>
<child>
<object class="GtkBox" id="box3">
<object class="GtkComboBoxText" id="spacingLB">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="spacing">6</property>
<child>
<object class="GtkCheckButton" id="enablecontour">
<property name="label" translatable="yes" context="sidebarwrap|enablecontour">Enable Contour</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="tooltip_text" translatable="yes" context="sidebarwrap|enablecontour|tooltip_text">Click to automatically trim unnecessary parts of the image</property>
<property name="use_underline">True</property>
<property name="xalign">0</property>
<property name="draw_indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="editcontour">
<property name="label" translatable="yes" context="sidebarwrap|editcontour">Edit Contour</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="tooltip_text" translatable="yes" context="sidebarwrap|editcontour|tooltip_text">Edit the trimmed area of the image</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
<property name="tooltip_text" translatable="yes" context="sidebarwrap|spacingLB|tooltip_text">Set the amount of space between the image and surrounding text</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
<property name="left_attach">1</property>
<property name="top_attach">1</property>
</packing>
</child>
<child>
<object class="GtkBox" id="box4">
<object class="GtkToolbar" id="wrapoptions1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="spacing">6</property>
<property name="toolbar_style">icons</property>
<property name="show_arrow">False</property>
<property name="icon_size">2</property>
<child>
<object class="GtkLabel" id="label1">
<object class="GtkRadioToolButton" id=".uno:WrapOff">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes" context="sidebarwrap|label1">Spacing:</property>
<property name="tooltip_text" translatable="yes" context="sidebarwrap|wrapoff|tooltip_text">Wrap Off</property>
<property name="use_underline">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
<property name="homogeneous">False</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="spacingLB">
<object class="GtkRadioToolButton" id=".uno:WrapOn">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="tooltip_text" translatable="yes" context="sidebarwrap|spacingLB|tooltip_text">Set the amount of space between the image and surrounding text</property>
<property name="tooltip_text" translatable="yes" context="sidebarwrap|wrapon|tooltip_text">Wrap On</property>
<property name="use_underline">True</property>
<property name="group">.uno:WrapOff</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">1</property>
<property name="homogeneous">False</property>
</packing>
</child>
<child>
<object class="GtkRadioToolButton" id=".uno:WrapIdeal">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="tooltip_text" translatable="yes" context="sidebarwrap|wrapideal|tooltip_text">Wrap Ideal</property>
<property name="use_underline">True</property>
<property name="group">.uno:WrapOff</property>
</object>
<packing>
<property name="expand">False</property>
<property name="homogeneous">False</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="customlabel">
<object class="GtkToolbar" id="wrapoptions2">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes" context="sidebarwrap|customlabel">Custom</property>
<property name="toolbar_style">icons</property>
<property name="show_arrow">False</property>
<property name="icon_size">2</property>
<child>
<object class="GtkRadioToolButton" id=".uno:WrapLeft">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="tooltip_text" translatable="yes" context="sidebarwrap|wrapleft|tooltip_text">Wrap Left</property>
<property name="use_underline">True</property>
<property name="group">.uno:WrapOff</property>
</object>
<packing>
<property name="expand">False</property>
<property name="homogeneous">False</property>
</packing>
</child>
<child>
<object class="GtkRadioToolButton" id=".uno:WrapRight">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="tooltip_text" translatable="yes" context="sidebarwrap|wrapright|tooltip_text">Wrap Right</property>
<property name="use_underline">True</property>
<property name="group">.uno:WrapOff</property>
</object>
<packing>
<property name="expand">False</property>
<property name="homogeneous">False</property>
</packing>
</child>
<child>
<object class="GtkRadioToolButton" id=".uno:WrapThrough">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="tooltip_text" translatable="yes" context="sidebarwrap|wrapthrough|tooltip_text">Wrap Through</property>
<property name="use_underline">True</property>
<property name="group">.uno:WrapOff</property>
</object>
<packing>
<property name="expand">False</property>
<property name="homogeneous">False</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">3</property>
<property name="left_attach">1</property>
<property name="top_attach">0</property>
</packing>
</child>
</object>