tdf#162491 tdf#125032 add hyphenation settings to sidebar
Add .uno:NoBreak to the Character sidebar panel to disable automatic hyphenation for selected words. The icon is enabled only on hyphenated words and words with disabled hyphenation. Add .uno:Hyphenate icon to the Character sidebar panel, with tooltip "Insert Soft Hyphen...", which opens the dialog for (semi-)automatic insertion of soft hyphens. Add paragraph-level hyphenation settings to the Paragraph sidebar panel. Only the toggle button icon "Hyphenation" is visible to enable hyphenation, if the paragraph is not hyphenated. If it's enabled, show all paragraph-level settings. These new sidebar controls allow adjusting paragraph layout and hyphenation quickly, like DTP software do. Note: to add icon to .uno:NoBreak, modify "Properties" of officecfg/registry/data/org/openoffice/Office/UI/WriterCommands.xcu. Note: it's possible, that high resolution icon sizes will need extra dispatcher calls (the draft is attached to the issue in the bug tracker). Change-Id: I292527589ed3a38e4400cfd97ea54cbc7ff56a44 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171883 Tested-by: Jenkins Reviewed-by: László Németh <nemeth@numbertext.org>
This commit is contained in:
parent
49cb475862
commit
98f7f54046
18 changed files with 742 additions and 5 deletions
|
@ -1736,6 +1736,10 @@ cmd/32/hyphenation.png cmd/32/hyphenate.png
|
|||
cmd/lc_hyphenation.png cmd/lc_hyphenate.png
|
||||
cmd/sc_hyphenation.png cmd/sc_hyphenate.png
|
||||
|
||||
cmd/32/nobreak.png cmd/32/cancel.png
|
||||
cmd/lc_nobreak.png cmd/lc_cancel.png
|
||||
cmd/sc_nobreak.png cmd/sc_cancel.png
|
||||
|
||||
# Currency
|
||||
cmd/32/numberformatcurrency.png cmd/32/currencyfield.png
|
||||
cmd/32/numberformatcurrencysimple.png cmd/32/currencyfield.png
|
||||
|
|
|
@ -1736,6 +1736,10 @@ cmd/32/hyphenation.png cmd/32/hyphenate.png
|
|||
cmd/lc_hyphenation.png cmd/lc_hyphenate.png
|
||||
cmd/sc_hyphenation.png cmd/sc_hyphenate.png
|
||||
|
||||
cmd/32/nobreak.png cmd/32/cancel.png
|
||||
cmd/lc_nobreak.png cmd/lc_cancel.png
|
||||
cmd/sc_nobreak.png cmd/sc_cancel.png
|
||||
|
||||
# Currency
|
||||
cmd/32/numberformatcurrency.png cmd/32/currencyfield.png
|
||||
cmd/32/numberformatcurrencysimple.png cmd/32/currencyfield.png
|
||||
|
|
|
@ -1537,6 +1537,10 @@ cmd/32/hyphenation.png cmd/32/hyphenate.png
|
|||
cmd/lc_hyphenation.png cmd/lc_hyphenate.png
|
||||
cmd/sc_hyphenation.png cmd/sc_hyphenate.png
|
||||
|
||||
cmd/32/nobreak.png cmd/32/cancel.png
|
||||
cmd/lc_nobreak.png cmd/lc_cancel.png
|
||||
cmd/sc_nobreak.png cmd/sc_cancel.png
|
||||
|
||||
# Currency
|
||||
cmd/32/numberformatcurrencysimple.png cmd/32/numberformatcurrency.png
|
||||
cmd/lc_numberformatcurrencysimple.png cmd/lc_numberformatcurrency.png
|
||||
|
|
|
@ -1536,6 +1536,10 @@ cmd/32/hyphenation.png cmd/32/hyphenate.png
|
|||
cmd/lc_hyphenation.png cmd/lc_hyphenate.png
|
||||
cmd/sc_hyphenation.png cmd/sc_hyphenate.png
|
||||
|
||||
cmd/32/nobreak.png cmd/32/cancel.png
|
||||
cmd/lc_nobreak.png cmd/lc_cancel.png
|
||||
cmd/sc_nobreak.png cmd/sc_cancel.png
|
||||
|
||||
# Currency
|
||||
cmd/32/numberformatcurrencysimple.png cmd/32/numberformatcurrency.png
|
||||
cmd/lc_numberformatcurrencysimple.png cmd/lc_numberformatcurrency.png
|
||||
|
|
|
@ -1552,6 +1552,10 @@ cmd/32/hyphenation.png cmd/32/hyphenate.png
|
|||
cmd/lc_hyphenation.png cmd/lc_hyphenate.png
|
||||
cmd/sc_hyphenation.png cmd/sc_hyphenate.png
|
||||
|
||||
cmd/32/nobreak.png cmd/32/cancel.png
|
||||
cmd/lc_nobreak.png cmd/lc_cancel.png
|
||||
cmd/sc_nobreak.png cmd/sc_cancel.png
|
||||
|
||||
# Currency
|
||||
cmd/32/insertcurrencyfield.png cmd/32/currencyfield.png
|
||||
cmd/32/numberformatcurrency.png cmd/32/currencyfield.png
|
||||
|
|
|
@ -1632,6 +1632,10 @@ cmd/lc_hyphenation.png cmd/lc_hyphenate.png
|
|||
|
||||
cmd/sc_hyphenation.png cmd/sc_hyphenate.png
|
||||
|
||||
cmd/32/nobreak.png cmd/32/cancel.png
|
||||
cmd/lc_nobreak.png cmd/lc_cancel.png
|
||||
cmd/sc_nobreak.png cmd/sc_cancel.png
|
||||
|
||||
# Currency
|
||||
cmd/32/numberformatcurrency.png cmd/32/currencyfield.png
|
||||
cmd/32/numberformatcurrencysimple.png cmd/32/currencyfield.png
|
||||
|
|
|
@ -1631,6 +1631,10 @@ cmd/lc_hyphenation.png cmd/lc_hyphenate.png
|
|||
|
||||
cmd/sc_hyphenation.png cmd/sc_hyphenate.png
|
||||
|
||||
cmd/32/nobreak.png cmd/32/cancel.png
|
||||
cmd/lc_nobreak.png cmd/lc_cancel.png
|
||||
cmd/sc_nobreak.png cmd/sc_cancel.png
|
||||
|
||||
# Currency
|
||||
cmd/32/numberformatcurrency.png cmd/32/currencyfield.png
|
||||
cmd/32/numberformatcurrencysimple.png cmd/32/currencyfield.png
|
||||
|
|
|
@ -1581,6 +1581,10 @@ cmd/32/hyphenation.png cmd/32/hyphenate.png
|
|||
cmd/lc_hyphenation.png cmd/lc_hyphenate.png
|
||||
cmd/sc_hyphenation.png cmd/sc_hyphenate.png
|
||||
|
||||
cmd/32/nobreak.png cmd/32/cancel.png
|
||||
cmd/lc_nobreak.png cmd/lc_cancel.png
|
||||
cmd/sc_nobreak.png cmd/sc_cancel.png
|
||||
|
||||
# Currency
|
||||
cmd/32/numberformatcurrency.png cmd/32/currencyfield.png
|
||||
cmd/32/numberformatcurrencysimple.png cmd/32/currencyfield.png
|
||||
|
|
|
@ -1580,6 +1580,10 @@ cmd/32/hyphenation.png cmd/32/hyphenate.png
|
|||
cmd/lc_hyphenation.png cmd/lc_hyphenate.png
|
||||
cmd/sc_hyphenation.png cmd/sc_hyphenate.png
|
||||
|
||||
cmd/32/nobreak.png cmd/32/cancel.png
|
||||
cmd/lc_nobreak.png cmd/lc_cancel.png
|
||||
cmd/sc_nobreak.png cmd/sc_cancel.png
|
||||
|
||||
# Currency
|
||||
cmd/32/numberformatcurrency.png cmd/32/currencyfield.png
|
||||
cmd/32/numberformatcurrencysimple.png cmd/32/currencyfield.png
|
||||
|
|
|
@ -3046,6 +3046,9 @@
|
|||
<prop oor:name="Label" oor:type="xs:string">
|
||||
<value xml:lang="en-US">~Hyphenation...</value>
|
||||
</prop>
|
||||
<prop oor:name="TooltipLabel" oor:type="xs:string">
|
||||
<value xml:lang="en-US">Insert Soft Hyphen...</value>
|
||||
</prop>
|
||||
<prop oor:name="Properties" oor:type="xs:int">
|
||||
<value>9</value>
|
||||
</prop>
|
||||
|
@ -3055,7 +3058,7 @@
|
|||
<value xml:lang="en-US">No Break</value>
|
||||
</prop>
|
||||
<prop oor:name="Properties" oor:type="xs:int">
|
||||
<value>8</value>
|
||||
<value>9</value>
|
||||
</prop>
|
||||
</node>
|
||||
<node oor:name=".uno:VScroll" oor:op="replace">
|
||||
|
|
|
@ -78,6 +78,8 @@ void ParaPropertyPanel::HandleContextChange (
|
|||
mxTBxVertAlign->show();
|
||||
mxTBxBackColor->hide();
|
||||
mxTBxNumBullet->hide();
|
||||
set_hyphenation_base_visible(false);
|
||||
set_hyphenation_other_visible(false);
|
||||
ReSize();
|
||||
break;
|
||||
|
||||
|
@ -89,6 +91,8 @@ void ParaPropertyPanel::HandleContextChange (
|
|||
mxTBxVertAlign->show();
|
||||
mxTBxBackColor->hide();
|
||||
mxTBxNumBullet->hide();
|
||||
set_hyphenation_base_visible(false);
|
||||
set_hyphenation_other_visible(false);
|
||||
ReSize();
|
||||
break;
|
||||
|
||||
|
@ -97,6 +101,8 @@ void ParaPropertyPanel::HandleContextChange (
|
|||
mxTBxVertAlign->hide();
|
||||
mxTBxBackColor->show();
|
||||
mxTBxNumBullet->show();
|
||||
set_hyphenation_base_visible(true);
|
||||
set_hyphenation_other_visible(mxTBxHyphenation->get_item_active("Hyphenate"));
|
||||
ReSize();
|
||||
break;
|
||||
|
||||
|
@ -104,6 +110,14 @@ void ParaPropertyPanel::HandleContextChange (
|
|||
mxTBxVertAlign->show();
|
||||
mxTBxBackColor->show();
|
||||
mxTBxNumBullet->show();
|
||||
set_hyphenation_base_visible(true);
|
||||
// close the optional controls (when the controls were hidden later,
|
||||
// remained a big empty space before the Table panel)
|
||||
// TODO: if the hyphenation is enabled in the table, and the hyphenation
|
||||
// has exactly the same settings, as outside of the table, the controls
|
||||
// remain hidden. Workaround: disable and enable hyphenation again.
|
||||
// Enable it automatically by mouse hovering hyphenation sidebar toolbar?
|
||||
set_hyphenation_other_visible(false);
|
||||
ReSize();
|
||||
break;
|
||||
|
||||
|
@ -111,6 +125,7 @@ void ParaPropertyPanel::HandleContextChange (
|
|||
mxTBxVertAlign->hide();
|
||||
mxTBxBackColor->hide();
|
||||
mxTBxNumBullet->hide();
|
||||
set_hyphenation_base_visible(true);
|
||||
ReSize();
|
||||
break;
|
||||
|
||||
|
@ -120,6 +135,8 @@ void ParaPropertyPanel::HandleContextChange (
|
|||
case CombinedEnumContext(Application::Calc, Context::Sparkline):
|
||||
case CombinedEnumContext(Application::DrawImpress, Context::Text):
|
||||
case CombinedEnumContext(Application::DrawImpress, Context::OutlineText):
|
||||
set_hyphenation_base_visible(false);
|
||||
set_hyphenation_other_visible(false);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -152,6 +169,65 @@ void ParaPropertyPanel::InitToolBoxSpacing()
|
|||
m_eULSpaceUnit = maULSpaceControl.GetCoreMetric();
|
||||
}
|
||||
|
||||
void ParaPropertyPanel::set_hyphenation_base_visible( bool bVisible )
|
||||
{
|
||||
// hide all hyphenation control for non-Writer applications
|
||||
// TODO: add automatic hyphenation for these, too
|
||||
mxHyphenationLabel->set_visible(bVisible);
|
||||
mxTBxHyphenation->set_item_visible("Hyphenate", bVisible);
|
||||
}
|
||||
|
||||
void ParaPropertyPanel::set_hyphenation_other_visible( bool bVisible )
|
||||
{
|
||||
mxTBxHyphenation->set_item_visible("HyphenateCaps", bVisible);
|
||||
mxTBxHyphenation->set_item_visible("HyphenateLastWord", bVisible);
|
||||
mxTBxHyphenation->set_item_visible("HyphenateLastFullLine", bVisible);
|
||||
mxTBxHyphenation->set_item_visible("HyphenateColumn", bVisible);
|
||||
mxTBxHyphenation->set_item_visible("HyphenatePage", bVisible);
|
||||
mxTBxHyphenation->set_item_visible("HyphenateSpread", bVisible);
|
||||
mxAtLineEndLabel->set_visible(bVisible);
|
||||
mxAtLineBeginLabel->set_visible(bVisible);
|
||||
mxConsecutiveLabel->set_visible(bVisible);
|
||||
mxCompoundLabel->set_visible(bVisible);
|
||||
mxWordLengthLabel->set_visible(bVisible);
|
||||
mxZoneLabel->set_visible(bVisible);
|
||||
mxAtLineEnd->get_widget().set_visible(bVisible);
|
||||
mxAtLineBegin->get_widget().set_visible(bVisible);
|
||||
mxConsecutive->get_widget().set_visible(bVisible);
|
||||
mxCompound->get_widget().set_visible(bVisible);
|
||||
mxWordLength->get_widget().set_visible(bVisible);
|
||||
mxZone->get_widget().set_visible(bVisible);
|
||||
}
|
||||
|
||||
void ParaPropertyPanel::InitToolBoxHyphenation()
|
||||
{
|
||||
// hide most of the controls of hyphenation
|
||||
set_hyphenation_other_visible(false);
|
||||
Link<weld::MetricSpinButton&,void> aLink = LINK( this, ParaPropertyPanel, HyphenationHdl_Impl );
|
||||
mxAtLineEnd->connect_value_changed(aLink);
|
||||
mxAtLineBegin->connect_value_changed(aLink);
|
||||
mxConsecutive->connect_value_changed(aLink);
|
||||
mxCompound->connect_value_changed(aLink);
|
||||
mxWordLength->connect_value_changed(aLink);
|
||||
mxZone->connect_value_changed(aLink);
|
||||
m_eHyphenZoneUnit = m_aZoneControl.GetCoreMetric();
|
||||
Link<weld::Toggleable&,void> aLinkToggled = LINK( this, ParaPropertyPanel, HyphenationToggleButtonHdl_Impl );
|
||||
if ( mxHyphenateCapsBtn )
|
||||
mxHyphenateCapsBtn->connect_toggled(aLinkToggled);
|
||||
if ( mxHyphenateLastWordBtn )
|
||||
mxHyphenateLastWordBtn->connect_toggled(aLinkToggled);
|
||||
if ( mxHyphenateLastFullLineBtn )
|
||||
mxHyphenateLastFullLineBtn->connect_toggled(aLinkToggled);
|
||||
if ( mxHyphenateColumnBtn )
|
||||
mxHyphenateColumnBtn->connect_toggled(aLinkToggled);
|
||||
if ( mxHyphenatePageBtn )
|
||||
mxHyphenatePageBtn->connect_toggled(aLinkToggled);
|
||||
if ( mxHyphenateSpreadBtn )
|
||||
mxHyphenateSpreadBtn->connect_toggled(aLinkToggled);
|
||||
if ( mxHyphenateBtn )
|
||||
mxHyphenateBtn->connect_toggled(aLinkToggled);
|
||||
}
|
||||
|
||||
void ParaPropertyPanel::initial()
|
||||
{
|
||||
limitMetricWidths();
|
||||
|
@ -159,6 +235,7 @@ void ParaPropertyPanel::initial()
|
|||
//toolbox
|
||||
InitToolBoxIndent();
|
||||
InitToolBoxSpacing();
|
||||
InitToolBoxHyphenation();
|
||||
}
|
||||
|
||||
// for Paragraph Indent
|
||||
|
@ -185,6 +262,85 @@ IMPL_LINK_NOARG( ParaPropertyPanel, ULSpaceHdl_Impl, weld::MetricSpinButton&, vo
|
|||
SID_ATTR_PARA_ULSPACE, SfxCallMode::RECORD, { &aMargin });
|
||||
}
|
||||
|
||||
void ParaPropertyPanel::fill_hyphenzone(SvxHyphenZoneItem & rHyphen)
|
||||
{
|
||||
rHyphen.SetHyphen(mxTBxHyphenation->get_item_active("Hyphenate"));
|
||||
rHyphen.GetMinLead() = static_cast<sal_uInt8>(mxAtLineEnd->get_value(FieldUnit::NONE));
|
||||
rHyphen.GetMinTrail() = static_cast<sal_uInt8>(mxAtLineBegin->get_value(FieldUnit::NONE));
|
||||
rHyphen.GetMinWordLength() = static_cast<sal_uInt8>(mxWordLength->get_value(FieldUnit::NONE));
|
||||
rHyphen.GetMaxHyphens() = static_cast<sal_uInt8>(mxConsecutive->get_value(FieldUnit::NONE));
|
||||
rHyphen.GetCompoundMinLead() = static_cast<sal_uInt8>(mxCompound->get_value(FieldUnit::NONE));
|
||||
rHyphen.GetTextHyphenZone() = static_cast<sal_uInt16>(mxZone->GetCoreValue(m_eHyphenZoneUnit));
|
||||
rHyphen.SetNoCapsHyphenation(!mxTBxHyphenation->get_item_active("HyphenateCaps"));
|
||||
rHyphen.SetNoLastWordHyphenation(!mxTBxHyphenation->get_item_active("HyphenateLastWord"));
|
||||
rHyphen.SetKeep(!mxTBxHyphenation->get_item_active("HyphenateSpread"));
|
||||
rHyphen.GetKeepType() = !rHyphen.IsKeep()
|
||||
? 3
|
||||
: mxTBxHyphenation->get_item_active("HyphenatePage")
|
||||
? 1
|
||||
: mxTBxHyphenation->get_item_active("HyphenateColumn")
|
||||
? 2
|
||||
: mxTBxHyphenation->get_item_active("HyphenateLastFullLine")
|
||||
? 3
|
||||
: 4;
|
||||
}
|
||||
|
||||
// for hyphenation
|
||||
IMPL_LINK_NOARG( ParaPropertyPanel, HyphenationHdl_Impl, weld::MetricSpinButton&, void)
|
||||
{
|
||||
SvxHyphenZoneItem aHyphen( false, 69 /*RES_PARATR_HYPHENZONE*/);
|
||||
fill_hyphenzone(aHyphen);
|
||||
GetBindings()->GetDispatcher()->ExecuteList(
|
||||
SID_ATTR_PARA_HYPHENZONE, SfxCallMode::RECORD, { &aHyphen });
|
||||
}
|
||||
|
||||
// for hyphenation toggle buttons
|
||||
IMPL_LINK( ParaPropertyPanel, HyphenationToggleButtonHdl_Impl, weld::Toggleable&, rBtn, void)
|
||||
{
|
||||
if ( mbUpdatingHyphenateButtons )
|
||||
return;
|
||||
|
||||
// skip connect_toggled() events triggered by set_item_active(), which resulted stuck buttons
|
||||
mbUpdatingHyphenateButtons = true;
|
||||
|
||||
SvxHyphenZoneItem aHyphen( false, 69 /*RES_PARATR_HYPHENZONE*/);
|
||||
sal_Int16 nButton = 0;
|
||||
bool bEnabled = false;
|
||||
// get the correct getKeepType(), if clicked on one of the Hyphenate Across icons
|
||||
if( &rBtn == mxHyphenateSpreadBtn.get() )
|
||||
{
|
||||
nButton = 4;
|
||||
bEnabled = mxTBxHyphenation->get_item_active("HyphenateSpread");
|
||||
}
|
||||
else if( &rBtn == mxHyphenatePageBtn.get() )
|
||||
{
|
||||
nButton = 3;
|
||||
bEnabled = mxTBxHyphenation->get_item_active("HyphenatePage");
|
||||
}
|
||||
else if( &rBtn == mxHyphenateColumnBtn.get() )
|
||||
{
|
||||
nButton = 2;
|
||||
bEnabled = mxTBxHyphenation->get_item_active("HyphenateColumn");
|
||||
}
|
||||
else if( &rBtn == mxHyphenateLastFullLineBtn.get() )
|
||||
{
|
||||
nButton = 1;
|
||||
bEnabled = mxTBxHyphenation->get_item_active("HyphenateLastFullLine");
|
||||
}
|
||||
if (nButton > 0)
|
||||
{
|
||||
mxTBxHyphenation->set_item_active("HyphenateSpread", nButton == 4 && bEnabled);
|
||||
mxTBxHyphenation->set_item_active("HyphenatePage", nButton > 3 || (nButton == 3 && bEnabled));
|
||||
mxTBxHyphenation->set_item_active("HyphenateColumn", nButton > 2 || (nButton == 2 && bEnabled));
|
||||
mxTBxHyphenation->set_item_active("HyphenateLastFullLine", nButton > 1 || bEnabled);
|
||||
}
|
||||
fill_hyphenzone(aHyphen);
|
||||
GetBindings()->GetDispatcher()->ExecuteList(
|
||||
SID_ATTR_PARA_HYPHENZONE, SfxCallMode::RECORD, { &aHyphen });
|
||||
|
||||
mbUpdatingHyphenateButtons = false;
|
||||
}
|
||||
|
||||
// for Paragraph State change
|
||||
void ParaPropertyPanel::NotifyItemUpdate(
|
||||
sal_uInt16 nSID,
|
||||
|
@ -217,6 +373,10 @@ void ParaPropertyPanel::NotifyItemUpdate(
|
|||
case SID_ATTR_PARA_ULSPACE:
|
||||
StateChangedULImpl( eState, pState );
|
||||
break;
|
||||
|
||||
case SID_ATTR_PARA_HYPHENZONE:
|
||||
StateChangedHyphenationImpl( eState, pState );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -357,6 +517,36 @@ void ParaPropertyPanel::StateChangedULImpl( SfxItemState eState, const SfxPoolIt
|
|||
limitMetricWidths();
|
||||
}
|
||||
|
||||
void ParaPropertyPanel::StateChangedHyphenationImpl( SfxItemState eState, const SfxPoolItem* pState )
|
||||
{
|
||||
mxZone->set_max( mxZone->normalize( MAX_DURCH ), MapToFieldUnit(m_eHyphenZoneUnit) );
|
||||
|
||||
if( pState && eState >= SfxItemState::DEFAULT )
|
||||
{
|
||||
const SvxHyphenZoneItem* pOldItem = static_cast<const SvxHyphenZoneItem*>(pState);
|
||||
maZone = pOldItem->GetTextHyphenZone();
|
||||
maZone = OutputDevice::LogicToLogic(maZone, m_eHyphenZoneUnit, MapUnit::MapTwip);
|
||||
sal_Int64 nVal = o3tl::convert(maZone, o3tl::Length::twip, o3tl::Length::cm);
|
||||
nVal = mxZone->normalize( nVal );
|
||||
mxZone->set_value( nVal, FieldUnit::CM );
|
||||
mxAtLineEnd->set_value(pOldItem->GetMinLead(), FieldUnit::CHAR);
|
||||
mxAtLineBegin->set_value(pOldItem->GetMinTrail(), FieldUnit::CHAR);
|
||||
auto nMaxHyphens = pOldItem->GetMaxHyphens();
|
||||
mxConsecutive->set_value(nMaxHyphens, FieldUnit::NONE);
|
||||
mxCompound->set_value(pOldItem->GetCompoundMinLead(), FieldUnit::CHAR);
|
||||
mxWordLength->set_value(pOldItem->GetMinWordLength(), FieldUnit::CHAR);
|
||||
bool bHyph = pOldItem->IsHyphen();
|
||||
mxTBxHyphenation->set_item_active("Hyphenate", bHyph);
|
||||
mxTBxHyphenation->set_item_active("HyphenateCaps", !pOldItem->IsNoCapsHyphenation());
|
||||
mxTBxHyphenation->set_item_active("HyphenateLastWord", !pOldItem->IsNoLastWordHyphenation());
|
||||
mxTBxHyphenation->set_item_active("HyphenateLastFullLine", !pOldItem->IsKeep() || pOldItem->GetKeepType() < 4);
|
||||
mxTBxHyphenation->set_item_active("HyphenateColumn", !pOldItem->IsKeep() || pOldItem->GetKeepType() < 3);
|
||||
mxTBxHyphenation->set_item_active("HyphenatePage", !pOldItem->IsKeep() || pOldItem->GetKeepType() < 2);
|
||||
mxTBxHyphenation->set_item_active("HyphenateSpread", !pOldItem->IsKeep() || pOldItem->GetKeepType() < 1);
|
||||
set_hyphenation_other_visible( bHyph );
|
||||
}
|
||||
}
|
||||
|
||||
FieldUnit ParaPropertyPanel::GetCurrentUnit( SfxItemState eState, const SfxPoolItem* pState )
|
||||
{
|
||||
FieldUnit eUnit = FieldUnit::NONE;
|
||||
|
@ -409,22 +599,54 @@ ParaPropertyPanel::ParaPropertyPanel(weld::Widget* pParent,
|
|||
mxLineSpacingDispatch(new ToolbarUnoDispatcher(*mxTBxLineSpacing, *m_xBuilder, rxFrame)),
|
||||
mxTBxIndent(m_xBuilder->weld_toolbar(u"indent"_ustr)),
|
||||
mxIndentDispatch(new ToolbarUnoDispatcher(*mxTBxIndent, *m_xBuilder, rxFrame)),
|
||||
//Hyphenation
|
||||
mxTBxHyphenation(m_xBuilder->weld_toolbar(u"hyphenation"_ustr)),
|
||||
mxHyphenationDispatch(new ToolbarUnoDispatcher(*mxTBxHyphenation, *m_xBuilder, rxFrame)),
|
||||
//Paragraph spacing
|
||||
mxTopDist(m_xBuilder->weld_metric_spin_button(u"aboveparaspacing"_ustr, FieldUnit::CM)),
|
||||
mxBottomDist(m_xBuilder->weld_metric_spin_button(u"belowparaspacing"_ustr, FieldUnit::CM)),
|
||||
mxLeftIndent(m_xBuilder->weld_metric_spin_button(u"beforetextindent"_ustr, FieldUnit::CM)),
|
||||
mxRightIndent(m_xBuilder->weld_metric_spin_button(u"aftertextindent"_ustr, FieldUnit::CM)),
|
||||
mxFLineIndent(m_xBuilder->weld_metric_spin_button(u"firstlineindent"_ustr, FieldUnit::CM)),
|
||||
mxHyphenationLabel(m_xBuilder->weld_label(u"hyphenationlabel"_ustr)),
|
||||
mxAtLineEndLabel(m_xBuilder->weld_label(u"lineend_label"_ustr)),
|
||||
mxAtLineBeginLabel(m_xBuilder->weld_label(u"linebegin_label"_ustr)),
|
||||
mxConsecutiveLabel(m_xBuilder->weld_label(u"consecutive_label"_ustr)),
|
||||
mxCompoundLabel(m_xBuilder->weld_label(u"compound_label"_ustr)),
|
||||
mxWordLengthLabel(m_xBuilder->weld_label(u"wordlength_label"_ustr)),
|
||||
mxZoneLabel(m_xBuilder->weld_label(u"zone_label"_ustr)),
|
||||
mxAtLineEnd(m_xBuilder->weld_metric_spin_button(u"lineend"_ustr, FieldUnit::CHAR)),
|
||||
mxAtLineBegin(m_xBuilder->weld_metric_spin_button(u"linebegin"_ustr, FieldUnit::CHAR)),
|
||||
mxConsecutive(m_xBuilder->weld_metric_spin_button(u"consecutive"_ustr, FieldUnit::NONE)),
|
||||
mxCompound(m_xBuilder->weld_metric_spin_button(u"compound"_ustr, FieldUnit::CHAR)),
|
||||
mxWordLength(m_xBuilder->weld_metric_spin_button(u"wordlength"_ustr, FieldUnit::CHAR)),
|
||||
mxZone(m_xBuilder->weld_metric_spin_button(u"zone"_ustr, FieldUnit::CM)),
|
||||
mbUpdatingHyphenateButtons(false),
|
||||
mxHyphenateCapsBtn(m_xBuilder->weld_toggle_button(u"HyphenateCaps"_ustr)),
|
||||
mxHyphenateLastWordBtn(m_xBuilder->weld_toggle_button(u"HyphenateLastWord"_ustr)),
|
||||
mxHyphenateLastFullLineBtn(m_xBuilder->weld_toggle_button(u"HyphenateLastFullLine"_ustr)),
|
||||
mxHyphenateColumnBtn(m_xBuilder->weld_toggle_button(u"HyphenateColumn"_ustr)),
|
||||
mxHyphenatePageBtn(m_xBuilder->weld_toggle_button(u"HyphenatePage"_ustr)),
|
||||
mxHyphenateSpreadBtn(m_xBuilder->weld_toggle_button(u"HyphenateSpread"_ustr)),
|
||||
mxHyphenateBtn(m_xBuilder->weld_toggle_button(u"Hyphenate"_ustr)),
|
||||
maTxtLeft (0),
|
||||
maUpper (0),
|
||||
maLower (0),
|
||||
maZone (0),
|
||||
m_eMetricUnit(FieldUnit::NONE),
|
||||
m_last_eMetricUnit(FieldUnit::NONE),
|
||||
m_eLRSpaceUnit(),
|
||||
m_eULSpaceUnit(),
|
||||
m_eHyphenZoneUnit(),
|
||||
maLRSpaceControl (SID_ATTR_PARA_LRSPACE,*pBindings,*this),
|
||||
maULSpaceControl (SID_ATTR_PARA_ULSPACE, *pBindings,*this),
|
||||
m_aMetricCtl (SID_ATTR_METRIC, *pBindings,*this),
|
||||
m_aAtLineEndControl (SID_ATTR_PARA_HYPHENZONE, *pBindings,*this),
|
||||
m_aAtLineBeginControl (SID_ATTR_PARA_HYPHENZONE, *pBindings,*this),
|
||||
m_aConsecutiveControl (SID_ATTR_PARA_HYPHENZONE, *pBindings,*this),
|
||||
m_aCompoundControl (SID_ATTR_PARA_HYPHENZONE, *pBindings,*this),
|
||||
m_aWordLengthControl (SID_ATTR_PARA_HYPHENZONE, *pBindings,*this),
|
||||
m_aZoneControl (SID_ATTR_PARA_HYPHENZONE, *pBindings,*this),
|
||||
mpBindings(pBindings),
|
||||
mxSidebar(std::move(xSidebar))
|
||||
{
|
||||
|
@ -434,7 +656,6 @@ ParaPropertyPanel::ParaPropertyPanel(weld::Widget* pParent,
|
|||
// subsequent panels, e.g. the TableEditPanel panel can have up to 5
|
||||
// entries in each of its column and remain in alignment with this panel
|
||||
padWidthForSidebar(*mxTBxIndent, rxFrame);
|
||||
|
||||
initial();
|
||||
m_aMetricCtl.RequestUpdate();
|
||||
}
|
||||
|
@ -474,6 +695,9 @@ ParaPropertyPanel::~ParaPropertyPanel()
|
|||
mxIndentDispatch.reset();
|
||||
mxTBxIndent.reset();
|
||||
|
||||
mxHyphenationDispatch.reset();
|
||||
mxTBxHyphenation.reset();
|
||||
|
||||
mxTopDist.reset();
|
||||
mxBottomDist.reset();
|
||||
mxLeftIndent.reset();
|
||||
|
@ -483,6 +707,12 @@ ParaPropertyPanel::~ParaPropertyPanel()
|
|||
maLRSpaceControl.dispose();
|
||||
maULSpaceControl.dispose();
|
||||
m_aMetricCtl.dispose();
|
||||
m_aAtLineEndControl.dispose();
|
||||
m_aAtLineBeginControl.dispose();
|
||||
m_aConsecutiveControl.dispose();
|
||||
m_aCompoundControl.dispose();
|
||||
m_aWordLengthControl.dispose();
|
||||
m_aZoneControl.dispose();
|
||||
}
|
||||
|
||||
} // end of namespace svx::sidebar
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
*/
|
||||
#pragma once
|
||||
|
||||
#include <editeng/hyphenzoneitem.hxx>
|
||||
#include <sfx2/sidebar/ControllerItem.hxx>
|
||||
#include <sfx2/sidebar/IContextChangeReceiver.hxx>
|
||||
#include <sfx2/sidebar/PanelLayout.hxx>
|
||||
|
@ -91,6 +92,8 @@ private:
|
|||
std::unique_ptr<ToolbarUnoDispatcher> mxLineSpacingDispatch;
|
||||
std::unique_ptr<weld::Toolbar> mxTBxIndent;
|
||||
std::unique_ptr<ToolbarUnoDispatcher> mxIndentDispatch;
|
||||
std::unique_ptr<weld::Toolbar> mxTBxHyphenation;
|
||||
std::unique_ptr<ToolbarUnoDispatcher> mxHyphenationDispatch;
|
||||
|
||||
//Paragraph spacing
|
||||
std::optional<SvxRelativeField> mxTopDist;
|
||||
|
@ -99,19 +102,50 @@ private:
|
|||
std::optional<SvxRelativeField> mxRightIndent;
|
||||
std::optional<SvxRelativeField> mxFLineIndent;
|
||||
|
||||
// Hyphenation
|
||||
std::unique_ptr<weld::Label> mxHyphenationLabel;
|
||||
std::unique_ptr<weld::Label> mxAtLineEndLabel;
|
||||
std::unique_ptr<weld::Label> mxAtLineBeginLabel;
|
||||
std::unique_ptr<weld::Label> mxConsecutiveLabel;
|
||||
std::unique_ptr<weld::Label> mxCompoundLabel;
|
||||
std::unique_ptr<weld::Label> mxWordLengthLabel;
|
||||
std::unique_ptr<weld::Label> mxZoneLabel;
|
||||
std::optional<SvxRelativeField> mxAtLineEnd;
|
||||
std::optional<SvxRelativeField> mxAtLineBegin;
|
||||
std::optional<SvxRelativeField> mxConsecutive;
|
||||
std::optional<SvxRelativeField> mxCompound;
|
||||
std::optional<SvxRelativeField> mxWordLength;
|
||||
std::optional<SvxRelativeField> mxZone;
|
||||
bool mbUpdatingHyphenateButtons;
|
||||
std::unique_ptr<weld::ToggleButton> mxHyphenateCapsBtn;
|
||||
std::unique_ptr<weld::ToggleButton> mxHyphenateLastWordBtn;
|
||||
std::unique_ptr<weld::ToggleButton> mxHyphenateLastFullLineBtn;
|
||||
std::unique_ptr<weld::ToggleButton> mxHyphenateColumnBtn;
|
||||
std::unique_ptr<weld::ToggleButton> mxHyphenatePageBtn;
|
||||
std::unique_ptr<weld::ToggleButton> mxHyphenateSpreadBtn;
|
||||
std::unique_ptr<weld::ToggleButton> mxHyphenateBtn;
|
||||
|
||||
// Data Member
|
||||
tools::Long maTxtLeft;
|
||||
tools::Long maUpper;
|
||||
tools::Long maLower;
|
||||
tools::Long maZone;
|
||||
|
||||
FieldUnit m_eMetricUnit;
|
||||
FieldUnit m_last_eMetricUnit;
|
||||
MapUnit m_eLRSpaceUnit;
|
||||
MapUnit m_eULSpaceUnit;
|
||||
MapUnit m_eHyphenZoneUnit;
|
||||
// Control Items
|
||||
::sfx2::sidebar::ControllerItem maLRSpaceControl;
|
||||
::sfx2::sidebar::ControllerItem maULSpaceControl;
|
||||
::sfx2::sidebar::ControllerItem m_aMetricCtl;
|
||||
::sfx2::sidebar::ControllerItem m_aAtLineEndControl;
|
||||
::sfx2::sidebar::ControllerItem m_aAtLineBeginControl;
|
||||
::sfx2::sidebar::ControllerItem m_aConsecutiveControl;
|
||||
::sfx2::sidebar::ControllerItem m_aCompoundControl;
|
||||
::sfx2::sidebar::ControllerItem m_aWordLengthControl;
|
||||
::sfx2::sidebar::ControllerItem m_aZoneControl;
|
||||
|
||||
vcl::EnumContext maContext;
|
||||
SfxBindings* mpBindings;
|
||||
|
@ -119,14 +153,21 @@ private:
|
|||
|
||||
DECL_LINK(ModifyIndentHdl_Impl, weld::MetricSpinButton&, void);
|
||||
DECL_LINK(ULSpaceHdl_Impl, weld::MetricSpinButton&, void);
|
||||
DECL_LINK(HyphenationHdl_Impl, weld::MetricSpinButton&, void);
|
||||
DECL_LINK(HyphenationToggleButtonHdl_Impl, weld::Toggleable&, void);
|
||||
|
||||
void StateChangedIndentImpl( SfxItemState eState, const SfxPoolItem* pState );
|
||||
void StateChangedULImpl( SfxItemState eState, const SfxPoolItem* pState );
|
||||
void StateChangedHyphenationImpl( SfxItemState eState, const SfxPoolItem* pState );
|
||||
|
||||
void initial();
|
||||
void set_hyphenation_base_visible(bool bVisible);
|
||||
void set_hyphenation_other_visible(bool bVisible);
|
||||
void fill_hyphenzone(SvxHyphenZoneItem& rHyphen);
|
||||
void ReSize();
|
||||
void InitToolBoxIndent();
|
||||
void InitToolBoxSpacing();
|
||||
void InitToolBoxHyphenation();
|
||||
void limitMetricWidths();
|
||||
};
|
||||
|
||||
|
|
|
@ -57,6 +57,8 @@ TextPropertyPanel::TextPropertyPanel(weld::Widget* pParent, const css::uno::Refe
|
|||
, mxResetBarDispatch(new ToolbarUnoDispatcher(*mxResetBar, *m_xBuilder, rxFrame))
|
||||
, mxDefaultBar(m_xBuilder->weld_toolbar(u"defaultattr"_ustr))
|
||||
, mxDefaultBarDispatch(new ToolbarUnoDispatcher(*mxDefaultBar, *m_xBuilder, rxFrame))
|
||||
, mxHyphenationBar(m_xBuilder->weld_toolbar(u"hyphenation"_ustr))
|
||||
, mxHyphenationBarDispatch(new ToolbarUnoDispatcher(*mxHyphenationBar, *m_xBuilder, rxFrame))
|
||||
, mxPositionBar(m_xBuilder->weld_toolbar(u"position"_ustr))
|
||||
, mxPositionBarDispatch(new ToolbarUnoDispatcher(*mxPositionBar, *m_xBuilder, rxFrame))
|
||||
, mxSpacingBar(m_xBuilder->weld_toolbar(u"spacingbar"_ustr))
|
||||
|
@ -74,6 +76,7 @@ TextPropertyPanel::~TextPropertyPanel()
|
|||
{
|
||||
mxResetBarDispatch.reset();
|
||||
mxDefaultBarDispatch.reset();
|
||||
mxHyphenationBarDispatch.reset();
|
||||
mxPositionBarDispatch.reset();
|
||||
mxSpacingBarDispatch.reset();
|
||||
mxToolBoxFontColorDispatch.reset();
|
||||
|
@ -85,6 +88,7 @@ TextPropertyPanel::~TextPropertyPanel()
|
|||
|
||||
mxResetBar.reset();
|
||||
mxDefaultBar.reset();
|
||||
mxHyphenationBar.reset();
|
||||
mxPositionBar.reset();
|
||||
mxSpacingBar.reset();
|
||||
mxToolBoxFontColor.reset();
|
||||
|
@ -142,6 +146,8 @@ void TextPropertyPanel::HandleContextChange (
|
|||
mxToolBoxBackgroundColor->set_visible(bWriterText || bDrawText);
|
||||
mxResetBar->set_visible(bWriterText || bCalcText);
|
||||
mxDefaultBar->set_visible(bDrawText);
|
||||
mxHyphenationBar->set_visible(bWriterText);
|
||||
mxSpacingBar->set_item_visible(".uno:NoBreak", bWriterText);
|
||||
}
|
||||
|
||||
} // end of namespace svx::sidebar
|
||||
|
|
|
@ -61,6 +61,8 @@ private:
|
|||
std::unique_ptr<ToolbarUnoDispatcher> mxResetBarDispatch;
|
||||
std::unique_ptr<weld::Toolbar> mxDefaultBar;
|
||||
std::unique_ptr<ToolbarUnoDispatcher> mxDefaultBarDispatch;
|
||||
std::unique_ptr<weld::Toolbar> mxHyphenationBar;
|
||||
std::unique_ptr<ToolbarUnoDispatcher> mxHyphenationBarDispatch;
|
||||
std::unique_ptr<weld::Toolbar> mxPositionBar;
|
||||
std::unique_ptr<ToolbarUnoDispatcher> mxPositionBarDispatch;
|
||||
std::unique_ptr<weld::Toolbar> mxSpacingBar;
|
||||
|
|
|
@ -27,6 +27,44 @@
|
|||
<property name="step-increment">1</property>
|
||||
<property name="page-increment">10</property>
|
||||
</object>
|
||||
<object class="GtkAdjustment" id="adjustment6">
|
||||
<property name="lower">1</property>
|
||||
<property name="upper">9</property>
|
||||
<property name="value">2</property>
|
||||
<property name="step-increment">1</property>
|
||||
<property name="page-increment">10</property>
|
||||
</object>
|
||||
<object class="GtkAdjustment" id="adjustment7">
|
||||
<property name="lower">2</property>
|
||||
<property name="upper">9</property>
|
||||
<property name="value">2</property>
|
||||
<property name="step-increment">1</property>
|
||||
<property name="page-increment">10</property>
|
||||
</object>
|
||||
<object class="GtkAdjustment" id="adjustment8">
|
||||
<property name="upper">99</property>
|
||||
<property name="step-increment">1</property>
|
||||
<property name="page-increment">10</property>
|
||||
</object>
|
||||
<object class="GtkAdjustment" id="adjustment9">
|
||||
<property name="lower">2</property>
|
||||
<property name="upper">9</property>
|
||||
<property name="value">2</property>
|
||||
<property name="step-increment">1</property>
|
||||
<property name="page-increment">10</property>
|
||||
</object>
|
||||
<object class="GtkAdjustment" id="adjustment10">
|
||||
<property name="lower">4</property>
|
||||
<property name="upper">99</property>
|
||||
<property name="value">4</property>
|
||||
<property name="step-increment">1</property>
|
||||
<property name="page-increment">10</property>
|
||||
</object>
|
||||
<object class="GtkAdjustment" id="adjustment11">
|
||||
<property name="upper">55.88</property>
|
||||
<property name="step-increment">1</property>
|
||||
<property name="page-increment">10</property>
|
||||
</object>
|
||||
<!-- n-columns=1 n-rows=1 -->
|
||||
<object class="GtkGrid" id="ParaPropertyPanel">
|
||||
<property name="visible">True</property>
|
||||
|
@ -38,7 +76,7 @@
|
|||
<property name="can-focus">False</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="border-width">6</property>
|
||||
<property name="row-spacing">3</property>
|
||||
<property name="row-spacing">1</property>
|
||||
<property name="column-spacing">6</property>
|
||||
<property name="column-homogeneous">True</property>
|
||||
<child>
|
||||
|
@ -613,6 +651,340 @@
|
|||
<property name="width">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox" id="box4">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">3</property>
|
||||
<child>
|
||||
<object class="GtkBox" id="box5">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="orientation">horizontal</property>
|
||||
<property name="spacing">3</property>
|
||||
<child>
|
||||
<object class="GtkToolbar" id="hyphenation">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="tooltip-text" translatable="yes" context="sidebarparagraph|hyphenation|tooltip_text">Hyphenation</property>
|
||||
<property name="toolbar-style">icons</property>
|
||||
<property name="show-arrow">False</property>
|
||||
<property name="icon_size">2</property>
|
||||
<child>
|
||||
<object class="GtkToggleToolButton" id="HyphenateCaps">
|
||||
<property name="visible">True</property>
|
||||
<property name="margin-start">1</property>
|
||||
<property name="margin-end">1</property>
|
||||
<property name="use-underline">True</property>
|
||||
<property name="icon-name">cmd/sc_changecasetoupper.png</property>
|
||||
<property name="label" translatable="yes" context="sidebarparagraph|hyphenation|caps">Hyphenate CAPS</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="homogeneous">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkToggleToolButton" id="HyphenateLastWord">
|
||||
<property name="visible">True</property>
|
||||
<property name="use-underline">True</property>
|
||||
<property name="margin-start">1</property>
|
||||
<property name="margin-end">1</property>
|
||||
<property name="icon-name">cmd/sc_textbodyparastyle.png</property>
|
||||
<property name="label" translatable="yes" context="sidebarparagraph|hyphenation|lastword">Hyphenate Last Paragraph Word</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="homogeneous">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkToggleToolButton" id="HyphenateLastFullLine">
|
||||
<property name="visible">True</property>
|
||||
<property name="use-underline">True</property>
|
||||
<property name="margin-start">1</property>
|
||||
<property name="margin-end">1</property>
|
||||
<property name="icon-name">cmd/sc_insertfooter.png</property>
|
||||
<property name="label" translatable="yes" context="sidebarparagraph|hyphenation|lastfullline">Hyphenate Last Full Paragraph Line</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="homogeneous">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkToggleToolButton" id="HyphenateColumn">
|
||||
<property name="visible">True</property>
|
||||
<property name="use-underline">True</property>
|
||||
<property name="margin-start">1</property>
|
||||
<property name="margin-end">1</property>
|
||||
<property name="icon-name">cmd/sc_formatcolumns.png</property>
|
||||
<property name="label" translatable="yes" context="sidebarparagraph|hyphenation|column">Hyphenate Across Column</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="homogeneous">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkToggleToolButton" id="HyphenatePage">
|
||||
<property name="visible">False</property>
|
||||
<property name="use-underline">True</property>
|
||||
<property name="margin-start">1</property>
|
||||
<property name="margin-end">1</property>
|
||||
<property name="icon-name">cmd/sc_showtwopages.png</property>
|
||||
<property name="label" translatable="yes" context="sidebarparagraph|hyphenation|page">Hyphenate Across Page</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="homogeneous">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkToggleToolButton" id="HyphenateSpread">
|
||||
<property name="visible">False</property>
|
||||
<property name="use-underline">True</property>
|
||||
<property name="margin-start">1</property>
|
||||
<property name="margin-end">1</property>
|
||||
<property name="icon-name">cmd/sc_showmultiplepages.png</property>
|
||||
<property name="label" translatable="yes" context="sidebarparagraph|hyphenation|spread">Hyphenate Across Spread</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="homogeneous">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkToggleToolButton" id="Hyphenate">
|
||||
<property name="visible">True</property>
|
||||
<property name="use-underline">True</property>
|
||||
<property name="margin-start">1</property>
|
||||
<property name="margin-end">1</property>
|
||||
<property name="icon-name">cmd/sc_hyphenation.png</property>
|
||||
<property name="label" translatable="yes" context="sidebarparagraph|hyphenation|hyphenation">Hyphenation</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="hyphenationlabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="label" translatable="yes" context="sidebarparagraph|hyphenationlabel">_Hyphenation:</property>
|
||||
<property name="use-underline">True</property>
|
||||
<property name="mnemonic-widget">hyphenation</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">0</property>
|
||||
<property name="top-attach">3</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">0</property>
|
||||
<property name="top-attach">4</property>
|
||||
<property name="width">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="lineend_label">
|
||||
<property name="visible">False</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="label" translatable="yes" context="sidebarparagraph|lineend_label">At line end:</property>
|
||||
<property name="use-underline">True</property>
|
||||
<property name="mnemonic-widget">lineend</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">0</property>
|
||||
<property name="top-attach">5</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="linebegin_label">
|
||||
<property name="visible">False</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="label" translatable="yes" context="sidebarparagraph|linebegin_label">At line begin:</property>
|
||||
<property name="use-underline">True</property>
|
||||
<property name="mnemonic-widget">linebegin</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">1</property>
|
||||
<property name="top-attach">5</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="compound_label">
|
||||
<property name="visible">False</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="label" translatable="yes" context="sidebarparagraph|linebegin_label">Compound constituent:</property>
|
||||
<property name="use-underline">True</property>
|
||||
<property name="mnemonic-widget">compound</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">1</property>
|
||||
<property name="top-attach">7</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="consecutive_label">
|
||||
<property name="visible">False</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="label" translatable="yes" context="sidebarparagraph|lineend_label">Consecutive lines:</property>
|
||||
<property name="use-underline">True</property>
|
||||
<property name="mnemonic-widget">consecutive</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">0</property>
|
||||
<property name="top-attach">7</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="wordlength_label">
|
||||
<property name="visible">False</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="label" translatable="yes" context="sidebarparagraph|linebegin_label">Word length:</property>
|
||||
<property name="use-underline">True</property>
|
||||
<property name="mnemonic-widget">wordlength</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">0</property>
|
||||
<property name="top-attach">9</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="zone_label">
|
||||
<property name="visible">False</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="label" translatable="yes" context="sidebarparagraph|lineend_label">Hyphenation zone:</property>
|
||||
<property name="use-underline">True</property>
|
||||
<property name="mnemonic-widget">zone</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">1</property>
|
||||
<property name="top-attach">9</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSpinButton" id="lineend">
|
||||
<property name="visible">False</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="tooltip-text" translatable="yes" context="sidebarparagraph|lineend|tooltip_text">Characters at Line End</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="text">0</property>
|
||||
<property name="truncate-multiline">True</property>
|
||||
<property name="adjustment">adjustment6</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">0</property>
|
||||
<property name="top-attach">6</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSpinButton" id="linebegin">
|
||||
<property name="visible">False</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="tooltip-text" translatable="yes" context="sidebarparagraph|linebegin|tooltip_text">Characters at Line Begin</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="text">0</property>
|
||||
<property name="truncate-multiline">True</property>
|
||||
<property name="adjustment">adjustment7</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">1</property>
|
||||
<property name="top-attach">6</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSpinButton" id="compound">
|
||||
<property name="visible">False</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="tooltip-text" translatable="yes" context="sidebarparagraph|lineend|tooltip_text">Compound Constituent Characters at Line End</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="text">0</property>
|
||||
<property name="truncate-multiline">True</property>
|
||||
<property name="adjustment">adjustment9</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">1</property>
|
||||
<property name="top-attach">8</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSpinButton" id="consecutive">
|
||||
<property name="visible">False</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="tooltip-text" translatable="yes" context="sidebarparagraph|linebegin|tooltip_text">Maximum Consecutive Hyphenated Lines</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="text">0</property>
|
||||
<property name="truncate-multiline">True</property>
|
||||
<property name="adjustment">adjustment8</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">0</property>
|
||||
<property name="top-attach">8</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSpinButton" id="wordlength">
|
||||
<property name="visible">False</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="tooltip-text" translatable="yes" context="sidebarparagraph|lineend|tooltip_text">Minimum Word Length</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="text">0</property>
|
||||
<property name="truncate-multiline">True</property>
|
||||
<property name="adjustment">adjustment10</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">0</property>
|
||||
<property name="top-attach">10</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSpinButton" id="zone">
|
||||
<property name="visible">False</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="tooltip-text" translatable="yes" context="sidebarparagraph|linebegin|tooltip_text">Line Break Between Words</property>
|
||||
<property name="activates-default">True</property>
|
||||
<property name="truncate-multiline">True</property>
|
||||
<property name="adjustment">adjustment11</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">1</property>
|
||||
<property name="top-attach">10</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkToolbar" id="numberbullet">
|
||||
<property name="visible">True</property>
|
||||
|
|
|
@ -233,6 +233,16 @@
|
|||
<property name="homogeneous">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkToolButton" id=".uno:NoBreak">
|
||||
<property name="visible">True</property>
|
||||
<property name="use-underline">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="homogeneous">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
|
@ -252,6 +262,30 @@
|
|||
<property name="can-focus">False</property>
|
||||
<property name="halign">end</property>
|
||||
<property name="spacing">6</property>
|
||||
<child>
|
||||
<object class="GtkToolbar" id="hyphenation">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="toolbar-style">icons</property>
|
||||
<property name="show-arrow">False</property>
|
||||
<property name="icon_size">2</property>
|
||||
<child>
|
||||
<object class="GtkToolButton" id=".uno:Hyphenate">
|
||||
<property name="visible">True</property>
|
||||
<property name="use-underline">True</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">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkToolbar" id="position">
|
||||
<property name="visible">True</property>
|
||||
|
|
|
@ -1412,8 +1412,8 @@ interface BaseText
|
|||
]
|
||||
SID_ATTR_PARA_HYPHENZONE // status(final|play)
|
||||
[
|
||||
ExecMethod = ExecTextCtrl;
|
||||
StateMethod = GetTextCtrlState;
|
||||
ExecMethod = ExecParaAttr ;
|
||||
StateMethod = GetAttrState ;
|
||||
DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
|
||||
]
|
||||
FN_NO_BREAK // status(final|play)
|
||||
|
|
|
@ -326,6 +326,7 @@ void SwTextShell::ExecParaAttr(SfxRequest &rReq)
|
|||
// Get both attributes immediately isn't more expensive!!
|
||||
SfxItemSetFixed
|
||||
<RES_PARATR_LINESPACING, RES_PARATR_ADJUST,
|
||||
RES_PARATR_HYPHENZONE, RES_PARATR_HYPHENZONE,
|
||||
RES_FRAMEDIR, RES_FRAMEDIR> aSet( GetPool() );
|
||||
|
||||
sal_uInt16 nSlot = rReq.GetSlot();
|
||||
|
@ -441,6 +442,18 @@ SET_LINESPACE:
|
|||
}
|
||||
}
|
||||
break;
|
||||
case SID_ATTR_PARA_HYPHENZONE:
|
||||
{
|
||||
SfxItemSetFixed<RES_PARATR_HYPHENZONE, RES_PARATR_HYPHENZONE> aHyphSet( GetPool() );
|
||||
GetShell().GetCurAttr(aHyphSet);
|
||||
SfxItemState eState = aHyphSet.GetItemState(RES_PARATR_HYPHENZONE, false);
|
||||
if ( eState >= SfxItemState::DEFAULT )
|
||||
{
|
||||
SvxHyphenZoneItem aHyphen( pArgs->Get( RES_PARATR_HYPHENZONE ) );
|
||||
aSet.Put( aHyphen );
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
OSL_FAIL("wrong dispatcher");
|
||||
|
|
Loading…
Reference in a new issue