sd/UIConfig_simpress.mk | 1 sd/source/ui/dlg/gluectrl.cxx | 71 ++++++++++++++++++++++++------------- sd/source/ui/inc/gluectrl.hxx | 20 ++++++---- sd/uiconfig/simpress/ui/gluebox.ui | 23 +++++++++++ 4 files changed, 84 insertions(+), 31 deletions(-)
New commits: commit 0093d310dc7ecc8206bfcf6ad802a5c389f006e4 Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Fri Feb 7 11:01:51 2020 +0000 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Fri Feb 7 14:11:27 2020 +0100 weld GlueEscDirLB ItemWindow Change-Id: I472ba595bb2f31bedf1d0e0a890024f9ac3ada39 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88176 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caol...@redhat.com> diff --git a/sd/UIConfig_simpress.mk b/sd/UIConfig_simpress.mk index 3b12fc536374..ea014ef301b6 100644 --- a/sd/UIConfig_simpress.mk +++ b/sd/UIConfig_simpress.mk @@ -121,6 +121,7 @@ $(eval $(call gb_UIConfig_add_uifiles,modules/simpress,\ sd/uiconfig/simpress/ui/effectmenu \ sd/uiconfig/simpress/ui/fontsizemenu \ sd/uiconfig/simpress/ui/fontstylemenu \ + sd/uiconfig/simpress/ui/gluebox \ sd/uiconfig/simpress/ui/headerfooterdialog \ sd/uiconfig/simpress/ui/headerfootertab \ sd/uiconfig/simpress/ui/impressprinteroptions \ diff --git a/sd/source/ui/dlg/gluectrl.cxx b/sd/source/ui/dlg/gluectrl.cxx index 9f2b9e7f3334..110d945055ee 100644 --- a/sd/source/ui/dlg/gluectrl.cxx +++ b/sd/source/ui/dlg/gluectrl.cxx @@ -49,26 +49,49 @@ SFX_IMPL_TOOLBOX_CONTROL( SdTbxCtlGlueEscDir, SfxUInt16Item ) /** * Constructor for glue point escape direction Listbox */ -GlueEscDirLB::GlueEscDirLB( vcl::Window* pParent, const Reference< XFrame >& rFrame ) : - ListBox( pParent, WinBits( WB_BORDER | WB_DROPDOWN ) ), - m_xFrame( rFrame ) +GlueEscDirLB::GlueEscDirLB(vcl::Window* pParent, const Reference<XFrame>& rFrame) + : InterimItemWindow(pParent, "modules/simpress/ui/gluebox.ui", "GlueBox") + , m_xFrame(rFrame) + , m_xWidget(m_xBuilder->weld_combo_box("gluetype")) { - Size aXSize( GetTextWidth( "X" ), GetTextHeight() ); - SetSizePixel( Size( aXSize.Width() * 12, aXSize.Height() * 10 ) ); Fill(); + + m_xWidget->connect_changed(LINK(this, GlueEscDirLB, SelectHdl)); + m_xWidget->connect_key_press(LINK(this, GlueEscDirLB, KeyInputHdl)); + + SetSizePixel(m_xWidget->get_preferred_size()); + Show(); } +void GlueEscDirLB::dispose() +{ + m_xWidget.reset(); + InterimItemWindow::dispose(); +} + GlueEscDirLB::~GlueEscDirLB() { + disposeOnce(); +} + +void GlueEscDirLB::set_sensitive(bool bSensitive) +{ + Enable(bSensitive); + m_xWidget->set_sensitive(bSensitive); +} + +IMPL_LINK(GlueEscDirLB, KeyInputHdl, const KeyEvent&, rKEvt, bool) +{ + return ChildKeyInput(rKEvt); } /** * Determines the escape direction and sends the corresponding slot */ -void GlueEscDirLB::Select() +IMPL_LINK(GlueEscDirLB, SelectHdl, weld::ComboBox&, rBox, void) { - sal_Int32 nPos = GetSelectedEntryPos(); + sal_Int32 nPos = rBox.get_active(); SfxUInt16Item aItem( SID_GLUE_ESCDIR, static_cast<sal_uInt16>(aEscDirArray[ nPos ]) ); if ( m_xFrame.is() ) @@ -89,19 +112,19 @@ void GlueEscDirLB::Select() */ void GlueEscDirLB::Fill() { - InsertEntry( SdResId( STR_GLUE_ESCDIR_SMART ) ); - InsertEntry( SdResId( STR_GLUE_ESCDIR_LEFT ) ); - InsertEntry( SdResId( STR_GLUE_ESCDIR_RIGHT ) ); - InsertEntry( SdResId( STR_GLUE_ESCDIR_TOP ) ); - InsertEntry( SdResId( STR_GLUE_ESCDIR_BOTTOM ) ); + m_xWidget->append_text( SdResId( STR_GLUE_ESCDIR_SMART ) ); + m_xWidget->append_text( SdResId( STR_GLUE_ESCDIR_LEFT ) ); + m_xWidget->append_text( SdResId( STR_GLUE_ESCDIR_RIGHT ) ); + m_xWidget->append_text( SdResId( STR_GLUE_ESCDIR_TOP ) ); + m_xWidget->append_text( SdResId( STR_GLUE_ESCDIR_BOTTOM ) ); /* - InsertEntry( SdResId( STR_GLUE_ESCDIR_LO ) ); - InsertEntry( SdResId( STR_GLUE_ESCDIR_LU ) ); - InsertEntry( SdResId( STR_GLUE_ESCDIR_RO ) ); - InsertEntry( SdResId( STR_GLUE_ESCDIR_RU ) ); - InsertEntry( SdResId( STR_GLUE_ESCDIR_HORZ ) ); - InsertEntry( SdResId( STR_GLUE_ESCDIR_VERT ) ); - InsertEntry( SdResId( STR_GLUE_ESCDIR_ALL ) ); + m_xWidget->append_text( SdResId( STR_GLUE_ESCDIR_LO ) ); + m_xWidget->append_text( SdResId( STR_GLUE_ESCDIR_LU ) ); + m_xWidget->append_text( SdResId( STR_GLUE_ESCDIR_RO ) ); + m_xWidget->append_text( SdResId( STR_GLUE_ESCDIR_RU ) ); + m_xWidget->append_text( SdResId( STR_GLUE_ESCDIR_HORZ ) ); + m_xWidget->append_text( SdResId( STR_GLUE_ESCDIR_VERT ) ); + m_xWidget->append_text( SdResId( STR_GLUE_ESCDIR_ALL ) ); */ } @@ -128,21 +151,21 @@ void SdTbxCtlGlueEscDir::StateChanged( sal_uInt16 nSId, { if( pState ) { - pGlueEscDirLB->Enable(); + pGlueEscDirLB->set_sensitive(true); if ( IsInvalidItem( pState ) ) { - pGlueEscDirLB->SetNoSelection(); + pGlueEscDirLB->set_active(-1); } else { SdrEscapeDirection nEscDir = static_cast<SdrEscapeDirection>(static_cast<const SfxUInt16Item*>( pState )->GetValue()); - pGlueEscDirLB->SelectEntryPos( GetEscDirPos( nEscDir ) ); + pGlueEscDirLB->set_active( GetEscDirPos( nEscDir ) ); } } else { - pGlueEscDirLB->Disable(); - pGlueEscDirLB->SetNoSelection(); + pGlueEscDirLB->set_sensitive(false); + pGlueEscDirLB->set_active(-1); } } } diff --git a/sd/source/ui/inc/gluectrl.hxx b/sd/source/ui/inc/gluectrl.hxx index 15e8a0caf0d4..dcbd0f7fe97f 100644 --- a/sd/source/ui/inc/gluectrl.hxx +++ b/sd/source/ui/inc/gluectrl.hxx @@ -20,7 +20,7 @@ #ifndef INCLUDED_SD_SOURCE_UI_INC_GLUECTRL_HXX #define INCLUDED_SD_SOURCE_UI_INC_GLUECTRL_HXX -#include <vcl/lstbox.hxx> +#include <sfx2/InterimItemWindow.hxx> #include <sfx2/tbxctrl.hxx> enum class SdrEscapeDirection; @@ -28,18 +28,24 @@ enum class SdrEscapeDirection; /** * GluePointEscDirLB */ -class GlueEscDirLB : public ListBox +class GlueEscDirLB final : public InterimItemWindow { private: css::uno::Reference< css::frame::XFrame > m_xFrame; + std::unique_ptr<weld::ComboBox> m_xWidget; + + DECL_LINK(SelectHdl, weld::ComboBox&, void); + DECL_LINK(KeyInputHdl, const KeyEvent&, bool); + public: - GlueEscDirLB( vcl::Window* pParent, - const css::uno::Reference< css::frame::XFrame >& rFrame ); - virtual ~GlueEscDirLB() override; + GlueEscDirLB(vcl::Window* pParent, const css::uno::Reference<css::frame::XFrame>& rFrame); + virtual void dispose() override; + virtual ~GlueEscDirLB() override; - virtual void Select() override; + void set_active(int nPos) { m_xWidget->set_active(nPos); } + void set_sensitive(bool bSensitive); - void Fill(); + void Fill(); }; /** diff --git a/sd/uiconfig/simpress/ui/gluebox.ui b/sd/uiconfig/simpress/ui/gluebox.ui new file mode 100644 index 000000000000..722f241646af --- /dev/null +++ b/sd/uiconfig/simpress/ui/gluebox.ui @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Generated with glade 3.22.1 --> +<interface domain="sd"> + <requires lib="gtk+" version="3.18"/> + <object class="GtkBox" id="GlueBox"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="hexpand">True</property> + <property name="spacing">6</property> + <child> + <object class="GtkComboBoxText" id="gluetype"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="hexpand">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + </object> +</interface> _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits