diff options
author | Maxim Monastirsky <momonasmon@gmail.com> | 2016-10-05 01:58:06 +0300 |
---|---|---|
committer | Maxim Monastirsky <momonasmon@gmail.com> | 2016-10-05 15:35:40 +0300 |
commit | c26afa7812d5b9f8e25f64ebab8515f5b59238c1 (patch) | |
tree | e78d030b5293b7d54c9e6fe0200d8fc36191ea32 | |
parent | 0ef0e08f2f0e2f59cf7a64cd981f42c5e141f9b4 (diff) |
Base SvxFrameWindow_Impl on ToolbarPopup
Change-Id: I2061125068bd94b5cdc46aa18a7aa7e21726e22c
-rw-r--r-- | svx/source/tbxctrls/tbcontrl.cxx | 53 |
1 files changed, 22 insertions, 31 deletions
diff --git a/svx/source/tbxctrls/tbcontrl.cxx b/svx/source/tbxctrls/tbcontrl.cxx index ed9a38e84960..bc264424ab7a 100644 --- a/svx/source/tbxctrls/tbcontrl.cxx +++ b/svx/source/tbxctrls/tbcontrl.cxx @@ -31,6 +31,7 @@ #include <svtools/valueset.hxx> #include <svtools/ctrlbox.hxx> #include <svtools/popupwindowcontroller.hxx> +#include <svtools/toolbarmenu.hxx> #include <svl/style.hxx> #include <svtools/ctrltool.hxx> #include <svtools/borderhelper.hxx> @@ -247,12 +248,11 @@ void SvxFrmValueSet_Impl::MouseButtonUp( const MouseEvent& rMEvt ) ValueSet::MouseButtonUp(rMEvt); } -class SvxFrameWindow_Impl : public SfxPopupWindow +class SvxFrameWindow_Impl : public svtools::ToolbarPopup { - using FloatingWindow::StateChanged; - private: VclPtr<SvxFrmValueSet_Impl> aFrameSet; + rtl::Reference< svt::ToolboxController > mpController; ImageList aImgList; bool bParagraphMode; @@ -263,14 +263,11 @@ protected: virtual void GetFocus() override; public: - SvxFrameWindow_Impl( sal_uInt16 nId, const Reference< XFrame >& rFrame, vcl::Window* pParentWindow ); + SvxFrameWindow_Impl( const Reference< XFrame >& rFrame, vcl::Window* pParentWindow, svt::ToolboxController* pController ); virtual ~SvxFrameWindow_Impl() override; virtual void dispose() override; - void StartSelection(); - - virtual void StateChanged( sal_uInt16 nSID, SfxItemState eState, - const SfxPoolItem* pState ) override; + virtual void statusChanged( const css::frame::FeatureStateEvent& rEvent ) throw ( css::uno::RuntimeException ) override; virtual void DataChanged( const DataChangedEvent& rDCEvt ) override; }; @@ -1599,12 +1596,12 @@ Color BorderColorStatus::GetColor() } -SvxFrameWindow_Impl::SvxFrameWindow_Impl( sal_uInt16 nId, const Reference< XFrame >& rFrame, vcl::Window* pParentWindow ) : - SfxPopupWindow( nId, rFrame, pParentWindow, WB_STDPOPUP | WB_OWNERDRAWDECORATION | WB_CLOSEABLE | WB_MOVEABLE ), +SvxFrameWindow_Impl::SvxFrameWindow_Impl (const Reference< XFrame >& rFrame, vcl::Window* pParentWindow, svt::ToolboxController* pController ) : + ToolbarPopup( rFrame, pParentWindow, WB_STDPOPUP | WB_MOVEABLE | WB_CLOSEABLE ), aFrameSet ( VclPtr<SvxFrmValueSet_Impl>::Create(this, WinBits( WB_ITEMBORDER | WB_DOUBLEBORDER | WB_3DLOOK | WB_NO_DIRECTSELECT )) ), + mpController( pController ), bParagraphMode(false) { - BindListener(); AddStatusListener(".uno:BorderReducedMode"); aImgList = ImageList( SVX_RES( RID_SVXIL_FRAME ) ); @@ -1656,20 +1653,23 @@ SvxFrameWindow_Impl::~SvxFrameWindow_Impl() void SvxFrameWindow_Impl::dispose() { - UnbindListener(); + mpController.clear(); aFrameSet.disposeAndClear(); - SfxPopupWindow::dispose(); + ToolbarPopup::dispose(); } void SvxFrameWindow_Impl::GetFocus() { if (aFrameSet) + { aFrameSet->GrabFocus(); + aFrameSet->StartSelection(); + } } void SvxFrameWindow_Impl::DataChanged( const DataChangedEvent& rDCEvt ) { - SfxPopupWindow::DataChanged( rDCEvt ); + ToolbarPopup::DataChanged( rDCEvt ); if( ( rDCEvt.GetType() == DataChangedEventType::SETTINGS ) && ( rDCEvt.GetFlags() & AllSettingsFlags::STYLE ) ) { @@ -1805,9 +1805,7 @@ IMPL_LINK_NOARG(SvxFrameWindow_Impl, SelectHdl, ValueSet*, void) aFrameSet->SetNoSelection(); } - SfxToolBoxControl::Dispatch( Reference< XDispatchProvider >( GetFrame()->getController(), UNO_QUERY ), - ".uno:SetBorderStyle", - aArgs ); + mpController->dispatchCommand( ".uno:SetBorderStyle", aArgs ); } void SvxFrameWindow_Impl::Resize() @@ -1816,16 +1814,15 @@ void SvxFrameWindow_Impl::Resize() aFrameSet->SetPosSizePixel(Point(2,2), Size(aSize.Width() - 4, aSize.Height() - 4)); } -void SvxFrameWindow_Impl::StateChanged( - sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState ) +void SvxFrameWindow_Impl::statusChanged( const css::frame::FeatureStateEvent& rEvent ) + throw ( css::uno::RuntimeException ) { - if ( pState && nSID == SID_BORDER_REDUCED_MODE) + if ( rEvent.FeatureURL.Complete == ".uno:BorderReducedMode" ) { - const SfxBoolItem* pItem = dynamic_cast<const SfxBoolItem*>( pState ); - - if ( pItem ) + bool bValue; + if ( rEvent.State >>= bValue ) { - bParagraphMode = pItem->GetValue(); + bParagraphMode = bValue; //initial calls mustn't insert or remove elements if(aFrameSet->GetItemCount()) { @@ -1852,12 +1849,6 @@ void SvxFrameWindow_Impl::StateChanged( } } } - SfxPopupWindow::StateChanged( nSID, eState, pState ); -} - -void SvxFrameWindow_Impl::StartSelection() -{ - aFrameSet->StartSelection(); } static Color lcl_mediumColor( Color aMain, Color /*aDefault*/ ) @@ -2932,7 +2923,7 @@ void SvxFrameToolBoxControl::initialize( const css::uno::Sequence< css::uno::Any VclPtr<vcl::Window> SvxFrameToolBoxControl::createPopupWindow( vcl::Window* pParent ) { - return VclPtr<SvxFrameWindow_Impl>::Create( 0, m_xFrame, pParent ); + return VclPtr<SvxFrameWindow_Impl>::Create( m_xFrame, pParent, this ); } OUString SvxFrameToolBoxControl::getImplementationName() |