summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/svx/dialogs.hrc2
-rw-r--r--officecfg/registry/data/org/openoffice/Office/UI/Controller.xcu22
-rw-r--r--sd/source/ui/func/fuolbull.cxx2
-rw-r--r--sd/source/ui/view/drviewsf.cxx2
-rw-r--r--svx/Library_svx.mk1
-rw-r--r--svx/sdi/svx.sdi16
-rw-r--r--svx/source/dialog/svxbmpnumvalueset.cxx1
-rw-r--r--svx/source/tbxctrls/bulletsnumbering.cxx236
-rw-r--r--svx/source/tbxctrls/tbcontrl.src10
-rw-r--r--svx/util/svx.component4
-rw-r--r--sw/source/uibase/shells/textsh1.cxx2
-rw-r--r--sw/source/uibase/shells/txtnum.cxx2
12 files changed, 281 insertions, 19 deletions
diff --git a/include/svx/dialogs.hrc b/include/svx/dialogs.hrc
index 0fe72fa17189..b8755e601f5c 100644
--- a/include/svx/dialogs.hrc
+++ b/include/svx/dialogs.hrc
@@ -253,6 +253,8 @@
#define RID_SVXSTR_LINECOLOR (RID_SVX_START + 201)
#define RID_SVXSTR_MORE_STYLES (RID_SVX_START + 202)
#define RID_SVXSTR_FILLCOLOR (RID_SVX_START + 203)
+#define RID_SVXSTR_MORENUMBERING (RID_SVX_START + 204)
+#define RID_SVXSTR_MOREBULLETS (RID_SVX_START + 205)
// Strings for insert/overwrite mode
#define RID_SVXSTR_INSERT_HELPTEXT (RID_SVX_START + 210)
diff --git a/officecfg/registry/data/org/openoffice/Office/UI/Controller.xcu b/officecfg/registry/data/org/openoffice/Office/UI/Controller.xcu
index c25e19dc2030..74acecb4a710 100644
--- a/officecfg/registry/data/org/openoffice/Office/UI/Controller.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/UI/Controller.xcu
@@ -242,6 +242,28 @@
<value>com.sun.star.comp.sd.InsertSlideController</value>
</prop>
</node>
+ <node oor:name="NumberingToolBox" oor:op="replace">
+ <prop oor:name="Command">
+ <value>.uno:DefaultNumbering</value>
+ </prop>
+ <prop oor:name="Module">
+ <value/>
+ </prop>
+ <prop oor:name="Controller">
+ <value>com.sun.star.comp.svx.NumberingToolBoxControl</value>
+ </prop>
+ </node>
+ <node oor:name="BulletsToolBox" oor:op="replace">
+ <prop oor:name="Command">
+ <value>.uno:DefaultBullet</value>
+ </prop>
+ <prop oor:name="Module">
+ <value/>
+ </prop>
+ <prop oor:name="Controller">
+ <value>com.sun.star.comp.svx.NumberingToolBoxControl</value>
+ </prop>
+ </node>
<node oor:name="ExtrusionDirectionFloater" oor:op="replace">
<prop oor:name="Command">
<value>.uno:ExtrusionDirectionFloater</value>
diff --git a/sd/source/ui/func/fuolbull.cxx b/sd/source/ui/func/fuolbull.cxx
index d0790da6d95e..1f329416b541 100644
--- a/sd/source/ui/func/fuolbull.cxx
+++ b/sd/source/ui/func/fuolbull.cxx
@@ -202,7 +202,7 @@ void FuOutlineBullet::SetCurrentBulletsNumbering(SfxRequest& rReq)
// get numbering rule corresponding to <nIdx> and apply the needed number formats to <pNumRule>
NBOTypeMgrBase* pNumRuleMgr =
NBOutlineTypeMgrFact::CreateInstance(
- nSId == FN_SVX_SET_BULLET ? eNBOType::MIXBULLETS : eNBOType::NUMBERING );
+ nSId == FN_SVX_SET_BULLET ? eNBOType::BULLETS : eNBOType::NUMBERING );
if ( pNumRuleMgr )
{
sal_uInt16 nActNumLvl = (sal_uInt16)0xFFFF;
diff --git a/sd/source/ui/view/drviewsf.cxx b/sd/source/ui/view/drviewsf.cxx
index 0770ed23857e..ec7543378aad 100644
--- a/sd/source/ui/view/drviewsf.cxx
+++ b/sd/source/ui/view/drviewsf.cxx
@@ -620,7 +620,7 @@ void DrawViewShell::GetAttrState( SfxItemSet& rSet )
rSet.Put(SfxUInt16Item(FN_NUM_NUM_RULE_INDEX,(sal_uInt16)0xFFFF));
if ( bBullets )
{
- NBOTypeMgrBase* pBullets = NBOutlineTypeMgrFact::CreateInstance(eNBOType::MIXBULLETS);
+ NBOTypeMgrBase* pBullets = NBOutlineTypeMgrFact::CreateInstance(eNBOType::BULLETS);
if ( pBullets )
{
sal_uInt16 nBulIndex = pBullets->GetNBOIndexForNumRule(*pNumRule,nActNumLvl);
diff --git a/svx/Library_svx.mk b/svx/Library_svx.mk
index 1fc78a2cf0d7..b037c26bec25 100644
--- a/svx/Library_svx.mk
+++ b/svx/Library_svx.mk
@@ -219,6 +219,7 @@ $(eval $(call gb_Library_add_exception_objects,svx,\
svx/source/table/tabledesign \
svx/source/table/tablertfexporter \
svx/source/table/tablertfimporter \
+ svx/source/tbxctrls/bulletsnumbering \
svx/source/tbxctrls/colrctrl \
svx/source/tbxctrls/SvxColorChildWindow \
svx/source/tbxctrls/fillctrl \
diff --git a/svx/sdi/svx.sdi b/svx/sdi/svx.sdi
index 47d5c14620d8..9691ba578622 100644
--- a/svx/sdi/svx.sdi
+++ b/svx/sdi/svx.sdi
@@ -6523,8 +6523,7 @@ SfxVoidItem DefaultNumbering FN_NUM_NUMBERING_ON
GroupId = GID_ENUMERATION;
]
-SfxBoolItem CurrentBulletListType FN_BUL_NUM_RULE_INDEX
-(SfxUInt16Item On FN_PARAM_1)
+SfxUInt16Item CurrentBulletListType FN_BUL_NUM_RULE_INDEX
[
/* flags: */
AutoUpdate = TRUE,
@@ -6539,11 +6538,6 @@ SfxBoolItem CurrentBulletListType FN_BUL_NUM_RULE_INDEX
RecordPerSet;
Synchron;
- ImageRotation = TRUE;
- ImageReflection = TRUE;
- /* status: */
- SlotType = SfxBoolItem
-
/* config: */
AccelConfig = FALSE,
MenuConfig = FALSE,
@@ -6551,8 +6545,7 @@ SfxBoolItem CurrentBulletListType FN_BUL_NUM_RULE_INDEX
ToolBoxConfig = FALSE,
GroupId = GID_ENUMERATION;
]
-SfxBoolItem CurrentNumListType FN_NUM_NUM_RULE_INDEX
-(SfxUInt16Item On FN_PARAM_1)
+SfxUInt16Item CurrentNumListType FN_NUM_NUM_RULE_INDEX
[
/* flags: */
AutoUpdate = TRUE,
@@ -6567,11 +6560,6 @@ SfxBoolItem CurrentNumListType FN_NUM_NUM_RULE_INDEX
RecordPerSet;
Synchron;
- ImageRotation = TRUE;
- ImageReflection = TRUE;
- /* status: */
- SlotType = SfxBoolItem
-
/* config: */
AccelConfig = FALSE,
MenuConfig = FALSE,
diff --git a/svx/source/dialog/svxbmpnumvalueset.cxx b/svx/source/dialog/svxbmpnumvalueset.cxx
index f0e961aaebf9..0963e6d635df 100644
--- a/svx/source/dialog/svxbmpnumvalueset.cxx
+++ b/svx/source/dialog/svxbmpnumvalueset.cxx
@@ -185,7 +185,6 @@ void SvxNumValueSet::UserDraw( const UserDrawEvent& rUDEvt )
pVDev->SetOutputSize( aRectSize );
aOrgRect = aRect;
pVDev->SetFillColor( aBackColor );
- pVDev->DrawRect(aOrgRect);
if(aBackColor == aLineColor)
aLineColor.Invert();
diff --git a/svx/source/tbxctrls/bulletsnumbering.cxx b/svx/source/tbxctrls/bulletsnumbering.cxx
new file mode 100644
index 000000000000..3b72ad9feafc
--- /dev/null
+++ b/svx/source/tbxctrls/bulletsnumbering.cxx
@@ -0,0 +1,236 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#include <com/sun/star/text/DefaultNumberingProvider.hpp>
+#include <com/sun/star/text/XNumberingFormatter.hpp>
+
+#include <comphelper/processfactory.hxx>
+#include <i18nlangtag/mslangid.hxx>
+#include <sfx2/imagemgr.hxx>
+#include <svtools/popupwindowcontroller.hxx>
+#include <svtools/toolbarmenu.hxx>
+#include <svx/dialogs.hrc>
+#include <svx/dialmgr.hxx>
+#include <svx/numvset.hxx>
+#include <vcl/toolbox.hxx>
+#include <vcl/settings.hxx>
+
+#define NUM_PAGETYPE_BULLET 0
+#define NUM_PAGETYPE_SINGLENUM 1
+
+class NumberingPopup : public svtools::ToolbarMenu
+{
+ bool mbBulletItem;
+ svt::ToolboxController& mrController;
+ SvxNumValueSet* mpValueSet;
+ DECL_LINK( VSSelectHdl, void * );
+
+public:
+ NumberingPopup( svt::ToolboxController& rController,
+ const css::uno::Reference< css::frame::XFrame >& rFrame,
+ vcl::Window* pParent, bool bBulletItem );
+
+ virtual void statusChanged( const css::frame::FeatureStateEvent& rEvent )
+ throw ( css::uno::RuntimeException ) SAL_OVERRIDE;
+};
+
+class NumberingToolBoxControl : public svt::PopupWindowController
+{
+ bool mbBulletItem;
+
+public:
+ NumberingToolBoxControl( const css::uno::Reference< css::uno::XComponentContext >& rxContext );
+ virtual vcl::Window* createPopupWindow( vcl::Window* pParent ) SAL_OVERRIDE;
+
+ // XStatusListener
+ virtual void statusChanged( const css::frame::FeatureStateEvent& rEvent )
+ throw ( css::uno::RuntimeException ) SAL_OVERRIDE;
+
+ // XInitialization
+ virtual void SAL_CALL initialize( const css::uno::Sequence< css::uno::Any >& aArguments )
+ throw ( css::uno::Exception, css::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
+
+ // XServiceInfo
+ virtual OUString SAL_CALL getImplementationName()
+ throw ( css::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
+ virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames()
+ throw ( css::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
+
+ using svt::ToolboxController::createPopupWindow;
+};
+
+//class NumberingPopup
+NumberingPopup::NumberingPopup( svt::ToolboxController& rController,
+ const css::uno::Reference< css::frame::XFrame >& rFrame,
+ vcl::Window* pParent, bool bBulletItem ) :
+ ToolbarMenu( rFrame, pParent, WB_STDPOPUP ),
+ mbBulletItem( bBulletItem ),
+ mrController( rController )
+{
+ WinBits nBits = WB_TABSTOP | WB_MENUSTYLEVALUESET | WB_FLATVALUESET | WB_NO_DIRECTSELECT;
+ mpValueSet = new SvxNumValueSet( this, nBits );
+ mpValueSet->init( mbBulletItem ? NUM_PAGETYPE_BULLET : NUM_PAGETYPE_SINGLENUM );
+
+ if ( !mbBulletItem )
+ {
+ css::uno::Reference< css::text::XDefaultNumberingProvider > xDefNum = css::text::DefaultNumberingProvider::create( comphelper::getProcessComponentContext() );
+ if ( xDefNum.is() )
+ {
+ css::uno::Sequence< css::uno::Sequence< css::beans::PropertyValue > > aNumberings;
+ css::lang::Locale aLocale = GetSettings().GetLanguageTag().getLocale();
+ try
+ {
+ aNumberings = xDefNum->getDefaultContinuousNumberingLevels( aLocale );
+ }
+ catch( css::uno::Exception& )
+ {}
+
+ css::uno::Reference< css::text::XNumberingFormatter > xFormat( xDefNum, css::uno::UNO_QUERY );
+ mpValueSet->SetNumberingSettings( aNumberings, xFormat, aLocale );
+ }
+ }
+
+ Size aItemSize( LogicToPixel( Size( 30, 42 ), MAP_APPFONT ) );
+ mpValueSet->SetExtraSpacing( 2 );
+ mpValueSet->SetOutputSizePixel( mpValueSet->CalcWindowSizePixel( aItemSize ) );
+ mpValueSet->SetColor( GetSettings().GetStyleSettings().GetFieldColor() );
+
+ appendEntry( 0, mpValueSet );
+ appendSeparator();
+
+ if ( mbBulletItem )
+ appendEntry( 1, SVX_RESSTR( RID_SVXSTR_MOREBULLETS ), ::GetImage( rFrame, ".uno:OutlineBullet", false ) );
+ else
+ appendEntry( 1, SVX_RESSTR( RID_SVXSTR_MORENUMBERING ), ::GetImage( rFrame, ".uno:OutlineBullet", false ) );
+
+ SetOutputSizePixel( getMenuSize() );
+ Link aLink = LINK( this, NumberingPopup, VSSelectHdl );
+ mpValueSet->SetSelectHdl( aLink );
+ SetSelectHdl( aLink );
+
+ if ( mbBulletItem )
+ AddStatusListener( ".uno:CurrentBulletListType" );
+ else
+ AddStatusListener( ".uno:CurrentNumListType" );
+}
+
+void NumberingPopup::statusChanged( const css::frame::FeatureStateEvent& rEvent )
+ throw ( css::uno::RuntimeException )
+{
+ mpValueSet->SetNoSelection();
+
+ sal_Int32 nSelItem;
+ if ( rEvent.State >>= nSelItem )
+ mpValueSet->SelectItem( nSelItem );
+}
+
+IMPL_LINK( NumberingPopup, VSSelectHdl, void *, pControl )
+{
+ if ( IsInPopupMode() )
+ EndPopupMode();
+
+ if ( pControl == mpValueSet )
+ {
+ sal_uInt16 nSelItem = mpValueSet->GetSelectItemId();
+ css::uno::Sequence< css::beans::PropertyValue > aArgs( 1 );
+ if ( mbBulletItem )
+ {
+ aArgs[0].Name = "SetBullet";
+ aArgs[0].Value <<= sal_uInt16( nSelItem );
+ mrController.dispatchCommand( ".uno:SetBullet", aArgs );
+ }
+ else
+ {
+ aArgs[0].Name = "SetNumber";
+ aArgs[0].Value <<= sal_uInt16( nSelItem );
+ mrController.dispatchCommand( ".uno:SetNumber", aArgs );
+ }
+ }
+ else if ( getSelectedEntryId() == 1 )
+ {
+ css::uno::Sequence< css::beans::PropertyValue > aArgs( 0 );
+ mrController.dispatchCommand( ".uno:OutlineBullet", aArgs );
+ }
+
+ return 0;
+}
+
+
+//class NumberingToolBoxControl
+NumberingToolBoxControl::NumberingToolBoxControl( const css::uno::Reference< css::uno::XComponentContext >& rxContext ):
+ svt::PopupWindowController( rxContext, css::uno::Reference< css::frame::XFrame >(), OUString() ),
+ mbBulletItem( false )
+{
+}
+
+vcl::Window* NumberingToolBoxControl::createPopupWindow( vcl::Window* pParent )
+{
+ return new NumberingPopup( *this, m_xFrame, pParent, mbBulletItem );
+}
+
+void NumberingToolBoxControl::statusChanged( const css::frame::FeatureStateEvent& rEvent )
+ throw ( css::uno::RuntimeException )
+{
+ ToolBox* pToolBox = 0;
+ sal_uInt16 nId = 0;
+ if ( getToolboxId( nId, &pToolBox ) )
+ {
+ pToolBox->EnableItem( nId, rEvent.IsEnabled );
+ bool bChecked;
+ if ( rEvent.State >>= bChecked )
+ pToolBox->CheckItem( nId, bChecked );
+ }
+}
+
+void SAL_CALL NumberingToolBoxControl::initialize( const css::uno::Sequence< css::uno::Any >& aArguments )
+ throw ( css::uno::Exception, css::uno::RuntimeException, std::exception )
+{
+ svt::PopupWindowController::initialize( aArguments );
+
+ ToolBox* pToolBox = 0;
+ sal_uInt16 nId = 0;
+ if ( getToolboxId( nId, &pToolBox ) )
+ pToolBox->SetItemBits( nId, pToolBox->GetItemBits( nId ) | ToolBoxItemBits::DROPDOWN );
+
+ mbBulletItem = m_aCommandURL == ".uno:DefaultBullet";
+}
+
+OUString SAL_CALL NumberingToolBoxControl::getImplementationName()
+ throw ( css::uno::RuntimeException, std::exception )
+{
+ return OUString( "com.sun.star.comp.svx.NumberingToolBoxControl" );
+}
+
+css::uno::Sequence< OUString > SAL_CALL NumberingToolBoxControl::getSupportedServiceNames()
+ throw ( css::uno::RuntimeException, std::exception )
+{
+ css::uno::Sequence< OUString > aRet( 1 );
+ aRet[0] = "com.sun.star.frame.ToolbarController";
+ return aRet;
+}
+
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
+com_sun_star_comp_svx_NumberingToolBoxControl_get_implementation(
+ css::uno::XComponentContext *rxContext,
+ css::uno::Sequence<css::uno::Any> const & )
+{
+ return cppu::acquire( new NumberingToolBoxControl( rxContext ) );
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svx/source/tbxctrls/tbcontrl.src b/svx/source/tbxctrls/tbcontrl.src
index b13cf629d6dd..0e250c3ad8f7 100644
--- a/svx/source/tbxctrls/tbcontrl.src
+++ b/svx/source/tbxctrls/tbcontrl.src
@@ -81,6 +81,16 @@ String RID_SVXSTR_FILLCOLOR
Text [ en-US ] = "Fill Color" ;
};
+String RID_SVXSTR_MORENUMBERING
+{
+ Text [ en-US ] = "More Numbering..." ;
+};
+
+String RID_SVXSTR_MOREBULLETS
+{
+ Text [ en-US ] = "More Bullets..." ;
+};
+
ComboBox RID_SVXTBX_STYLE
{
HelpId = HID_STYLE_LISTBOX ;
diff --git a/svx/util/svx.component b/svx/util/svx.component
index 5529d276dbfd..967677befed0 100644
--- a/svx/util/svx.component
+++ b/svx/util/svx.component
@@ -80,4 +80,8 @@
constructor="org_apache_openoffice_comp_svx_sidebar_PanelFactory_get_implementation">
<service name="com.sun.star.ui.UIElementFactory"/>
</implementation>
+ <implementation name="com.sun.star.comp.svx.NumberingToolBoxControl"
+ constructor="com_sun_star_comp_svx_NumberingToolBoxControl_get_implementation">
+ <service name="com.sun.star.frame.ToolbarController"/>
+ </implementation>
</component>
diff --git a/sw/source/uibase/shells/textsh1.cxx b/sw/source/uibase/shells/textsh1.cxx
index 5dfef0497004..c94fa1fc5903 100644
--- a/sw/source/uibase/shells/textsh1.cxx
+++ b/sw/source/uibase/shells/textsh1.cxx
@@ -1784,7 +1784,7 @@ void SwTextShell::GetState( SfxItemSet &rSet )
{
rSet.Put(SfxUInt16Item(FN_BUL_NUM_RULE_INDEX, USHRT_MAX));
rSet.Put(SfxUInt16Item(FN_NUM_NUM_RULE_INDEX, USHRT_MAX));
- NBOTypeMgrBase* pBullets = NBOutlineTypeMgrFact::CreateInstance(eNBOType::MIXBULLETS);
+ NBOTypeMgrBase* pBullets = NBOutlineTypeMgrFact::CreateInstance(eNBOType::BULLETS);
if ( pBullets )
{
const sal_uInt16 nBulIndex = pBullets->GetNBOIndexForNumRule(aSvxRule,nActNumLvl);
diff --git a/sw/source/uibase/shells/txtnum.cxx b/sw/source/uibase/shells/txtnum.cxx
index 663927ece749..6f4fafe0f174 100644
--- a/sw/source/uibase/shells/txtnum.cxx
+++ b/sw/source/uibase/shells/txtnum.cxx
@@ -258,7 +258,7 @@ void SwTextShell::ExecSetNumber(SfxRequest &rReq)
svx::sidebar::NBOTypeMgrBase* pNBOTypeMgr =
nSlot == FN_SVX_SET_NUMBER
? svx::sidebar::NBOutlineTypeMgrFact::CreateInstance( svx::sidebar::eNBOType::NUMBERING )
- : svx::sidebar::NBOutlineTypeMgrFact::CreateInstance( svx::sidebar::eNBOType::MIXBULLETS );
+ : svx::sidebar::NBOutlineTypeMgrFact::CreateInstance( svx::sidebar::eNBOType::BULLETS );
if ( pNBOTypeMgr != NULL )
{
const SwNumRule* pNumRuleAtCurrentSelection = GetShell().GetNumRuleAtCurrentSelection();