diff options
author | Jim Raykowski <raykowj@gmail.com> | 2023-08-04 21:27:15 -0800 |
---|---|---|
committer | Jim Raykowski <raykowj@gmail.com> | 2023-08-16 07:50:25 +0200 |
commit | 717fa28e88f382ad86b2be2fdbc24f4f60bc524d (patch) | |
tree | 1b29a83762cf8878e5691f673dc885cf372c0ad1 | |
parent | 5fecd865303b3f0a2eeb0b9466d2bcf23cfce068 (diff) |
tdf#156538 Enhancement to show character information in the insert
special characters control
This patch makes a tooltip show when the mouse pointer is over a
character window in the special characters control. It also adds a
label that is used to display character information of the highlighted
character. Code for creating the character information text shown in
the tooltip and label was referenced from SvxCharacterMap.
Change-Id: I4b62e63b27310cbe9e9661ff51c2db206e9e3507
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155547
Tested-by: Jenkins
Reviewed-by: Jim Raykowski <raykowj@gmail.com>
-rw-r--r-- | include/sfx2/charwin.hxx | 7 | ||||
-rw-r--r-- | sfx2/inc/charmapcontrol.hxx | 3 | ||||
-rw-r--r-- | sfx2/source/control/charmapcontrol.cxx | 22 | ||||
-rw-r--r-- | sfx2/source/control/charwin.cxx | 39 | ||||
-rw-r--r-- | sfx2/uiconfig/ui/charmapcontrol.ui | 370 | ||||
-rw-r--r-- | solenv/sanitizers/ui/sfx.suppr | 1 |
6 files changed, 260 insertions, 182 deletions
diff --git a/include/sfx2/charwin.hxx b/include/sfx2/charwin.hxx index d0a8f86d2e51..75a6fad12a38 100644 --- a/include/sfx2/charwin.hxx +++ b/include/sfx2/charwin.hxx @@ -35,6 +35,7 @@ private: bool maHasInsert; OUString m_sText; + Link<SvxCharView*, void> maFocusInHdl; Link<SvxCharView*, void> maMouseClickHdl; Link<SvxCharView*, void> maClearClickHdl; Link<SvxCharView*, void> maClearAllClickHdl; @@ -44,6 +45,7 @@ private: virtual bool MouseButtonDown(const MouseEvent&) override; virtual void GetFocus() override; virtual void LoseFocus() override; + virtual OUString RequestHelp(tools::Rectangle&rHelpRect) override; virtual bool KeyInput(const KeyEvent&) override; virtual bool Command(const CommandEvent&) override; virtual void SetDrawingArea(weld::DrawingArea* pDrawingArea) override; @@ -54,6 +56,7 @@ public: vcl::Font const & GetFont() const { return maFont; } void SetText( const OUString& rText ); OUString const & GetText() const { return m_sText; } + OUString GetCharInfoText(); void SetHasInsert( bool bInsert ); void InsertCharToDoc(); @@ -61,6 +64,7 @@ public: Size get_preferred_size() const { return GetDrawingArea()->get_preferred_size(); } + void setFocusInHdl(const Link<SvxCharView*,void> &rLink); void setMouseClickHdl(const Link<SvxCharView*,void> &rLink); void setClearClickHdl(const Link<SvxCharView*,void> &rLink); void setClearAllClickHdl(const Link<SvxCharView*,void> &rLink); @@ -96,7 +100,8 @@ public: void init(bool bHasInsert, const Link<SvxCharView*,void> &rMouseClickHdl, const Link<void*,void> &rUpdateFavHdl, - const Link<void*,void> &rUpdateRecentHdl); + const Link<void*,void> &rUpdateRecentHdl, + const Link<SvxCharView *,void> &rFocusInHdl = Link<SvxCharView *,void>()); void getFavCharacterList(); void updateFavCharControl(); diff --git a/sfx2/inc/charmapcontrol.hxx b/sfx2/inc/charmapcontrol.hxx index c6045154583e..72f0328da2af 100644 --- a/sfx2/inc/charmapcontrol.hxx +++ b/sfx2/inc/charmapcontrol.hxx @@ -45,9 +45,12 @@ private: std::unique_ptr<weld::Label> m_xRecentLabel; std::unique_ptr<weld::Button> m_xDlgBtn; + std::unique_ptr<weld::Label> m_xCharInfoLabel; + DECL_LINK(CharFocusInHdl, SvxCharView*, void); DECL_LINK(CharClickHdl, SvxCharView*, void); DECL_LINK(OpenDlgHdl, weld::Button&, void); + DECL_LINK(DlgBtnFocusInHdl, weld::Widget&, void); DECL_LINK(UpdateRecentHdl, void*, void); }; diff --git a/sfx2/source/control/charmapcontrol.cxx b/sfx2/source/control/charmapcontrol.cxx index c71dbc8bb402..76e37174fd49 100644 --- a/sfx2/source/control/charmapcontrol.cxx +++ b/sfx2/source/control/charmapcontrol.cxx @@ -105,7 +105,8 @@ SfxCharmapContainer::SfxCharmapContainer(weld::Builder& rBuilder, const VclPtr<V void SfxCharmapContainer::init(bool bHasInsert, const Link<SvxCharView*,void> &rMouseClickHdl, const Link<void*, void>& rUpdateFavHdl, - const Link<void*, void>& rUpdateRecentHdl) + const Link<void*, void>& rUpdateRecentHdl, + const Link<SvxCharView*,void> &rFocusInHdl) { m_aUpdateFavHdl = rUpdateFavHdl; m_aUpdateRecentHdl = rUpdateRecentHdl; @@ -118,10 +119,12 @@ void SfxCharmapContainer::init(bool bHasInsert, const Link<SvxCharView*,void> &r for(int i = 0; i < 16; i++) { m_aRecentCharView[i].SetHasInsert(bHasInsert); + m_aRecentCharView[i].setFocusInHdl(rFocusInHdl); m_aRecentCharView[i].setMouseClickHdl(rMouseClickHdl); m_aRecentCharView[i].setClearClickHdl(LINK(this, SfxCharmapContainer, RecentClearClickHdl)); m_aRecentCharView[i].setClearAllClickHdl(LINK(this, SfxCharmapContainer, RecentClearAllClickHdl)); m_aFavCharView[i].SetHasInsert(bHasInsert); + m_aFavCharView[i].setFocusInHdl(rFocusInHdl); m_aFavCharView[i].setMouseClickHdl(rMouseClickHdl); m_aFavCharView[i].setClearClickHdl(LINK(this, SfxCharmapContainer, FavClearClickHdl)); m_aFavCharView[i].setClearAllClickHdl(LINK(this, SfxCharmapContainer, FavClearAllClickHdl)); @@ -135,11 +138,16 @@ SfxCharmapCtrl::SfxCharmapCtrl(CharmapPopup* pControl, weld::Widget* pParent) , m_aCharmapContents(*m_xBuilder, m_xVirDev, false) , m_xRecentLabel(m_xBuilder->weld_label("label2")) , m_xDlgBtn(m_xBuilder->weld_button("specialchardlg")) + , m_xCharInfoLabel(m_xBuilder->weld_label("charinfolabel")) { + m_xCharInfoLabel->set_size_request(-1, m_xCharInfoLabel->get_text_height() * 2); + m_aCharmapContents.init(false, LINK(this, SfxCharmapCtrl, CharClickHdl), - Link<void*,void>(), LINK(this, SfxCharmapCtrl, UpdateRecentHdl)); + Link<void*,void>(), LINK(this, SfxCharmapCtrl, UpdateRecentHdl), + LINK(this, SfxCharmapCtrl, CharFocusInHdl)); m_xDlgBtn->connect_clicked(LINK(this, SfxCharmapCtrl, OpenDlgHdl)); + m_xDlgBtn->connect_focus_in(LINK(this, SfxCharmapCtrl, DlgBtnFocusInHdl)); } SfxCharmapCtrl::~SfxCharmapCtrl() @@ -209,6 +217,11 @@ void SfxCharmapContainer::getRecentCharacterList() m_aRecentCharFontList.resize(nCommonLength); } +IMPL_LINK(SfxCharmapCtrl, CharFocusInHdl, SvxCharView*, pView, void) +{ + m_xCharInfoLabel->set_label(pView->GetCharInfoText()); +} + IMPL_LINK(SfxCharmapCtrl, CharClickHdl, SvxCharView*, pView, void) { m_xControl->EndPopupMode(); @@ -227,6 +240,11 @@ IMPL_LINK_NOARG(SfxCharmapCtrl, OpenDlgHdl, weld::Button&, void) } } +IMPL_LINK_NOARG(SfxCharmapCtrl, DlgBtnFocusInHdl, weld::Widget&, void) +{ + m_xCharInfoLabel->set_label(""); +} + void SfxCharmapCtrl::GrabFocus() { m_aCharmapContents.GrabFocusToFirstFavorite(); diff --git a/sfx2/source/control/charwin.cxx b/sfx2/source/control/charwin.cxx index b94d2bcd1e82..50c7099a84a7 100644 --- a/sfx2/source/control/charwin.cxx +++ b/sfx2/source/control/charwin.cxx @@ -29,6 +29,10 @@ #include <com/sun/star/beans/PropertyValue.hpp> +#include <o3tl/temporary.hxx> +#include <unicode/uchar.h> +#include <unicode/utypes.h> + using namespace com::sun::star; SvxCharView::SvxCharView(const VclPtr<VirtualDevice>& rVirDev) @@ -52,10 +56,41 @@ void SvxCharView::SetDrawingArea(weld::DrawingArea* pDrawingArea) mxVirDev->Pop(); } -void SvxCharView::GetFocus() { Invalidate(); } +void SvxCharView::GetFocus() +{ + Invalidate(); + if (maFocusInHdl.IsSet()) + maFocusInHdl.Call(this); +} void SvxCharView::LoseFocus() { Invalidate(); } +OUString SvxCharView::GetCharInfoText() +{ + OUString charValue = GetText(); + sal_UCS4 nDecimalValue = charValue.iterateCodePoints(&o3tl::temporary(sal_Int32(1)), -1); + /* get the character name */ + UErrorCode errorCode = U_ZERO_ERROR; + // icu has a private uprv_getMaxCharNameLength function which returns the max possible + // length of this property. Unicode 3.2 max char name length was 83 + char buffer[100]; + u_charName(nDecimalValue, U_UNICODE_CHAR_NAME, buffer, sizeof(buffer), &errorCode); + if (U_SUCCESS(errorCode)) + { + OUString aHexText = OUString::number(nDecimalValue, 16).toAsciiUpperCase(); + return charValue + u" " + OUString::createFromAscii(buffer) + u" U+" + aHexText; + } + return OUString(); +} + +OUString SvxCharView::RequestHelp(tools::Rectangle& rHelpRect) +{ + OUString sCharInfoText(GetCharInfoText()); + // Gtk3 requires a help rectangle be supplied for the tooltip to display, X11 does not. + mxVirDev->GetTextBoundRect(rHelpRect, sCharInfoText); + return sCharInfoText; +} + bool SvxCharView::MouseButtonDown(const MouseEvent& rMEvt) { if (rMEvt.IsLeft()) @@ -221,6 +256,8 @@ void SvxCharView::Paint(vcl::RenderContext& rRenderContext, const tools::Rectang rRenderContext.SetFont(aOrigFont); } +void SvxCharView::setFocusInHdl(const Link<SvxCharView*, void>& rLink) { maFocusInHdl = rLink; } + void SvxCharView::setMouseClickHdl(const Link<SvxCharView*, void>& rLink) { maMouseClickHdl = rLink; diff --git a/sfx2/uiconfig/ui/charmapcontrol.ui b/sfx2/uiconfig/ui/charmapcontrol.ui index 28a080a88433..24c6e8d00482 100644 --- a/sfx2/uiconfig/ui/charmapcontrol.ui +++ b/sfx2/uiconfig/ui/charmapcontrol.ui @@ -1,22 +1,22 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Generated with glade 3.36.0 --> +<!-- Generated with glade 3.40.0 --> <interface domain="sfx"> <requires lib="gtk+" version="3.20"/> <object class="GtkPopover" id="charmapctrl"> - <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> <property name="constrain-to">none</property> <child> <object class="GtkBox" id="container"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can-focus">False</property> <property name="orientation">vertical</property> <property name="spacing">6</property> <child> <object class="GtkLabel" id="label1"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can-focus">False</property> <property name="label" translatable="yes" context="charmapcontrol|label1">Favorites</property> </object> <packing> @@ -26,219 +26,219 @@ </packing> </child> <child> - <!-- n-columns=1 n-rows=1 --> + <!-- n-columns=6 n-rows=3 --> <object class="GtkGrid" id="favgrid"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can-focus">False</property> <property name="halign">start</property> - <property name="row_spacing">3</property> - <property name="column_spacing">3</property> + <property name="row-spacing">3</property> + <property name="column-spacing">3</property> <child> <object class="GtkDrawingArea" id="favchar1"> - <property name="width_request">35</property> - <property name="height_request">35</property> + <property name="width-request">35</property> + <property name="height-request">35</property> <property name="visible">True</property> - <property name="can_focus">True</property> + <property name="can-focus">True</property> <property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</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="GtkDrawingArea" id="favchar2"> - <property name="width_request">35</property> - <property name="height_request">35</property> + <property name="width-request">35</property> + <property name="height-request">35</property> <property name="visible">True</property> - <property name="can_focus">True</property> + <property name="can-focus">True</property> <property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property> </object> <packing> - <property name="left_attach">1</property> - <property name="top_attach">0</property> + <property name="left-attach">1</property> + <property name="top-attach">0</property> </packing> </child> <child> <object class="GtkDrawingArea" id="favchar4"> - <property name="width_request">35</property> - <property name="height_request">35</property> + <property name="width-request">35</property> + <property name="height-request">35</property> <property name="visible">True</property> - <property name="can_focus">True</property> + <property name="can-focus">True</property> <property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property> </object> <packing> - <property name="left_attach">3</property> - <property name="top_attach">0</property> + <property name="left-attach">3</property> + <property name="top-attach">0</property> </packing> </child> <child> <object class="GtkDrawingArea" id="favchar3"> - <property name="width_request">35</property> - <property name="height_request">35</property> + <property name="width-request">35</property> + <property name="height-request">35</property> <property name="visible">True</property> - <property name="can_focus">True</property> + <property name="can-focus">True</property> <property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property> </object> <packing> - <property name="left_attach">2</property> - <property name="top_attach">0</property> + <property name="left-attach">2</property> + <property name="top-attach">0</property> </packing> </child> <child> <object class="GtkDrawingArea" id="favchar5"> - <property name="width_request">35</property> - <property name="height_request">35</property> + <property name="width-request">35</property> + <property name="height-request">35</property> <property name="visible">True</property> - <property name="can_focus">True</property> + <property name="can-focus">True</property> <property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property> </object> <packing> - <property name="left_attach">4</property> - <property name="top_attach">0</property> + <property name="left-attach">4</property> + <property name="top-attach">0</property> </packing> </child> <child> <object class="GtkDrawingArea" id="favchar6"> - <property name="width_request">35</property> - <property name="height_request">35</property> + <property name="width-request">35</property> + <property name="height-request">35</property> <property name="visible">True</property> - <property name="can_focus">True</property> + <property name="can-focus">True</property> <property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property> </object> <packing> - <property name="left_attach">5</property> - <property name="top_attach">0</property> + <property name="left-attach">5</property> + <property name="top-attach">0</property> </packing> </child> <child> <object class="GtkDrawingArea" id="favchar7"> - <property name="width_request">35</property> - <property name="height_request">35</property> + <property name="width-request">35</property> + <property name="height-request">35</property> <property name="visible">True</property> - <property name="can_focus">True</property> + <property name="can-focus">True</property> <property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</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="GtkDrawingArea" id="favchar8"> - <property name="width_request">35</property> - <property name="height_request">35</property> + <property name="width-request">35</property> + <property name="height-request">35</property> <property name="visible">True</property> - <property name="can_focus">True</property> + <property name="can-focus">True</property> <property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property> </object> <packing> - <property name="left_attach">1</property> - <property name="top_attach">1</property> + <property name="left-attach">1</property> + <property name="top-attach">1</property> </packing> </child> <child> <object class="GtkDrawingArea" id="favchar9"> - <property name="width_request">35</property> - <property name="height_request">35</property> + <property name="width-request">35</property> + <property name="height-request">35</property> <property name="visible">True</property> - <property name="can_focus">True</property> + <property name="can-focus">True</property> <property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property> </object> <packing> - <property name="left_attach">2</property> - <property name="top_attach">1</property> + <property name="left-attach">2</property> + <property name="top-attach">1</property> </packing> </child> <child> <object class="GtkDrawingArea" id="favchar10"> - <property name="width_request">35</property> - <property name="height_request">35</property> + <property name="width-request">35</property> + <property name="height-request">35</property> <property name="visible">True</property> - <property name="can_focus">True</property> + <property name="can-focus">True</property> <property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property> </object> <packing> - <property name="left_attach">3</property> - <property name="top_attach">1</property> + <property name="left-attach">3</property> + <property name="top-attach">1</property> </packing> </child> <child> <object class="GtkDrawingArea" id="favchar11"> - <property name="width_request">35</property> - <property name="height_request">35</property> + <property name="width-request">35</property> + <property name="height-request">35</property> <property name="visible">True</property> - <property name="can_focus">True</property> + <property name="can-focus">True</property> <property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property> </object> <packing> - <property name="left_attach">4</property> - <property name="top_attach">1</property> + <property name="left-attach">4</property> + <property name="top-attach">1</property> </packing> </child> <child> <object class="GtkDrawingArea" id="favchar12"> - <property name="width_request">35</property> - <property name="height_request">35</property> + <property name="width-request">35</property> + <property name="height-request">35</property> <property name="visible">True</property> - <property name="can_focus">True</property> + <property name="can-focus">True</property> <property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property> </object> <packing> - <property name="left_attach">5</property> - <property name="top_attach">1</property> + <property name="left-attach">5</property> + <property name="top-attach">1</property> </packing> </child> <child> <object class="GtkDrawingArea" id="favchar13"> - <property name="width_request">35</property> - <property name="height_request">35</property> + <property name="width-request">35</property> + <property name="height-request">35</property> <property name="visible">True</property> - <property name="can_focus">True</property> + <property name="can-focus">True</property> <property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</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="GtkDrawingArea" id="favchar14"> - <property name="width_request">35</property> - <property name="height_request">35</property> + <property name="width-request">35</property> + <property name="height-request">35</property> <property name="visible">True</property> - <property name="can_focus">True</property> + <property name="can-focus">True</property> <property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property> </object> <packing> - <property name="left_attach">1</property> - <property name="top_attach">2</property> + <property name="left-attach">1</property> + <property name="top-attach">2</property> </packing> </child> <child> <object class="GtkDrawingArea" id="favchar15"> - <property name="width_request">35</property> - <property name="height_request">35</property> + <property name="width-request">35</property> + <property name="height-request">35</property> <property name="visible">True</property> - <property name="can_focus">True</property> + <property name="can-focus">True</property> <property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property> </object> <packing> - <property name="left_attach">2</property> - <property name="top_attach">2</property> + <property name="left-attach">2</property> + <property name="top-attach">2</property> </packing> </child> <child> <object class="GtkDrawingArea" id="favchar16"> - <property name="width_request">35</property> - <property name="height_request">35</property> + <property name="width-request">35</property> + <property name="height-request">35</property> <property name="visible">True</property> - <property name="can_focus">True</property> + <property name="can-focus">True</property> <property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property> </object> <packing> - <property name="left_attach">3</property> - <property name="top_attach">2</property> + <property name="left-attach">3</property> + <property name="top-attach">2</property> </packing> </child> <child> @@ -257,7 +257,7 @@ <child> <object class="GtkLabel" id="label2"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can-focus">False</property> <property name="label" translatable="yes" context="charmapcontrol|label2">Recent</property> </object> <packing> @@ -267,219 +267,219 @@ </packing> </child> <child> - <!-- n-columns=1 n-rows=1 --> + <!-- n-columns=6 n-rows=3 --> <object class="GtkGrid" id="viewgrid"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can-focus">False</property> <property name="halign">start</property> - <property name="row_spacing">3</property> - <property name="column_spacing">3</property> + <property name="row-spacing">3</property> + <property name="column-spacing">3</property> <child> <object class="GtkDrawingArea" id="viewchar1"> - <property name="width_request">35</property> - <property name="height_request">35</property> + <property name="width-request">35</property> + <property name="height-request">35</property> <property name="visible">True</property> - <property name="can_focus">True</property> + <property name="can-focus">True</property> <property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</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="GtkDrawingArea" id="viewchar2"> - <property name="width_request">35</property> - <property name="height_request">35</property> + <property name="width-request">35</property> + <property name="height-request">35</property> <property name="visible">True</property> - <property name="can_focus">True</property> + <property name="can-focus">True</property> <property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property> </object> <packing> - <property name="left_attach">1</property> - <property name="top_attach">0</property> + <property name="left-attach">1</property> + <property name="top-attach">0</property> </packing> </child> <child> <object class="GtkDrawingArea" id="viewchar4"> - <property name="width_request">35</property> - <property name="height_request">35</property> + <property name="width-request">35</property> + <property name="height-request">35</property> <property name="visible">True</property> - <property name="can_focus">True</property> + <property name="can-focus">True</property> <property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property> </object> <packing> - <property name="left_attach">3</property> - <property name="top_attach">0</property> + <property name="left-attach">3</property> + <property name="top-attach">0</property> </packing> </child> <child> <object class="GtkDrawingArea" id="viewchar3"> - <property name="width_request">35</property> - <property name="height_request">35</property> + <property name="width-request">35</property> + <property name="height-request">35</property> <property name="visible">True</property> - <property name="can_focus">True</property> + <property name="can-focus">True</property> <property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property> </object> <packing> - <property name="left_attach">2</property> - <property name="top_attach">0</property> + <property name="left-attach">2</property> + <property name="top-attach">0</property> </packing> </child> <child> <object class="GtkDrawingArea" id="viewchar5"> - <property name="width_request">35</property> - <property name="height_request">35</property> + <property name="width-request">35</property> + <property name="height-request">35</property> <property name="visible">True</property> - <property name="can_focus">True</property> + <property name="can-focus">True</property> <property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property> </object> <packing> - <property name="left_attach">4</property> - <property name="top_attach">0</property> + <property name="left-attach">4</property> + <property name="top-attach">0</property> </packing> </child> <child> <object class="GtkDrawingArea" id="viewchar6"> - <property name="width_request">35</property> - <property name="height_request">35</property> + <property name="width-request">35</property> + <property name="height-request">35</property> <property name="visible">True</property> - <property name="can_focus">True</property> + <property name="can-focus">True</property> <property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property> </object> <packing> - <property name="left_attach">5</property> - <property name="top_attach">0</property> + <property name="left-attach">5</property> + <property name="top-attach">0</property> </packing> </child> <child> <object class="GtkDrawingArea" id="viewchar16"> - <property name="width_request">35</property> - <property name="height_request">35</property> + <property name="width-request">35</property> + <property name="height-request">35</property> <property name="visible">True</property> - <property name="can_focus">True</property> + <property name="can-focus">True</property> <property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property> </object> <packing> - <property name="left_attach">3</property> - <property name="top_attach">2</property> + <property name="left-attach">3</property> + <property name="top-attach">2</property> </packing> </child> <child> <object class="GtkDrawingArea" id="viewchar15"> - <property name="width_request">35</property> - <property name="height_request">35</property> + <property name="width-request">35</property> + <property name="height-request">35</property> <property name="visible">True</property> - <property name="can_focus">True</property> + <property name="can-focus">True</property> <property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property> </object> <packing> - <property name="left_attach">2</property> - <property name="top_attach">2</property> + <property name="left-attach">2</property> + <property name="top-attach">2</property> </packing> </child> <child> <object class="GtkDrawingArea" id="viewchar14"> - <property name="width_request">35</property> - <property name="height_request">35</property> + <property name="width-request">35</property> + <property name="height-request">35</property> <property name="visible">True</property> - <property name="can_focus">True</property> + <property name="can-focus">True</property> <property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property> </object> <packing> - <property name="left_attach">1</property> - <property name="top_attach">2</property> + <property name="left-attach">1</property> + <property name="top-attach">2</property> </packing> </child> <child> <object class="GtkDrawingArea" id="viewchar13"> - <property name="width_request">35</property> - <property name="height_request">35</property> + <property name="width-request">35</property> + <property name="height-request">35</property> <property name="visible">True</property> - <property name="can_focus">True</property> + <property name="can-focus">True</property> <property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</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="GtkDrawingArea" id="viewchar12"> - <property name="width_request">35</property> - <property name="height_request">35</property> + <property name="width-request">35</property> + <property name="height-request">35</property> <property name="visible">True</property> - <property name="can_focus">True</property> + <property name="can-focus">True</property> <property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property> </object> <packing> - <property name="left_attach">5</property> - <property name="top_attach">1</property> + <property name="left-attach">5</property> + <property name="top-attach">1</property> </packing> </child> <child> <object class="GtkDrawingArea" id="viewchar11"> - <property name="width_request">35</property> - <property name="height_request">35</property> + <property name="width-request">35</property> + <property name="height-request">35</property> <property name="visible">True</property> - <property name="can_focus">True</property> + <property name="can-focus">True</property> <property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property> </object> <packing> - <property name="left_attach">4</property> - <property name="top_attach">1</property> + <property name="left-attach">4</property> + <property name="top-attach">1</property> </packing> </child> <child> <object class="GtkDrawingArea" id="viewchar10"> - <property name="width_request">35</property> - <property name="height_request">35</property> + <property name="width-request">35</property> + <property name="height-request">35</property> <property name="visible">True</property> - <property name="can_focus">True</property> + <property name="can-focus">True</property> <property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property> </object> <packing> - <property name="left_attach">3</property> - <property name="top_attach">1</property> + <property name="left-attach">3</property> + <property name="top-attach">1</property> </packing> </child> <child> <object class="GtkDrawingArea" id="viewchar9"> - <property name="width_request">35</property> - <property name="height_request">35</property> + <property name="width-request">35</property> + <property name="height-request">35</property> <property name="visible">True</property> - <property name="can_focus">True</property> + <property name="can-focus">True</property> <property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property> </object> <packing> - <property name="left_attach">2</property> - <property name="top_attach">1</property> + <property name="left-attach">2</property> + <property name="top-attach">1</property> </packing> </child> <child> <object class="GtkDrawingArea" id="viewchar8"> - <property name="width_request">35</property> - <property name="height_request">35</property> + <property name="width-request">35</property> + <property name="height-request">35</property> <property name="visible">True</property> - <property name="can_focus">True</property> + <property name="can-focus">True</property> <property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property> </object> <packing> - <property name="left_attach">1</property> - <property name="top_attach">1</property> + <property name="left-attach">1</property> + <property name="top-attach">1</property> </packing> </child> <child> <object class="GtkDrawingArea" id="viewchar7"> - <property name="width_request">35</property> - <property name="height_request">35</property> + <property name="width-request">35</property> + <property name="height-request">35</property> <property name="visible">True</property> - <property name="can_focus">True</property> + <property name="can-focus">True</property> <property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</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> @@ -496,16 +496,30 @@ </packing> </child> <child> + <object class="GtkLabel" id="charinfolabel"> + <property name="visible">True</property> + <property name="can-focus">False</property> + <property name="justify">center</property> + <property name="wrap">True</property> + <property name="yalign">0.5</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">4</property> + </packing> + </child> + <child> <object class="GtkButton" id="specialchardlg"> <property name="label" translatable="yes" context="charmapcontrol|specialchardlg">More Characters…</property> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">True</property> + <property name="can-focus">True</property> + <property name="receives-default">True</property> </object> <packing> <property name="expand">False</property> <property name="fill">True</property> - <property name="position">4</property> + <property name="position">5</property> </packing> </child> </object> diff --git a/solenv/sanitizers/ui/sfx.suppr b/solenv/sanitizers/ui/sfx.suppr index 0eb7215e911a..fdcd03fb41c2 100644 --- a/solenv/sanitizers/ui/sfx.suppr +++ b/solenv/sanitizers/ui/sfx.suppr @@ -1,6 +1,7 @@ sfx2/uiconfig/ui/bookmarkdialog.ui://GtkLabel[@id='alttitle'] orphan-label sfx2/uiconfig/ui/charmapcontrol.ui://GtkLabel[@id='label1'] orphan-label sfx2/uiconfig/ui/charmapcontrol.ui://GtkLabel[@id='label2'] orphan-label +sfx2/uiconfig/ui/charmapcontrol.ui://GtkLabel[@id='charinfolabel'] orphan-label sfx2/uiconfig/ui/checkin.ui://GtkLabel[@id='label2'] orphan-label sfx2/uiconfig/ui/checkin.ui://GtkTextView[@id='VersionComment'] no-labelled-by sfx2/uiconfig/ui/cmisline.ui://GtkLabel[@id='name'] orphan-label |