rework SvxUndoRedoControl to be a PopupWindowController

Change-Id: I78b4e03c76bc3aa8479013ae157a9e1316dcfecd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86841
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
This commit is contained in:
Caolán McNamara
2020-01-15 11:46:00 +00:00
parent 7d514150ef
commit c34edadf5b
8 changed files with 152 additions and 154 deletions

View File

@@ -20,38 +20,36 @@
#ifndef INCLUDED_SVX_LBOXCTRL_HXX #ifndef INCLUDED_SVX_LBOXCTRL_HXX
#define INCLUDED_SVX_LBOXCTRL_HXX #define INCLUDED_SVX_LBOXCTRL_HXX
#include <sfx2/tbxctrl.hxx>
#include <rtl/ustring.hxx> #include <rtl/ustring.hxx>
#include <vector> #include <vector>
#include <svtools/popupwindowcontroller.hxx>
#include <svx/svxdllapi.h> #include <svx/svxdllapi.h>
class ToolBox; class ToolBox;
class SvxPopupWindowListBox; class SvxPopupWindowListBox;
class SVX_DLLPUBLIC SvxUndoRedoControl final : public svt::PopupWindowController
class SVX_DLLPUBLIC SvxUndoRedoControl final : public SfxToolBoxControl
{ {
OUString aActionStr;
VclPtr<SvxPopupWindowListBox> pPopupWin;
std::vector< OUString > aUndoRedoList; std::vector< OUString > aUndoRedoList;
OUString aDefaultTooltip; OUString aDefaultTooltip;
void Impl_SetInfo( sal_Int32 nCount );
DECL_LINK( PopupModeEndHdl, FloatingWindow*, void );
DECL_LINK( SelectHdl, ListBox&, void );
public: public:
SFX_DECL_TOOLBOX_CONTROL(); SvxUndoRedoControl(const css::uno::Reference<css::uno::XComponentContext>& rContext);
SvxUndoRedoControl( sal_uInt16 nSlotId, sal_uInt16 nId, ToolBox& rTbx );
virtual ~SvxUndoRedoControl() override; virtual ~SvxUndoRedoControl() override;
virtual void StateChanged( sal_uInt16 nSID, using svt::ToolboxController::createPopupWindow;
SfxItemState eState, virtual VclPtr<vcl::Window> createPopupWindow( vcl::Window* pParent ) override;
const SfxPoolItem* pState ) override;
virtual VclPtr<SfxPopupWindow> CreatePopupWindow() override; // XServiceInfo
virtual OUString SAL_CALL getImplementationName() override;
virtual css::uno::Sequence<OUString> SAL_CALL getSupportedServiceNames() override;
// XInitialization
virtual void SAL_CALL initialize( const css::uno::Sequence< css::uno::Any >& rArguments ) override;
virtual void SAL_CALL statusChanged(const css::frame::FeatureStateEvent& rEvent) override;
void Do(sal_Int16 nCount);
}; };
#endif #endif

View File

@@ -1536,6 +1536,28 @@
<value>com.sun.star.comp.svx.UnderlineToolBoxControl</value> <value>com.sun.star.comp.svx.UnderlineToolBoxControl</value>
</prop> </prop>
</node> </node>
<node oor:name="UndoToolBoxControl" oor:op="replace">
<prop oor:name="Command">
<value>.uno:Undo</value>
</prop>
<prop oor:name="Module">
<value/>
</prop>
<prop oor:name="Controller">
<value>com.sun.star.comp.svx.UndoRedoToolBoxControl</value>
</prop>
</node>
<node oor:name="RedoToolBoxControl" oor:op="replace">
<prop oor:name="Command">
<value>.uno:Redo</value>
</prop>
<prop oor:name="Module">
<value/>
</prop>
<prop oor:name="Controller">
<value>com.sun.star.comp.svx.UndoRedoToolBoxControl</value>
</prop>
</node>
<node oor:name="XLineColorToolBox" oor:op="replace"> <node oor:name="XLineColorToolBox" oor:op="replace">
<prop oor:name="Command"> <prop oor:name="Command">
<value>.uno:XLineColor</value> <value>.uno:XLineColor</value>

View File

@@ -151,8 +151,6 @@ void ScDLL::Init()
SvxStyleToolBoxControl ::RegisterControl(SID_STYLE_APPLY, pMod); SvxStyleToolBoxControl ::RegisterControl(SID_STYLE_APPLY, pMod);
SvxClipBoardControl ::RegisterControl(SID_PASTE, pMod ); SvxClipBoardControl ::RegisterControl(SID_PASTE, pMod );
SvxClipBoardControl ::RegisterControl(SID_PASTE_UNFORMATTED, pMod ); SvxClipBoardControl ::RegisterControl(SID_PASTE_UNFORMATTED, pMod );
SvxUndoRedoControl ::RegisterControl(SID_UNDO, pMod );
SvxUndoRedoControl ::RegisterControl(SID_REDO, pMod );
svx::FormatPaintBrushToolBoxControl::RegisterControl(SID_FORMATPAINTBRUSH, pMod ); svx::FormatPaintBrushToolBoxControl::RegisterControl(SID_FORMATPAINTBRUSH, pMod );
sc::ScNumberFormatControl ::RegisterControl(SID_NUMBER_TYPE_FORMAT, pMod ); sc::ScNumberFormatControl ::RegisterControl(SID_NUMBER_TYPE_FORMAT, pMod );

View File

@@ -206,10 +206,6 @@ void SdDLL::RegisterControllers(SdModule* pMod)
SvxModifyControl::RegisterControl( SID_DOC_MODIFIED, pMod ); SvxModifyControl::RegisterControl( SID_DOC_MODIFIED, pMod );
SvxZoomSliderControl::RegisterControl( SID_ATTR_ZOOMSLIDER, pMod ); SvxZoomSliderControl::RegisterControl( SID_ATTR_ZOOMSLIDER, pMod );
// #UndoRedo#
SvxUndoRedoControl::RegisterControl( SID_UNDO , pMod );
SvxUndoRedoControl::RegisterControl( SID_REDO , pMod );
svx::FormatPaintBrushToolBoxControl::RegisterControl(SID_FORMATPAINTBRUSH, pMod ); svx::FormatPaintBrushToolBoxControl::RegisterControl(SID_FORMATPAINTBRUSH, pMod );
SvxClipBoardControl::RegisterControl( SID_PASTE, pMod ); SvxClipBoardControl::RegisterControl( SID_PASTE, pMod );

View File

@@ -68,8 +68,6 @@ namespace
SvxZoomStatusBarControl::RegisterControl(SID_ATTR_ZOOM, pModule); SvxZoomStatusBarControl::RegisterControl(SID_ATTR_ZOOM, pModule);
SvxZoomSliderControl::RegisterControl(SID_ATTR_ZOOMSLIDER, pModule); SvxZoomSliderControl::RegisterControl(SID_ATTR_ZOOMSLIDER, pModule);
SvxModifyControl::RegisterControl(SID_TEXTSTATUS, pModule); SvxModifyControl::RegisterControl(SID_TEXTSTATUS, pModule);
SvxUndoRedoControl::RegisterControl(SID_UNDO, pModule);
SvxUndoRedoControl::RegisterControl(SID_REDO, pModule);
XmlSecStatusBarControl::RegisterControl(SID_SIGNATURE, pModule); XmlSecStatusBarControl::RegisterControl(SID_SIGNATURE, pModule);
SmCmdBoxWrapper::RegisterChildWindow(true); SmCmdBoxWrapper::RegisterChildWindow(true);

View File

