summaryrefslogtreecommitdiff
path: root/svx
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2021-10-25 21:07:06 +0100
committerCaolán McNamara <caolanm@redhat.com>2021-10-26 10:07:02 +0200
commit312a32f6b6c83c5747b617249d794fc87ffd8b9b (patch)
treec9ddb3b771bbfc9165fc9e713584b72bb2f1c6a7 /svx
parent592235d64d6f9638a61865712ca385ec58d688c4 (diff)
tdf#145296 use a 'clickable' widget for custom spacing
Change-Id: I7c0b609a074a68dcc7ca4f6a775743e836a6caa7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124165 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'svx')
-rw-r--r--svx/source/tbxctrls/fontworkgallery.cxx55
-rw-r--r--svx/uiconfig/ui/fontworkcharacterspacingcontrol.ui109
2 files changed, 81 insertions, 83 deletions
diff --git a/svx/source/tbxctrls/fontworkgallery.cxx b/svx/source/tbxctrls/fontworkgallery.cxx
index a5c812c03b63..a0071644d09f 100644
--- a/svx/source/tbxctrls/fontworkgallery.cxx
+++ b/svx/source/tbxctrls/fontworkgallery.cxx
@@ -470,17 +470,17 @@ public:
virtual void statusChanged( const css::frame::FeatureStateEvent& Event ) override;
private:
rtl::Reference<svt::PopupWindowController> mxControl;
- std::unique_ptr<weld::RadioButton> mxVeryTight;
- std::unique_ptr<weld::RadioButton> mxTight;
- std::unique_ptr<weld::RadioButton> mxNormal;
- std::unique_ptr<weld::RadioButton> mxLoose;
- std::unique_ptr<weld::RadioButton> mxVeryLoose;
- std::unique_ptr<weld::RadioButton> mxCustom;
+ std::unique_ptr<weld::ToggleButton> mxVeryTight;
+ std::unique_ptr<weld::ToggleButton> mxTight;
+ std::unique_ptr<weld::ToggleButton> mxNormal;
+ std::unique_ptr<weld::ToggleButton> mxLoose;
+ std::unique_ptr<weld::ToggleButton> mxVeryLoose;
+ std::unique_ptr<weld::ToggleButton> mxCustom;
std::unique_ptr<weld::CheckButton> mxKernPairs;
bool mbSettingValue;
DECL_LINK( KernSelectHdl, weld::Toggleable&, void );
- DECL_LINK( SelectHdl, weld::Toggleable&, void );
+ DECL_LINK( SelectHdl, weld::Button&, void );
void implSetCharacterSpacing( sal_Int32 nCharacterSpacing, bool bEnabled );
void implSetKernCharacterPairs(bool bKernOnOff, bool bEnabled);
@@ -494,21 +494,21 @@ constexpr OUStringLiteral gsFontworkKernCharacterPairs(u".uno:FontworkKernCharac
FontworkCharacterSpacingWindow::FontworkCharacterSpacingWindow(svt::PopupWindowController* pControl, weld::Widget* pParent)
: WeldToolbarPopup(pControl->getFrameInterface(), pParent, "svx/ui/fontworkcharacterspacingcontrol.ui", "FontworkCharacterSpacingControl")
, mxControl(pControl)
- , mxVeryTight(m_xBuilder->weld_radio_button("verytight"))
- , mxTight(m_xBuilder->weld_radio_button("tight"))
- , mxNormal(m_xBuilder->weld_radio_button("normal"))
- , mxLoose(m_xBuilder->weld_radio_button("loose"))
- , mxVeryLoose(m_xBuilder->weld_radio_button("veryloose"))
- , mxCustom(m_xBuilder->weld_radio_button("custom"))
+ , mxVeryTight(m_xBuilder->weld_toggle_button("verytight"))
+ , mxTight(m_xBuilder->weld_toggle_button("tight"))
+ , mxNormal(m_xBuilder->weld_toggle_button("normal"))
+ , mxLoose(m_xBuilder->weld_toggle_button("loose"))
+ , mxVeryLoose(m_xBuilder->weld_toggle_button("veryloose"))
+ , mxCustom(m_xBuilder->weld_toggle_button("custom"))
, mxKernPairs(m_xBuilder->weld_check_button("kernpairs"))
, mbSettingValue(false)
{
- mxVeryTight->connect_toggled(LINK(this, FontworkCharacterSpacingWindow, SelectHdl));
- mxTight->connect_toggled(LINK(this, FontworkCharacterSpacingWindow, SelectHdl));
- mxNormal->connect_toggled(LINK(this, FontworkCharacterSpacingWindow, SelectHdl));
- mxLoose->connect_toggled(LINK(this, FontworkCharacterSpacingWindow, SelectHdl));
- mxVeryLoose->connect_toggled(LINK(this, FontworkCharacterSpacingWindow, SelectHdl));
- mxCustom->connect_toggled(LINK(this, FontworkCharacterSpacingWindow, SelectHdl));
+ mxVeryTight->connect_clicked(LINK(this, FontworkCharacterSpacingWindow, SelectHdl));
+ mxTight->connect_clicked(LINK(this, FontworkCharacterSpacingWindow, SelectHdl));
+ mxNormal->connect_clicked(LINK(this, FontworkCharacterSpacingWindow, SelectHdl));
+ mxLoose->connect_clicked(LINK(this, FontworkCharacterSpacingWindow, SelectHdl));
+ mxVeryLoose->connect_clicked(LINK(this, FontworkCharacterSpacingWindow, SelectHdl));
+ mxCustom->connect_clicked(LINK(this, FontworkCharacterSpacingWindow, SelectHdl));
mxKernPairs->connect_toggled(LINK(this, FontworkCharacterSpacingWindow, KernSelectHdl));
@@ -542,7 +542,6 @@ void FontworkCharacterSpacingWindow::implSetCharacterSpacing( sal_Int32 nCharact
mxNormal->set_active(false);
mxLoose->set_active(false);
mxVeryLoose->set_active(false);
- mxCustom->set_active(true);
switch(nCharacterSpacing)
{
@@ -563,6 +562,12 @@ void FontworkCharacterSpacingWindow::implSetCharacterSpacing( sal_Int32 nCharact
break;
}
+ mxCustom->set_active(!mxVeryTight->get_active() &&
+ !mxTight->get_active() &&
+ !mxNormal->get_active() &&
+ !mxLoose->get_active() &&
+ !mxVeryLoose->get_active());
+
mbSettingValue = bSettingValue;
}
@@ -619,10 +624,14 @@ IMPL_LINK_NOARG(FontworkCharacterSpacingWindow, KernSelectHdl, weld::Toggleable&
mxControl->EndPopupMode();
}
-IMPL_LINK(FontworkCharacterSpacingWindow, SelectHdl, weld::Toggleable&, rButton, void)
+IMPL_LINK(FontworkCharacterSpacingWindow, SelectHdl, weld::Button&, rButton, void)
{
- if (!rButton.get_active())
- return;
+ mxVeryTight->set_active(&rButton == mxVeryTight.get());
+ mxTight->set_active(&rButton == mxTight.get());
+ mxNormal->set_active(&rButton == mxNormal.get());
+ mxLoose->set_active(&rButton == mxLoose.get());
+ mxVeryLoose->set_active(&rButton == mxVeryLoose.get());
+ mxCustom->set_active(&rButton == mxCustom.get());
if (mbSettingValue)
return;
diff --git a/svx/uiconfig/ui/fontworkcharacterspacingcontrol.ui b/svx/uiconfig/ui/fontworkcharacterspacingcontrol.ui
index aee1943bb10a..df7f5e19668e 100644
--- a/svx/uiconfig/ui/fontworkcharacterspacingcontrol.ui
+++ b/svx/uiconfig/ui/fontworkcharacterspacingcontrol.ui
@@ -1,121 +1,110 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.22.1 -->
+<!-- Generated with glade 3.38.2 -->
<interface domain="svx">
<requires lib="gtk+" version="3.20"/>
<object class="GtkPopover" id="FontworkCharacterSpacingControl">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
- <property name="border_width">4</property>
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="border-width">4</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=1 n-rows=7 -->
<object class="GtkGrid" id="container">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="row_spacing">6</property>
+ <property name="row-spacing">6</property>
<child>
- <object class="GtkRadioButton" id="verytight">
+ <object class="GtkToggleButton" id="verytight">
<property name="label" translatable="yes" context="fontworkcharacterspacingcontrol|RID_SVXSTR_CHARS_SPACING_VERY_TIGHT">_Very Tight</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
- <property name="group">normal</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
- <object class="GtkRadioButton" id="tight">
+ <object class="GtkToggleButton" id="tight">
<property name="label" translatable="yes" context="fontworkcharacterspacingcontrol|RID_SVXSTR_CHARS_SPACING_TIGHT">_Tight</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
- <property name="group">normal</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
- <object class="GtkRadioButton" id="normal">
+ <object class="GtkToggleButton" id="normal">
<property name="label" translatable="yes" context="fontworkcharacterspacingcontrol|RID_SVXSTR_CHARS_SPACING_NORMAL">_Normal</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
<property name="active">True</property>
- <property name="draw_indicator">True</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
- <object class="GtkRadioButton" id="loose">
+ <object class="GtkToggleButton" id="loose">
<property name="label" translatable="yes" context="fontworkcharacterspacingcontrol|RID_SVXSTR_CHARS_SPACING_LOOSE">_Loose</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
- <property name="group">normal</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
- <object class="GtkRadioButton" id="veryloose">
+ <object class="GtkToggleButton" id="veryloose">
<property name="label" translatable="yes" context="fontworkcharacterspacingcontrol|RID_SVXSTR_CHARS_SPACING_VERY_LOOSE">Very _Loose</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
- <property name="group">normal</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">4</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">4</property>
</packing>
</child>
<child>
- <object class="GtkRadioButton" id="custom">
+ <object class="GtkToggleButton" id="custom">
<property name="label" translatable="yes" context="fontworkcharacterspacingcontrol|RID_SVXSTR_CHARS_SPACING_CUSTOM">_Custom...</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
- <property name="group">normal</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">5</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">5</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="kernpairs">
<property name="label" translatable="yes" context="fontworkcharacterspacingcontrol|RID_SVXSTR_CHARS_SPACING_KERN_PAIRS">_Kern Character Pairs</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">6</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">6</property>
</packing>
</child>
</object>