diff options
author | Caolán McNamara <caolanm@redhat.com> | 2020-01-13 08:50:56 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2020-01-14 12:15:37 +0100 |
commit | 1c6728a7b52439ed09ed1576517b8037479de1a6 (patch) | |
tree | 25331b04320fb08e938804a0fb19d536f7c2a505 /sfx2 | |
parent | 94c1f5cfb96a826220b64608cf0ada76d3bdde31 (diff) |
weld SfxCharmapCtrl
Change-Id: I36bb2d1b23fdb5afa4e5ab85e6989a95474e874e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86678
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'sfx2')
-rw-r--r-- | sfx2/source/control/charmapcontrol.cxx | 219 | ||||
-rw-r--r-- | sfx2/source/dialog/charmappopup.cxx | 15 | ||||
-rw-r--r-- | sfx2/uiconfig/ui/charmapcontrol.ui | 180 |
3 files changed, 218 insertions, 196 deletions
diff --git a/sfx2/source/control/charmapcontrol.cxx b/sfx2/source/control/charmapcontrol.cxx index fe44619b2f3a..152aa78c8ad2 100644 --- a/sfx2/source/control/charmapcontrol.cxx +++ b/sfx2/source/control/charmapcontrol.cxx @@ -26,58 +26,83 @@ using namespace css; -SfxCharmapCtrl::SfxCharmapCtrl(CharmapPopup* pControl, vcl::Window* pParent) - : ToolbarPopup(pControl->getFrameInterface(), pParent, "charmapctrl", "sfx/ui/charmapcontrol.ui") +SfxCharmapCtrl::SfxCharmapCtrl(CharmapPopup* pControl, weld::Widget* pParent) + : WeldToolbarPopup(pControl->getFrameInterface(), pParent, "sfx/ui/charmapcontrol.ui", "charmapctrl") + , m_xControl(pControl) + , m_xVirDev(VclPtr<VirtualDevice>::Create()) + , m_aRecentCharView{SvxCharView(m_xVirDev), + SvxCharView(m_xVirDev), + SvxCharView(m_xVirDev), + SvxCharView(m_xVirDev), + SvxCharView(m_xVirDev), + SvxCharView(m_xVirDev), + SvxCharView(m_xVirDev), + SvxCharView(m_xVirDev), + SvxCharView(m_xVirDev), + SvxCharView(m_xVirDev), + SvxCharView(m_xVirDev), + SvxCharView(m_xVirDev), + SvxCharView(m_xVirDev), + SvxCharView(m_xVirDev), + SvxCharView(m_xVirDev), + SvxCharView(m_xVirDev)} + , m_aFavCharView{SvxCharView(m_xVirDev), + SvxCharView(m_xVirDev), + SvxCharView(m_xVirDev), + SvxCharView(m_xVirDev), + SvxCharView(m_xVirDev), + SvxCharView(m_xVirDev), + SvxCharView(m_xVirDev), + SvxCharView(m_xVirDev), + SvxCharView(m_xVirDev), + SvxCharView(m_xVirDev), + SvxCharView(m_xVirDev), + SvxCharView(m_xVirDev), + SvxCharView(m_xVirDev), + SvxCharView(m_xVirDev), + SvxCharView(m_xVirDev), + SvxCharView(m_xVirDev)} + , m_xDlgBtn(m_xBuilder->weld_button("specialchardlg")) + , m_xRecentCharView{std::make_unique<weld::CustomWeld>(*m_xBuilder, "viewchar1", m_aRecentCharView[0]), + std::make_unique<weld::CustomWeld>(*m_xBuilder, "viewchar2", m_aRecentCharView[1]), + std::make_unique<weld::CustomWeld>(*m_xBuilder, "viewchar3", m_aRecentCharView[2]), + std::make_unique<weld::CustomWeld>(*m_xBuilder, "viewchar4", m_aRecentCharView[3]), + std::make_unique<weld::CustomWeld>(*m_xBuilder, "viewchar5", m_aRecentCharView[4]), + std::make_unique<weld::CustomWeld>(*m_xBuilder, "viewchar6", m_aRecentCharView[5]), + std::make_unique<weld::CustomWeld>(*m_xBuilder, "viewchar7", m_aRecentCharView[6]), + std::make_unique<weld::CustomWeld>(*m_xBuilder, "viewchar8", m_aRecentCharView[7]), + std::make_unique<weld::CustomWeld>(*m_xBuilder, "viewchar9", m_aRecentCharView[8]), + std::make_unique<weld::CustomWeld>(*m_xBuilder, "viewchar10", m_aRecentCharView[9]), + std::make_unique<weld::CustomWeld>(*m_xBuilder, "viewchar11", m_aRecentCharView[10]), + std::make_unique<weld::CustomWeld>(*m_xBuilder, "viewchar12", m_aRecentCharView[11]), + std::make_unique<weld::CustomWeld>(*m_xBuilder, "viewchar13", m_aRecentCharView[12]), + std::make_unique<weld::CustomWeld>(*m_xBuilder, "viewchar14", m_aRecentCharView[13]), + std::make_unique<weld::CustomWeld>(*m_xBuilder, "viewchar15", m_aRecentCharView[14]), + std::make_unique<weld::CustomWeld>(*m_xBuilder, "viewchar16", m_aRecentCharView[15])} + , m_xFavCharView{std::make_unique<weld::CustomWeld>(*m_xBuilder, "favchar1", m_aFavCharView[0]), + std::make_unique<weld::CustomWeld>(*m_xBuilder, "favchar2", m_aFavCharView[1]), + std::make_unique<weld::CustomWeld>(*m_xBuilder, "favchar3", m_aFavCharView[2]), + std::make_unique<weld::CustomWeld>(*m_xBuilder, "favchar4", m_aFavCharView[3]), + std::make_unique<weld::CustomWeld>(*m_xBuilder, "favchar5", m_aFavCharView[4]), + std::make_unique<weld::CustomWeld>(*m_xBuilder, "favchar6", m_aFavCharView[5]), + std::make_unique<weld::CustomWeld>(*m_xBuilder, "favchar7", m_aFavCharView[6]), + std::make_unique<weld::CustomWeld>(*m_xBuilder, "favchar8", m_aFavCharView[7]), + std::make_unique<weld::CustomWeld>(*m_xBuilder, "favchar9", m_aFavCharView[8]), + std::make_unique<weld::CustomWeld>(*m_xBuilder, "favchar10", m_aFavCharView[9]), + std::make_unique<weld::CustomWeld>(*m_xBuilder, "favchar11", m_aFavCharView[10]), + std::make_unique<weld::CustomWeld>(*m_xBuilder, "favchar12", m_aFavCharView[11]), + std::make_unique<weld::CustomWeld>(*m_xBuilder, "favchar13", m_aFavCharView[12]), + std::make_unique<weld::CustomWeld>(*m_xBuilder, "favchar14", m_aFavCharView[13]), + std::make_unique<weld::CustomWeld>(*m_xBuilder, "favchar15", m_aFavCharView[14]), + std::make_unique<weld::CustomWeld>(*m_xBuilder, "favchar16", m_aFavCharView[15])} { - get( m_pRecentCharView[0], "viewchar1" ); - get( m_pRecentCharView[1], "viewchar2" ); - get( m_pRecentCharView[2], "viewchar3" ); - get( m_pRecentCharView[3], "viewchar4" ); - get( m_pRecentCharView[4], "viewchar5" ); - get( m_pRecentCharView[5], "viewchar6" ); - get( m_pRecentCharView[6], "viewchar7" ); - get( m_pRecentCharView[7], "viewchar8" ); - get( m_pRecentCharView[8], "viewchar9" ); - get( m_pRecentCharView[9], "viewchar10" ); - get( m_pRecentCharView[10], "viewchar11" ); - get( m_pRecentCharView[11], "viewchar12" ); - get( m_pRecentCharView[12], "viewchar13" ); - get( m_pRecentCharView[13], "viewchar14" ); - get( m_pRecentCharView[14], "viewchar15" ); - get( m_pRecentCharView[15], "viewchar16" ); - - get( m_pFavCharView[0], "favchar1" ); - get( m_pFavCharView[1], "favchar2" ); - get( m_pFavCharView[2], "favchar3" ); - get( m_pFavCharView[3], "favchar4" ); - get( m_pFavCharView[4], "favchar5" ); - get( m_pFavCharView[5], "favchar6" ); - get( m_pFavCharView[6], "favchar7" ); - get( m_pFavCharView[7], "favchar8" ); - get( m_pFavCharView[8], "favchar9" ); - get( m_pFavCharView[9], "favchar10" ); - get( m_pFavCharView[10], "favchar11" ); - get( m_pFavCharView[11], "favchar12" ); - get( m_pFavCharView[12], "favchar13" ); - get( m_pFavCharView[13], "favchar14" ); - get( m_pFavCharView[14], "favchar15" ); - get( m_pFavCharView[15], "favchar16" ); - - get( maDlgBtn, "specialchardlg"); - for(int i = 0; i < 16; i++) { - m_pRecentCharView[i]->SetStyle(m_pRecentCharView[i]->GetStyle() | WB_GROUP); - m_pRecentCharView[i]->setMouseClickHdl(LINK(this,SfxCharmapCtrl, CharClickHdl)); - m_pRecentCharView[i]->SetGetFocusHdl(LINK(this,SfxCharmapCtrl, FocusHdl)); - m_pRecentCharView[i]->SetLoseFocusHdl(LINK(this,SfxCharmapCtrl, FocusHdl)); - m_pFavCharView[i]->SetStyle(m_pFavCharView[i]->GetStyle() | WB_GROUP); - m_pFavCharView[i]->setMouseClickHdl(LINK(this,SfxCharmapCtrl, CharClickHdl)); - m_pFavCharView[i]->SetGetFocusHdl(LINK(this,SfxCharmapCtrl, FocusHdl)); - m_pFavCharView[i]->SetLoseFocusHdl(LINK(this,SfxCharmapCtrl, FocusHdl)); + m_aRecentCharView[i].setMouseClickHdl(LINK(this,SfxCharmapCtrl, CharClickHdl)); + m_aFavCharView[i].setMouseClickHdl(LINK(this,SfxCharmapCtrl, CharClickHdl)); } - maDlgBtn->SetClickHdl(LINK(this, SfxCharmapCtrl, OpenDlgHdl)); + m_xDlgBtn->connect_clicked(LINK(this, SfxCharmapCtrl, OpenDlgHdl)); getRecentCharacterList(); updateRecentCharControl(); @@ -87,130 +112,90 @@ SfxCharmapCtrl::SfxCharmapCtrl(CharmapPopup* pControl, vcl::Window* pParent) SfxCharmapCtrl::~SfxCharmapCtrl() { - disposeOnce(); -} - -void SfxCharmapCtrl::dispose() -{ - for(int i = 0; i < 16; i++) - m_pRecentCharView[i].clear(); - - maRecentCharList.clear(); - maRecentCharFontList.clear(); - maDlgBtn.clear(); - - ToolbarPopup::dispose(); } void SfxCharmapCtrl::getFavCharacterList() { //retrieve recent character list css::uno::Sequence< OUString > rFavCharList( officecfg::Office::Common::FavoriteCharacters::FavoriteCharacterList::get() ); - std::copy(rFavCharList.begin(), rFavCharList.end(), std::back_inserter(maFavCharList)); + std::copy(rFavCharList.begin(), rFavCharList.end(), std::back_inserter(m_aFavCharList)); //retrieve recent character font list css::uno::Sequence< OUString > rFavCharFontList( officecfg::Office::Common::FavoriteCharacters::FavoriteCharacterFontList::get() ); - std::copy(rFavCharFontList.begin(), rFavCharFontList.end(), std::back_inserter(maFavCharFontList)); + std::copy(rFavCharFontList.begin(), rFavCharFontList.end(), std::back_inserter(m_aFavCharFontList)); } void SfxCharmapCtrl::updateFavCharControl() { int i = 0; - for ( std::deque< OUString >::iterator it = maFavCharList.begin(), it2 = maFavCharFontList.begin(); - it != maFavCharList.end() || it2 != maFavCharFontList.end(); + for ( std::deque< OUString >::iterator it = m_aFavCharList.begin(), it2 = m_aFavCharFontList.begin(); + it != m_aFavCharList.end() || it2 != m_aFavCharFontList.end(); ++it, ++it2, i++) { - m_pFavCharView[i]->SetText(*it); - vcl::Font rFont = m_pFavCharView[i]->GetControlFont(); + m_aFavCharView[i].SetText(*it); + vcl::Font rFont = m_aFavCharView[i].GetFont(); rFont.SetFamilyName( *it2 ); - m_pFavCharView[i]->SetFont(rFont); - m_pFavCharView[i]->Show(); + m_aFavCharView[i].SetFont(rFont); + m_aFavCharView[i].Show(); } for(; i < 16 ; i++) { - m_pFavCharView[i]->SetText(OUString()); - m_pFavCharView[i]->Hide(); + m_aFavCharView[i].SetText(OUString()); + m_aFavCharView[i].Hide(); } } - void SfxCharmapCtrl::getRecentCharacterList() { //retrieve recent character list css::uno::Sequence< OUString > rRecentCharList( officecfg::Office::Common::RecentCharacters::RecentCharacterList::get() ); - std::copy(rRecentCharList.begin(), rRecentCharList.end(), std::back_inserter(maRecentCharList)); + std::copy(rRecentCharList.begin(), rRecentCharList.end(), std::back_inserter(m_aRecentCharList)); //retrieve recent character font list css::uno::Sequence< OUString > rRecentCharFontList( officecfg::Office::Common::RecentCharacters::RecentCharacterFontList::get() ); - std::copy(rRecentCharFontList.begin(), rRecentCharFontList.end(), std::back_inserter(maRecentCharFontList)); + std::copy(rRecentCharFontList.begin(), rRecentCharFontList.end(), std::back_inserter(m_aRecentCharFontList)); } - void SfxCharmapCtrl::updateRecentCharControl() { int i = 0; - for ( std::deque< OUString >::iterator it = maRecentCharList.begin(), it2 = maRecentCharFontList.begin(); - it != maRecentCharList.end() || it2 != maRecentCharFontList.end(); + for ( std::deque< OUString >::iterator it = m_aRecentCharList.begin(), it2 = m_aRecentCharFontList.begin(); + it != m_aRecentCharList.end() || it2 != m_aRecentCharFontList.end(); ++it, ++it2, i++) { - m_pRecentCharView[i]->SetText(*it); - vcl::Font rFont = m_pRecentCharView[i]->GetControlFont(); + m_aRecentCharView[i].SetText(*it); + vcl::Font rFont = m_aRecentCharView[i].GetFont(); rFont.SetFamilyName( *it2 ); - m_pRecentCharView[i]->SetFont(rFont); - m_pRecentCharView[i]->Show(); + m_aRecentCharView[i].SetFont(rFont); + m_aRecentCharView[i].Show(); } for(; i < 16 ; i++) { - m_pRecentCharView[i]->SetText(OUString()); - m_pRecentCharView[i]->Hide(); - } -} - - -bool SfxCharmapCtrl::EventNotify( NotifyEvent& rNEvt ) -{ - if ( maDlgBtn->HasFocus() && rNEvt.GetType() == MouseNotifyEvent::KEYINPUT ) - { - const vcl::KeyCode& rKey = rNEvt.GetKeyEvent()->GetKeyCode(); - const sal_uInt16 nCode = rKey.GetCode(); - if ( nCode != KEY_TAB && nCode != KEY_RETURN && nCode != KEY_SPACE && nCode != KEY_ESCAPE ) - { - return true; - } - if ( mbNeedsInit && nCode == KEY_TAB ) - { - for(int i = 0; i < 16; i++) - { - m_pRecentCharView[i]->set_property( "can-focus", "true" ); - m_pFavCharView[i]->set_property( "can-focus", "true" ); - } - mbNeedsInit = false; - } + m_aRecentCharView[i].SetText(OUString()); + m_aRecentCharView[i].Hide(); } - return ToolbarPopup::EventNotify( rNEvt ); } - -IMPL_STATIC_LINK(SfxCharmapCtrl, FocusHdl, Control&, pItem, void) +IMPL_LINK(SfxCharmapCtrl, CharClickHdl, SvxCharView*, pView, void) { - pItem.Invalidate(); -} + m_xControl->EndPopupMode(); - -IMPL_LINK(SfxCharmapCtrl, CharClickHdl, SvxCharViewControl*, rView, void) -{ - rView->InsertCharToDoc(); - Close(); + pView->InsertCharToDoc(); } -IMPL_LINK_NOARG(SfxCharmapCtrl, OpenDlgHdl, Button*, void) +IMPL_LINK_NOARG(SfxCharmapCtrl, OpenDlgHdl, weld::Button&, void) { - Close(); + m_xControl->EndPopupMode(); uno::Reference<frame::XFrame> xFrame = SfxViewFrame::Current()->GetFrame().GetFrameInterface(); comphelper::dispatchCommand(".uno:InsertSymbol", xFrame, {}); } +void SfxCharmapCtrl::GrabFocus() +{ + m_aFavCharView[0].GrabFocus(); +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sfx2/source/dialog/charmappopup.cxx b/sfx2/source/dialog/charmappopup.cxx index 330012c176b9..661f7ffb976e 100644 --- a/sfx2/source/dialog/charmappopup.cxx +++ b/sfx2/source/dialog/charmappopup.cxx @@ -19,6 +19,7 @@ #include <sfx2/charmappopup.hxx> #include <sfx2/charmapcontrol.hxx> #include <vcl/toolbox.hxx> +#include <vcl/weld.hxx> CharmapPopup::CharmapPopup(const css::uno::Reference<css::uno::XComponentContext>& rContext) : PopupWindowController(rContext, nullptr, OUString()) @@ -39,9 +40,19 @@ void CharmapPopup::initialize( const css::uno::Sequence< css::uno::Any >& rArgum pToolBox->SetItemBits(nId, ToolBoxItemBits::DROPDOWNONLY | pToolBox->GetItemBits(nId)); } -VclPtr<vcl::Window> CharmapPopup::createPopupWindow(vcl::Window* pParent) +std::unique_ptr<WeldToolbarPopup> CharmapPopup::weldPopupWindow() { - return VclPtr<SfxCharmapCtrl>::Create(this, pParent); + return std::make_unique<SfxCharmapCtrl>(this, m_pToolbar); +} + +VclPtr<vcl::Window> CharmapPopup::createPopupWindow( vcl::Window* pParent ) +{ + mxInterimPopover = VclPtr<InterimToolbarPopup>::Create(getFrameInterface(), pParent, + std::make_unique<SfxCharmapCtrl>(this, pParent->GetFrameWeld())); + + mxInterimPopover->Show(); + + return mxInterimPopover; } OUString CharmapPopup::getImplementationName() diff --git a/sfx2/uiconfig/ui/charmapcontrol.ui b/sfx2/uiconfig/ui/charmapcontrol.ui index 9ffe5841a6a8..20b37841a8c5 100644 --- a/sfx2/uiconfig/ui/charmapcontrol.ui +++ b/sfx2/uiconfig/ui/charmapcontrol.ui @@ -1,22 +1,15 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Generated with glade 3.18.3 --> +<!-- Generated with glade 3.22.1 --> <interface domain="sfx"> <requires lib="gtk+" version="3.18"/> - <object class="GtkWindow" id="charmapctrl"> + <object class="GtkPopover" id="charmapctrl"> <property name="can_focus">False</property> - <property name="resizable">False</property> - <property name="destroy_with_parent">True</property> - <property name="type_hint">popup-menu</property> - <property name="skip_pager_hint">True</property> - <property name="deletable">False</property> + <property name="no_show_all">True</property> + <property name="border_width">4</property> <child> - <object class="GtkBox" id="box1"> + <object class="GtkBox" id="container"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="margin_left">3</property> - <property name="margin_right">3</property> - <property name="margin_top">3</property> - <property name="margin_bottom">3</property> <property name="resize_mode">queue</property> <property name="orientation">vertical</property> <property name="spacing">6</property> @@ -36,12 +29,14 @@ <object class="GtkGrid" id="grid1"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="halign">start</property> <child> - <object class="sfxlo-SvxCharViewControl" id="favchar1"> + <object class="GtkDrawingArea" id="favchar1"> <property name="width_request">35</property> <property name="height_request">35</property> <property name="visible">True</property> - <property name="can_focus">False</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> @@ -49,11 +44,12 @@ </packing> </child> <child> - <object class="sfxlo-SvxCharViewControl" id="favchar2"> + <object class="GtkDrawingArea" id="favchar2"> <property name="width_request">35</property> <property name="height_request">35</property> <property name="visible">True</property> - <property name="can_focus">False</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> @@ -61,11 +57,12 @@ </packing> </child> <child> - <object class="sfxlo-SvxCharViewControl" id="favchar4"> + <object class="GtkDrawingArea" id="favchar4"> <property name="width_request">35</property> <property name="height_request">35</property> <property name="visible">True</property> - <property name="can_focus">False</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> @@ -73,11 +70,12 @@ </packing> </child> <child> - <object class="sfxlo-SvxCharViewControl" id="favchar3"> + <object class="GtkDrawingArea" id="favchar3"> <property name="width_request">35</property> <property name="height_request">35</property> <property name="visible">True</property> - <property name="can_focus">False</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> @@ -85,11 +83,12 @@ </packing> </child> <child> - <object class="sfxlo-SvxCharViewControl" id="favchar5"> + <object class="GtkDrawingArea" id="favchar5"> <property name="width_request">35</property> <property name="height_request">35</property> <property name="visible">True</property> - <property name="can_focus">False</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> @@ -97,11 +96,12 @@ </packing> </child> <child> - <object class="sfxlo-SvxCharViewControl" id="favchar6"> + <object class="GtkDrawingArea" id="favchar6"> <property name="width_request">35</property> <property name="height_request">35</property> <property name="visible">True</property> - <property name="can_focus">False</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> @@ -109,11 +109,12 @@ </packing> </child> <child> - <object class="sfxlo-SvxCharViewControl" id="favchar7"> + <object class="GtkDrawingArea" id="favchar7"> <property name="width_request">35</property> <property name="height_request">35</property> <property name="visible">True</property> - <property name="can_focus">False</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> @@ -121,11 +122,12 @@ </packing> </child> <child> - <object class="sfxlo-SvxCharViewControl" id="favchar8"> + <object class="GtkDrawingArea" id="favchar8"> <property name="width_request">35</property> <property name="height_request">35</property> <property name="visible">True</property> - <property name="can_focus">False</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> @@ -133,11 +135,12 @@ </packing> </child> <child> - <object class="sfxlo-SvxCharViewControl" id="favchar9"> + <object class="GtkDrawingArea" id="favchar9"> <property name="width_request">35</property> <property name="height_request">35</property> <property name="visible">True</property> - <property name="can_focus">False</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> @@ -145,11 +148,12 @@ </packing> </child> <child> - <object class="sfxlo-SvxCharViewControl" id="favchar10"> + <object class="GtkDrawingArea" id="favchar10"> <property name="width_request">35</property> <property name="height_request">35</property> <property name="visible">True</property> - <property name="can_focus">False</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> @@ -157,11 +161,12 @@ </packing> </child> <child> - <object class="sfxlo-SvxCharViewControl" id="favchar11"> + <object class="GtkDrawingArea" id="favchar11"> <property name="width_request">35</property> <property name="height_request">35</property> <property name="visible">True</property> - <property name="can_focus">False</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> @@ -169,11 +174,12 @@ </packing> </child> <child> - <object class="sfxlo-SvxCharViewControl" id="favchar12"> + <object class="GtkDrawingArea" id="favchar12"> <property name="width_request">35</property> <property name="height_request">35</property> <property name="visible">True</property> - <property name="can_focus">False</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> @@ -181,11 +187,12 @@ </packing> </child> <child> - <object class="sfxlo-SvxCharViewControl" id="favchar13"> + <object class="GtkDrawingArea" id="favchar13"> <property name="width_request">35</property> <property name="height_request">35</property> <property name="visible">True</property> - <property name="can_focus">False</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> @@ -193,11 +200,12 @@ </packing> </child> <child> - <object class="sfxlo-SvxCharViewControl" id="favchar14"> + <object class="GtkDrawingArea" id="favchar14"> <property name="width_request">35</property> <property name="height_request">35</property> <property name="visible">True</property> - <property name="can_focus">False</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> @@ -205,11 +213,12 @@ </packing> </child> <child> - <object class="sfxlo-SvxCharViewControl" id="favchar15"> + <object class="GtkDrawingArea" id="favchar15"> <property name="width_request">35</property> <property name="height_request">35</property> <property name="visible">True</property> - <property name="can_focus">False</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> @@ -217,11 +226,12 @@ </packing> </child> <child> - <object class="sfxlo-SvxCharViewControl" id="favchar16"> + <object class="GtkDrawingArea" id="favchar16"> <property name="width_request">35</property> <property name="height_request">35</property> <property name="visible">True</property> - <property name="can_focus">False</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> @@ -257,13 +267,14 @@ <object class="GtkGrid" id="grid2"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="row_homogeneous">True</property> + <property name="halign">start</property> <child> - <object class="sfxlo-SvxCharViewControl" id="viewchar1"> + <object class="GtkDrawingArea" id="viewchar1"> <property name="width_request">35</property> <property name="height_request">35</property> <property name="visible">True</property> - <property name="can_focus">False</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> @@ -271,11 +282,12 @@ </packing> </child> <child> - <object class="sfxlo-SvxCharViewControl" id="viewchar2"> + <object class="GtkDrawingArea" id="viewchar2"> <property name="width_request">35</property> <property name="height_request">35</property> <property name="visible">True</property> - <property name="can_focus">False</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> @@ -283,11 +295,12 @@ </packing> </child> <child> - <object class="sfxlo-SvxCharViewControl" id="viewchar4"> + <object class="GtkDrawingArea" id="viewchar4"> <property name="width_request">35</property> <property name="height_request">35</property> <property name="visible">True</property> - <property name="can_focus">False</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> @@ -295,11 +308,12 @@ </packing> </child> <child> - <object class="sfxlo-SvxCharViewControl" id="viewchar3"> + <object class="GtkDrawingArea" id="viewchar3"> <property name="width_request">35</property> <property name="height_request">35</property> <property name="visible">True</property> - <property name="can_focus">False</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> @@ -307,11 +321,12 @@ </packing> </child> <child> - <object class="sfxlo-SvxCharViewControl" id="viewchar5"> + <object class="GtkDrawingArea" id="viewchar5"> <property name="width_request">35</property> <property name="height_request">35</property> <property name="visible">True</property> - <property name="can_focus">False</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> @@ -319,11 +334,12 @@ </packing> </child> <child> - <object class="sfxlo-SvxCharViewControl" id="viewchar6"> + <object class="GtkDrawingArea" id="viewchar6"> <property name="width_request">35</property> <property name="height_request">35</property> <property name="visible">True</property> - <property name="can_focus">False</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> @@ -331,11 +347,12 @@ </packing> </child> <child> - <object class="sfxlo-SvxCharViewControl" id="viewchar16"> + <object class="GtkDrawingArea" id="viewchar16"> <property name="width_request">35</property> <property name="height_request">35</property> <property name="visible">True</property> - <property name="can_focus">False</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> @@ -343,11 +360,12 @@ </packing> </child> <child> - <object class="sfxlo-SvxCharViewControl" id="viewchar15"> + <object class="GtkDrawingArea" id="viewchar15"> <property name="width_request">35</property> <property name="height_request">35</property> <property name="visible">True</property> - <property name="can_focus">False</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> @@ -355,11 +373,12 @@ </packing> </child> <child> - <object class="sfxlo-SvxCharViewControl" id="viewchar14"> + <object class="GtkDrawingArea" id="viewchar14"> <property name="width_request">35</property> <property name="height_request">35</property> <property name="visible">True</property> - <property name="can_focus">False</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> @@ -367,11 +386,12 @@ </packing> </child> <child> - <object class="sfxlo-SvxCharViewControl" id="viewchar13"> + <object class="GtkDrawingArea" id="viewchar13"> <property name="width_request">35</property> <property name="height_request">35</property> <property name="visible">True</property> - <property name="can_focus">False</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> @@ -379,11 +399,12 @@ </packing> </child> <child> - <object class="sfxlo-SvxCharViewControl" id="viewchar12"> + <object class="GtkDrawingArea" id="viewchar12"> <property name="width_request">35</property> <property name="height_request">35</property> <property name="visible">True</property> - <property name="can_focus">False</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> @@ -391,11 +412,12 @@ </packing> </child> <child> - <object class="sfxlo-SvxCharViewControl" id="viewchar11"> + <object class="GtkDrawingArea" id="viewchar11"> <property name="width_request">35</property> <property name="height_request">35</property> <property name="visible">True</property> - <property name="can_focus">False</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> @@ -403,11 +425,12 @@ </packing> </child> <child> - <object class="sfxlo-SvxCharViewControl" id="viewchar10"> + <object class="GtkDrawingArea" id="viewchar10"> <property name="width_request">35</property> <property name="height_request">35</property> <property name="visible">True</property> - <property name="can_focus">False</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> @@ -415,11 +438,12 @@ </packing> </child> <child> - <object class="sfxlo-SvxCharViewControl" id="viewchar9"> + <object class="GtkDrawingArea" id="viewchar9"> <property name="width_request">35</property> <property name="height_request">35</property> <property name="visible">True</property> - <property name="can_focus">False</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> @@ -427,11 +451,12 @@ </packing> </child> <child> - <object class="sfxlo-SvxCharViewControl" id="viewchar8"> + <object class="GtkDrawingArea" id="viewchar8"> <property name="width_request">35</property> <property name="height_request">35</property> <property name="visible">True</property> - <property name="can_focus">False</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> @@ -439,11 +464,12 @@ </packing> </child> <child> - <object class="sfxlo-SvxCharViewControl" id="viewchar7"> + <object class="GtkDrawingArea" id="viewchar7"> <property name="width_request">35</property> <property name="height_request">35</property> <property name="visible">True</property> - <property name="can_focus">False</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> |