@@ -25,7 +25,6 @@
#include <vcl/toolbox.hxx> #include <vcl/toolbox.hxx>
#include <vcl/event.hxx> #include <vcl/event.hxx>
#include <sfx2/app.hxx> #include <sfx2/app.hxx>
#include <sfx2/tbxctrl.hxx>
#include <sfx2/bindings.hxx> #include <sfx2/bindings.hxx>
#include <sfx2/dispatch.hxx> #include <sfx2/dispatch.hxx>
#include <sfx2/viewsh.hxx> #include <sfx2/viewsh.hxx>
@@ -33,6 +32,7 @@
#include <svl/eitem.hxx> #include <svl/eitem.hxx>
#include <svl/slstitm.hxx> #include <svl/slstitm.hxx>
#include <svl/stritem.hxx> #include <svl/stritem.hxx>
#include <svtools/toolbarmenu.hxx>
#include <svx/dialmgr.hxx> #include <svx/dialmgr.hxx>
#include <svx/lboxctrl.hxx> #include <svx/lboxctrl.hxx>
#include <vcl/mnemonic.hxx> #include <vcl/mnemonic.hxx>
@@ -42,41 +42,38 @@
#include <svx/svxids.hrc> #include <svx/svxids.hrc>
#include <svx/strings.hrc> #include <svx/strings.hrc>
#include <comphelper/processfactory.hxx>
#include <com/sun/star/util/URLTransformer.hpp>
#include <com/sun/star/frame/XDispatchProvider.hpp>
#include <com/sun/star/frame/XFrame.hpp>
using namespace ::com::sun::star::uno; using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::beans; using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::util;
using namespace ::com::sun::star::frame; using namespace ::com::sun::star::frame;
class SvxPopupWindowListBox; class SvxPopupWindowListBox final : public svtools::ToolbarPopup
class SvxPopupWindowListBox: public SfxPopupWindow
{ {
VclPtr<ListBox> m_pListBox; VclPtr<ListBox> m_pListBox;
ToolBox & rToolBox; rtl::Reference<SvxUndoRedoControl> m_xControl;
bool bUserSel;
sal_uInt16 const nTbxId; DECL_LINK( SelectHdl, ListBox&, void );
public: public:
SvxPopupWindowListBox( sal_uInt16 nSlotId, const OUString& rCommandURL, sal_uInt16 nTbxId, ToolBox& rTbx ); SvxPopupWindowListBox(SvxUndoRedoControl* pControl, vcl::Window* pParent);
virtual ~SvxPopupWindowListBox() override; virtual ~SvxPopupWindowListBox() override;
virtual void dispose() override; virtual void dispose() override;
// SfxPopupWindow
virtual void PopupModeEnd() override;
virtual void statusChanged( const css::frame::FeatureStateEvent& rEvent ) override;
ListBox & GetListBox() { return *m_pListBox; } ListBox & GetListBox() { return *m_pListBox; }
bool IsUserSelected() const { return bUserSel; } void SetInfo(sal_Int32 nCount);
void SetUserSelected( bool bVal ) { bUserSel = bVal; }
}; };
SvxPopupWindowListBox::SvxPopupWindowListBox(sal_uInt16 nSlotId, const OUString& rCommandURL, sal_uInt16 nId, ToolBox& rTbx) SvxPopupWindowListBox::SvxPopupWindowListBox(SvxUndoRedoControl* pControl, vcl::Window* pParent)
: SfxPopupWindow(nSlotId, &rTbx, "FloatingUndoRedo", "svx/ui/floatingundoredo.ui") : ToolbarPopup(pControl->getFrameInterface(), pParent, "FloatingUndoRedo", "svx/ui/floatingundoredo.ui")
, rToolBox(rTbx) , m_xControl(pControl)
, bUserSel(false)
, nTbxId(nId)
{ {
DBG_ASSERT( nSlotId == GetId(), "id mismatch" );
get(m_pListBox, "treeview"); get(m_pListBox, "treeview");
WinBits nBits(m_pListBox->GetStyle()); WinBits nBits(m_pListBox->GetStyle());
nBits &= ~WB_SIMPLEMODE; nBits &= ~WB_SIMPLEMODE;
@@ -86,7 +83,8 @@ SvxPopupWindowListBox::SvxPopupWindowListBox(sal_uInt16 nSlotId, const OUString&
m_pListBox->set_height_request(aSize.Height()); m_pListBox->set_height_request(aSize.Height());
m_pListBox->EnableMultiSelection( true, true ); m_pListBox->EnableMultiSelection( true, true );
SetBackground( GetSettings().GetStyleSettings().GetDialogColor() ); SetBackground( GetSettings().GetStyleSettings().GetDialogColor() );
AddStatusListener( rCommandURL );
m_pListBox->SetSelectHdl( LINK( this, SvxPopupWindowListBox, SelectHdl ) );
} }
SvxPopupWindowListBox::~SvxPopupWindowListBox() SvxPopupWindowListBox::~SvxPopupWindowListBox()
@@ -97,156 +95,142 @@ SvxPopupWindowListBox::~SvxPopupWindowListBox()
void SvxPopupWindowListBox::dispose() void SvxPopupWindowListBox::dispose()
{ {
m_pListBox.clear(); m_pListBox.clear();
SfxPopupWindow::dispose(); ToolbarPopup::dispose();
} }
void SvxPopupWindowListBox::PopupModeEnd() void SvxPopupWindowListBox::SetInfo( sal_Int32 nCount )
{ {
rToolBox.EndSelection();
SfxPopupWindow::PopupModeEnd();
//FloatingWindow::PopupModeEnd();
if( SfxViewShell::Current() )
{
vcl::Window* pShellWnd = SfxViewShell::Current()->GetWindow();
if (pShellWnd)
pShellWnd->GrabFocus();
}
}
void SvxPopupWindowListBox::statusChanged( const css::frame::FeatureStateEvent& rEvent )
{
rToolBox.EnableItem( nTbxId, rEvent.IsEnabled );
SfxPopupWindow::statusChanged( rEvent );
}
IMPL_LINK_NOARG(SvxUndoRedoControl, PopupModeEndHdl, FloatingWindow*, void)
{
if( pPopupWin && FloatWinPopupFlags::NONE == pPopupWin->GetPopupModeFlags() &&
pPopupWin->IsUserSelected() )
{
const sal_Int32 nCount = pPopupWin->GetListBox().GetSelectedEntryCount();
INetURLObject aObj( m_aCommandURL );
Sequence< PropertyValue > aArgs( 1 );
aArgs[0].Name = aObj.GetURLPath();
aArgs[0].Value <<= sal_Int16( nCount );
SfxToolBoxControl::Dispatch( m_aCommandURL, aArgs );
}
}
void SvxUndoRedoControl::Impl_SetInfo( sal_Int32 nCount )
{
DBG_ASSERT( pPopupWin, "NULL pointer, PopupWindow missing" );
const char* pId; const char* pId;
if (nCount == 1) if (nCount == 1)
pId = SID_UNDO == GetSlotId() ? RID_SVXSTR_NUM_UNDO_ACTION : RID_SVXSTR_NUM_REDO_ACTION; pId = m_xControl->getCommandURL() == ".uno:Undo" ? RID_SVXSTR_NUM_UNDO_ACTION : RID_SVXSTR_NUM_REDO_ACTION;
else else
pId = SID_UNDO == GetSlotId() ? RID_SVXSTR_NUM_UNDO_ACTIONS : RID_SVXSTR_NUM_REDO_ACTIONS; pId = m_xControl->getCommandURL() == ".uno:Undo" ? RID_SVXSTR_NUM_UNDO_ACTIONS : RID_SVXSTR_NUM_REDO_ACTIONS;
aActionStr = SvxResId(pId); OUString aActionStr = SvxResId(pId);
OUString aText = aActionStr.replaceAll("$(ARG1)", OUString::number(nCount)); OUString aText = aActionStr.replaceAll("$(ARG1)", OUString::number(nCount));
pPopupWin->SetText(aText); SetText(aText);
} }
IMPL_LINK(SvxPopupWindowListBox, SelectHdl, ListBox&, rListBox, void)
IMPL_LINK_NOARG(SvxUndoRedoControl, SelectHdl, ListBox&, void)
{ {
if (pPopupWin) if (rListBox.IsTravelSelect())
SetInfo(rListBox.GetSelectedEntryCount());
else
{ {
//pPopupWin->SetUserSelected( false ); fprintf(stderr, "popdown\n");
m_xControl->Do(GetListBox().GetSelectedEntryCount());
EndPopupMode();
}
}
ListBox &rListBox = pPopupWin->GetListBox(); void SvxUndoRedoControl::Do(sal_Int16 nCount)
if (rListBox.IsTravelSelect()) {
Impl_SetInfo( rListBox.GetSelectedEntryCount() ); Reference< XDispatchProvider > xDispatchProvider( m_xFrame, UNO_QUERY );
else if ( xDispatchProvider.is() )
{
css::util::URL aTargetURL;
Reference < XURLTransformer > xTrans( URLTransformer::create(::comphelper::getProcessComponentContext()) );
aTargetURL.Complete = m_aCommandURL;
xTrans->parseStrict( aTargetURL );
Reference< XDispatch > xDispatch = xDispatchProvider->queryDispatch( aTargetURL, OUString(), 0 );
if ( xDispatch.is() )
{ {
pPopupWin->SetUserSelected( true ); INetURLObject aObj( m_aCommandURL );
pPopupWin->EndPopupMode(); Sequence< PropertyValue > aArgs( 1 );
aArgs[0].Name = aObj.GetURLPath();
aArgs[0].Value <<= nCount;
xDispatch->dispatch(aTargetURL, aArgs);
} }
} }
} }
SvxUndoRedoControl::SvxUndoRedoControl(const css::uno::Reference<css::uno::XComponentContext>& rContext)
SFX_IMPL_TOOLBOX_CONTROL( SvxUndoRedoControl, SfxStringItem ); : PopupWindowController(rContext, nullptr, OUString())
SvxUndoRedoControl::SvxUndoRedoControl( sal_uInt16 nSlotId, sal_uInt16 nId, ToolBox& rTbx )
:SfxToolBoxControl( nSlotId, nId, rTbx ),
pPopupWin ( nullptr )
{ {
rTbx.SetItemBits( nId, ToolBoxItemBits::DROPDOWN | rTbx.GetItemBits( nId ) ); }
rTbx.Invalidate();
aDefaultTooltip = rTbx.GetQuickHelpText( nId ); void SvxUndoRedoControl::initialize( const css::uno::Sequence< css::uno::Any >& rArguments )
{
PopupWindowController::initialize(rArguments);
ToolBox* pToolBox = nullptr;
sal_uInt16 nId = 0;
if (getToolboxId(nId, &pToolBox) && pToolBox->GetItemCommand(nId) == m_aCommandURL)
{
pToolBox->SetItemBits(nId, ToolBoxItemBits::DROPDOWN | pToolBox->GetItemBits(nId));
aDefaultTooltip = pToolBox->GetQuickHelpText(nId);
}
} }
SvxUndoRedoControl::~SvxUndoRedoControl() SvxUndoRedoControl::~SvxUndoRedoControl()
{ {
} }
void SvxUndoRedoControl::StateChanged( // XStatusListener
sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState ) void SAL_CALL SvxUndoRedoControl::statusChanged(const css::frame::FeatureStateEvent& rEvent)
{ {
if ( nSID == SID_UNDO || nSID == SID_REDO ) if (rEvent.FeatureURL.Main == ".uno:GetUndoStrings" || rEvent.FeatureURL.Main == ".uno:GetRedoStrings")
{ {
if ( eState == SfxItemState::DISABLED ) css::uno::Sequence<OUString> aStrings;
{ rEvent.State >>= aStrings;
ToolBox& rBox = GetToolBox(); aUndoRedoList = comphelper::sequenceToContainer<std::vector<OUString>>(aStrings);
rBox.SetQuickHelpText( GetId(), aDefaultTooltip ); return;
}
else if ( auto pStringItem = dynamic_cast<const SfxStringItem*>( pState) )
{
ToolBox& rBox = GetToolBox();
const OUString& aQuickHelpText = pStringItem->GetValue();
rBox.SetQuickHelpText( GetId(), aQuickHelpText );
}
GetToolBox().EnableItem( GetId(),
SfxItemState::DISABLED != GetItemState(pState) );
} }
else
{
aUndoRedoList.clear();
if ( auto pStringListItem = dynamic_cast<const SfxStringListItem*>( pState) ) PopupWindowController::statusChanged(rEvent);
{
aUndoRedoList = pStringListItem->GetList(); ToolBox* pToolBox = nullptr;
} sal_uInt16 nId = 0;
if (!getToolboxId(nId, &pToolBox))
return;
if (!rEvent.IsEnabled)
{
pToolBox->SetQuickHelpText(nId, aDefaultTooltip);
return;
} }
OUString aQuickHelpText;
if (rEvent.State >>= aQuickHelpText)
pToolBox->SetQuickHelpText(nId, aQuickHelpText);
} }
VclPtr<SfxPopupWindow> SvxUndoRedoControl::CreatePopupWindow() VclPtr<vcl::Window> SvxUndoRedoControl::createPopupWindow(vcl::Window* pParent)
{ {
DBG_ASSERT(( SID_UNDO == GetSlotId() || SID_REDO == GetSlotId() ), "mismatching ids" );
if ( m_aCommandURL == ".uno:Undo" ) if ( m_aCommandURL == ".uno:Undo" )
updateStatus( ".uno:GetUndoStrings"); updateStatus( ".uno:GetUndoStrings");
else else
updateStatus( ".uno:GetRedoStrings"); updateStatus( ".uno:GetRedoStrings");
ToolBox& rBox = GetToolBox(); auto xPopupWin = VclPtr<SvxPopupWindowListBox>::Create(this, pParent);
pPopupWin = VclPtr<SvxPopupWindowListBox>::Create( GetSlotId(), m_aCommandURL, GetId(), rBox ); ListBox &rListBox = xPopupWin->GetListBox();
pPopupWin->SetPopupModeEndHdl( LINK( this, SvxUndoRedoControl, PopupModeEndHdl ) );
ListBox &rListBox = pPopupWin->GetListBox();
rListBox.SetSelectHdl( LINK( this, SvxUndoRedoControl, SelectHdl ) );
for(const OUString & s : aUndoRedoList) for(const OUString & s : aUndoRedoList)
rListBox.InsertEntry( s ); rListBox.InsertEntry( s );
rListBox.SelectEntryPos( 0 ); rListBox.SelectEntryPos(0);
aActionStr = SvxResId(SID_UNDO == GetSlotId() ? xPopupWin->SetInfo(rListBox.GetSelectedEntryCount());
RID_SVXSTR_NUM_UNDO_ACTIONS : RID_SVXSTR_NUM_REDO_ACTIONS);
Impl_SetInfo( rListBox.GetSelectedEntryCount() );
// move focus in floating window without return xPopupWin;
// closing it (GrabFocus() would close it!) }
pPopupWin->StartPopupMode( &rBox, FloatWinPopupFlags::GrabFocus );
//pPopupWin->GetListBox().GrabFocus();
return pPopupWin; OUString SvxUndoRedoControl::getImplementationName()
{
return "com.sun.star.comp.svx.UndoRedoToolBoxControl";
}
css::uno::Sequence<OUString> SvxUndoRedoControl::getSupportedServiceNames()
{
return { "com.sun.star.frame.ToolbarController" };
}
extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface *
com_sun_star_comp_svx_UndoRedoToolBoxControl_get_implementation(
css::uno::XComponentContext* rContext,
css::uno::Sequence<css::uno::Any> const & )
{
return cppu::acquire(new SvxUndoRedoControl(rContext));
} }
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

View File

@@ -124,4 +124,8 @@
constructor="com_sun_star_comp_svx_UnderlineToolBoxControl_get_implementation"> constructor="com_sun_star_comp_svx_UnderlineToolBoxControl_get_implementation">
<service name="com.sun.star.frame.ToolbarController"/> <service name="com.sun.star.frame.ToolbarController"/>
</implementation> </implementation>
<implementation name="com.sun.star.comp.svx.UndoRedoToolBoxControl"
constructor="com_sun_star_comp_svx_UndoRedoToolBoxControl_get_implementation">
<service name="com.sun.star.frame.ToolbarController"/>
</implementation>
</component> </component>

View File

@@ -281,8 +281,6 @@ void SwDLL::RegisterControls()
svx::ParaFirstLineSpacingControl::RegisterControl(SID_ATTR_PARA_FIRSTLINESPACE, pMod); svx::ParaFirstLineSpacingControl::RegisterControl(SID_ATTR_PARA_FIRSTLINESPACE, pMod);
SvxClipBoardControl::RegisterControl(SID_PASTE, pMod ); SvxClipBoardControl::RegisterControl(SID_PASTE, pMod );
SvxUndoRedoControl::RegisterControl(SID_UNDO, pMod );
SvxUndoRedoControl::RegisterControl(SID_REDO, pMod );
svx::FormatPaintBrushToolBoxControl::RegisterControl(SID_FORMATPAINTBRUSH, pMod ); svx::FormatPaintBrushToolBoxControl::RegisterControl(SID_FORMATPAINTBRUSH, pMod );
SvxFillToolBoxControl::RegisterControl(SID_ATTR_FILL_STYLE, pMod ); SvxFillToolBoxControl::RegisterControl(SID_ATTR_FILL_STYLE, pMod );