[Libreoffice-commits] core.git: 14 commits - framework/inc framework/Library_fwk.mk framework/Library_fwl.mk framework/source framework/util include/framework include/sfx2 include/svtools include/toolkit include/vcl offapi/com offapi/UnoApi_offapi.mk officecfg/registry reportdesign/source sfx2/source svtools/source toolkit/source vcl/generic vcl/source

Ariel Constenla-Haile arielch at apache.org
Tue May 21 06:03:20 PDT 2013


 framework/Library_fwk.mk                                        |    3 
 framework/Library_fwl.mk                                        |    3 
 framework/inc/classes/resource.hrc                              |    4 
 framework/inc/services.h                                        |    3 
 framework/inc/uielement/genericstatusbarcontroller.hxx          |   57 ++
 framework/inc/uielement/langselectionstatusbarcontroller.hxx    |   22 
 framework/inc/uielement/logoimagestatusbarcontroller.hxx        |   82 ---
 framework/inc/uielement/logotextstatusbarcontroller.hxx         |   82 ---
 framework/inc/uielement/simpletextstatusbarcontroller.hxx       |   84 ---
 framework/inc/uielement/statusbaritem.hxx                       |   79 +++
 framework/inc/uielement/statusbarmanager.hxx                    |    5 
 framework/inc/uielement/statusbarmerger.hxx                     |   81 +++
 framework/source/classes/resource.src                           |   11 
 framework/source/fwe/classes/addonsoptions.cxx                  |  236 ++++++++-
 framework/source/register/registerservices.cxx                  |    1 
 framework/source/register/registertemp.cxx                      |    6 
 framework/source/uielement/genericstatusbarcontroller.cxx       |  163 ++++++
 framework/source/uielement/langselectionstatusbarcontroller.cxx |  176 +-----
 framework/source/uielement/logoimagestatusbarcontroller.cxx     |  167 ------
 framework/source/uielement/logotextstatusbarcontroller.cxx      |  170 ------
 framework/source/uielement/simpletextstatusbarcontroller.cxx    |  186 -------
 framework/source/uielement/statusbaritem.cxx                    |  257 +++++++++
 framework/source/uielement/statusbarmanager.cxx                 |  248 +++++++--
 framework/source/uielement/statusbarmerger.cxx                  |  258 ++++++++++
 framework/source/uielement/toolbarmerger.cxx                    |   50 -
 framework/util/fwl.component                                    |    9 
 include/framework/addonsoptions.hxx                             |   22 
 include/sfx2/stbitem.hxx                                        |    8 
 include/svtools/statusbarcontroller.hxx                         |   15 
 include/toolkit/awt/vclxgraphics.hxx                            |   80 +--
 include/vcl/status.hxx                                          |   15 
 offapi/UnoApi_offapi.mk                                         |    3 
 offapi/com/sun/star/awt/ImageDrawMode.idl                       |   55 ++
 offapi/com/sun/star/awt/XGraphics.idl                           |   44 -
 offapi/com/sun/star/awt/XGraphics2.idl                          |   79 +++
 offapi/com/sun/star/frame/StatusbarController.idl               |   72 --
 offapi/com/sun/star/frame/XStatusbarController.idl              |   82 ++-
 offapi/com/sun/star/ui/XStatusbarItem.idl                       |  111 ++++
 officecfg/registry/data/org/openoffice/Office/UI/Controller.xcu |   22 
 officecfg/registry/schema/org/openoffice/Office/Addons.xcs      |  107 ++++
 reportdesign/source/ui/inc/statusbarcontroller.hxx              |   15 
 reportdesign/source/ui/misc/statusbarcontroller.cxx             |   64 +-
 sfx2/source/statbar/stbitem.cxx                                 |    7 
 svtools/source/uno/statusbarcontroller.cxx                      |   73 +-
 toolkit/source/awt/vclxgraphics.cxx                             |  173 +++++-
 vcl/generic/fontmanager/fontconfig.cxx                          |   14 
 vcl/source/window/status.cxx                                    |  175 ++++++
 47 files changed, 2296 insertions(+), 1383 deletions(-)

New commits:
commit f59d23fedc89890f47eac3b05f54bdcb7325f7af
Author: Ariel Constenla-Haile <arielch at apache.org>
Date:   Fri Dec 7 04:19:15 2012 +0000

    Remove unused commented code
    
    (cherry picked from commit d8933b9c61e3e15f788f43043975f48d9d5b6cfd)
    
    Change-Id: I9856e1f26f9467c281ebaabe3d520e4fa59163c4

diff --git a/framework/source/uielement/statusbarmerger.cxx b/framework/source/uielement/statusbarmerger.cxx
index b0e9624..098c621 100644
--- a/framework/source/uielement/statusbarmerger.cxx
+++ b/framework/source/uielement/statusbarmerger.cxx
@@ -168,17 +168,6 @@ static bool lcl_RemoveItems( StatusBar* pStatusbar,
     return true;
 }
 
-/*
-static ::cppu::OWeakObject* CreateController(
-    ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xSMGR,
-    ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame > xFrame,
-    StatusBar* pStatusbar,
-    const ::rtl::OUString& rCommandURL,
-    sal_uInt16 nId,
-    sal_uInt16 nWidth,
-    const ::rtl::OUString& rControlType );
-
-*/
 }
 
 bool StatusbarMerger::IsCorrectContext(
commit 3f0dbd2cbe17f276ac3b2445ac76ff0cafc260c6
Author: Ariel Constenla-Haile <arielch at apache.org>
Date:   Fri Dec 7 04:14:25 2012 +0000

    Fix build breaker: missing css::uno::XInterface include
    
    (cherry picked from commit 9a421d5c9c0fd4f04c08c10e24275255fdf34f83)
    
    Change-Id: I27c4602a5144fddb18190698d0928b9b96af8a9b

diff --git a/offapi/com/sun/star/ui/XStatusbarItem.idl b/offapi/com/sun/star/ui/XStatusbarItem.idl
index 182af2f..5bb6791 100644
--- a/offapi/com/sun/star/ui/XStatusbarItem.idl
+++ b/offapi/com/sun/star/ui/XStatusbarItem.idl
@@ -18,6 +18,7 @@
 #ifndef __com_sun_star_ui_XStatusbarItem_idl__
 #define __com_sun_star_ui_XStatusbarItem_idl__
 
+#include <com/sun/star/uno/XInterface.idl>
 #include <com/sun/star/awt/Rectangle.idl>
 
 module com {  module sun {  module star {  module ui {
commit 4fcda14828d2fa65cc2541ed3e3cb93dd7bc9ac8
Author: Ariel Constenla-Haile <arielch at apache.org>
Date:   Thu Dec 6 12:30:14 2012 +0000

    Related: #i121442# Remove unused UNO StatusbarControllers
    
    (cherry picked from commit 06b91eb4cc81dde86875445c5acaa5c57111333b)
    
    Conflicts:
    	framework/inc/uielement/logoimagestatusbarcontroller.hxx
    	framework/inc/uielement/logotextstatusbarcontroller.hxx
    	framework/inc/uielement/simpletextstatusbarcontroller.hxx
    	framework/source/classes/resource.src
    	framework/source/register/registerservices.cxx
    	framework/source/uielement/logoimagestatusbarcontroller.cxx
    	framework/source/uielement/logotextstatusbarcontroller.cxx
    	framework/source/uielement/simpletextstatusbarcontroller.cxx
    	officecfg/registry/data/org/openoffice/Office/UI/Controller.xcu
    
    Change-Id: I799bd0fa29191efce4fe9a09f74247e38d8f8873

diff --git a/framework/Library_fwl.mk b/framework/Library_fwl.mk
index fb8b385..afcb77c 100644
--- a/framework/Library_fwl.mk
+++ b/framework/Library_fwl.mk
@@ -66,12 +66,9 @@ $(eval $(call gb_Library_add_exception_objects,fwl,\
     framework/source/uielement/footermenucontroller \
     framework/source/uielement/headermenucontroller \
     framework/source/uielement/langselectionmenucontroller \
-    framework/source/uielement/logoimagestatusbarcontroller \
-    framework/source/uielement/logotextstatusbarcontroller \
     framework/source/uielement/macrosmenucontroller \
     framework/source/uielement/newmenucontroller \
     framework/source/uielement/popupmenucontroller \
-    framework/source/uielement/simpletextstatusbarcontroller \
     framework/source/uielement/toolbarsmenucontroller \
 ))
 
diff --git a/framework/inc/classes/resource.hrc b/framework/inc/classes/resource.hrc
index 8d1d236..673e90d 100644
--- a/framework/inc/classes/resource.hrc
+++ b/framework/inc/classes/resource.hrc
@@ -33,7 +33,7 @@
 #define STR_SAVECOPYDOC                         (RID_STR_START+5)
 #define STR_NODOCUMENT                          (RID_STR_START+6)
 #define STR_TOOLBAR_TITLE_ADDON                 (RID_STR_START+7)
-#define STR_STATUSBAR_LOGOTEXT                  (RID_STR_START+8)
+
 #define STR_FULL_DISC_RETRY_BUTTON              (RID_STR_START+9)  // used by AuotSave to show error state: full disc
 #define STR_FULL_DISC_MSG                       (RID_STR_START+10) // used by AuotSave to show error state: full disc
 #define STR_RESTORE_TOOLBARS                    (RID_STR_START+11)
@@ -60,8 +60,6 @@
 #define MENUITEM_TOOLBAR_LOCKTOOLBARPOSITION    5
 #define MENUITEM_TOOLBAR_CLOSE                  6
 
-#define RID_IMAGE_STATUSBAR_LOGO                (RID_IMAGE_START+0)
-
 // License Dialog
 #define DLG_LICENSE                             (RID_FWK_DIALOG_START+256)
 #define ML_LICENSE                              (RID_FWK_DIALOG_START+11)
diff --git a/framework/inc/services.h b/framework/inc/services.h
index cda8d13..cd3eb2b 100644
--- a/framework/inc/services.h
+++ b/framework/inc/services.h
@@ -108,13 +108,10 @@ namespace framework{
 #define IMPLEMENTATIONNAME_SESSIONLISTENER                      DECLARE_ASCII("com.sun.star.comp.frame.SessionListener"             )
 #define IMPLEMENTATIONNAME_HELPONSTARTUP                        DECLARE_ASCII("com.sun.star.comp.framework.HelpOnStartup"           )
 #define IMPLEMENTATIONNAME_SHELLJOB                             DECLARE_ASCII("com.sun.star.comp.framework.ShellJob"                )
-#define IMPLEMENTATIONNAME_LOGOIMAGESTATUSBARCONTROLLER         DECLARE_ASCII("com.sun.star.comp.framework.LogoImageStatusbarController" )
-#define IMPLEMENTATIONNAME_LOGOTEXTSTATUSBARCONTROLLER          DECLARE_ASCII("com.sun.star.comp.framework.LogoTextStatusbarController" )
 #define IMPLEMENTATIONNAME_FWK_TASKCREATOR                      DECLARE_ASCII("com.sun.star.comp.framework.TaskCreator"                 )
 #define IMPLEMENTATIONNAME_TABWINFACTORY                        DECLARE_ASCII("com.sun.star.comp.framework.TabWindowFactory"        )
 #define IMPLEMENTATIONNAME_TABWINDOW                            DECLARE_ASCII("com.sun.star.comp.framework.TabWindow"               )
 #define IMPLEMENTATIONNAME_SYSTEMEXEC                           DECLARE_ASCII("com.sun.star.comp.framework.SystemExecute"           )
-#define IMPLEMENTATIONNAME_SIMPLETEXTSTATUSBARCONTROLLER        DECLARE_ASCII("com.sun.star.comp.framework.SimpleTextStatusbarController" )
 #define IMPLEMENTATIONNAME_URIABBREVIATION                      DECLARE_ASCII("com.sun.star.comp.framework.UriAbbreviation"         )
 #define IMPLEMENTATIONNAME_POPUPMENUDISPATCHER                  DECLARE_ASCII("com.sun.star.comp.framework.PopupMenuControllerDispatcher" )
 #define IMPLEMENTATIONNAME_LANGSELECTIONSTATUSBARCONTROLLER     DECLARE_ASCII("com.sun.star.comp.framework.LangSelectionStatusbarController"  )
diff --git a/framework/inc/uielement/logoimagestatusbarcontroller.hxx b/framework/inc/uielement/logoimagestatusbarcontroller.hxx
deleted file mode 100644
index 3492c8a..0000000
--- a/framework/inc/uielement/logoimagestatusbarcontroller.hxx
+++ /dev/null
@@ -1,82 +0,0 @@
-/* -*- 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 .
- */
-
-#ifndef __FRAMEWORK_UIELEMENT_LOGOIMAGESTATUSBARCONTROLLER_HXX_
-#define __FRAMEWORK_UIELEMENT_LOGOIMAGESTATUSBARCONTROLLER_HXX_
-
-#include <macros/generic.hxx>
-#include <macros/xinterface.hxx>
-#include <macros/xtypeprovider.hxx>
-#include <macros/xserviceinfo.hxx>
-#include <stdtypes.h>
-#include <svtools/statusbarcontroller.hxx>
-#include <vcl/image.hxx>
-
-namespace framework
-{
-
-class LogoImageStatusbarController : public svt::StatusbarController
-{
-    public:
-        LogoImageStatusbarController( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceManager );
-        virtual ~LogoImageStatusbarController();
-
-        // XServiceInfo
-        DECLARE_XSERVICEINFO
-
-        // XInterface
-        virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& aType ) throw (::com::sun::star::uno::RuntimeException);
-        virtual void SAL_CALL acquire() throw ();
-        virtual void SAL_CALL release() throw ();
-
-        // XInitialization
-        virtual void SAL_CALL initialize( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments ) throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException);
-
-        // XComponent
-        virtual void SAL_CALL dispose() throw ( ::com::sun::star::uno::RuntimeException );
-
-        // XEventListener
-        virtual void SAL_CALL disposing( const com::sun::star::lang::EventObject& Source ) throw ( ::com::sun::star::uno::RuntimeException );
-
-        // XStatusListener
-        virtual void SAL_CALL statusChanged( const ::com::sun::star::frame::FeatureStateEvent& Event ) throw ( ::com::sun::star::uno::RuntimeException );
-
-        // XStatusbarController
-        virtual ::sal_Bool SAL_CALL mouseButtonDown( const ::com::sun::star::awt::MouseEvent& aMouseEvent ) throw (::com::sun::star::uno::RuntimeException);
-        virtual ::sal_Bool SAL_CALL mouseMove( const ::com::sun::star::awt::MouseEvent& aMouseEvent ) throw (::com::sun::star::uno::RuntimeException);
-        virtual ::sal_Bool SAL_CALL mouseButtonUp( const ::com::sun::star::awt::MouseEvent& aMouseEvent ) throw (::com::sun::star::uno::RuntimeException);
-        virtual void SAL_CALL command( const ::com::sun::star::awt::Point& aPos,
-                                       ::sal_Int32 nCommand,
-                                       ::sal_Bool bMouseEvent,
-                                       const ::com::sun::star::uno::Any& aData ) throw (::com::sun::star::uno::RuntimeException);
-        virtual void SAL_CALL paint( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XGraphics >& xGraphics,
-                                     const ::com::sun::star::awt::Rectangle& rOutputRectangle,
-                                     ::sal_Int32 nItemId, ::sal_Int32 nStyle ) throw (::com::sun::star::uno::RuntimeException);
-        virtual void SAL_CALL click() throw (::com::sun::star::uno::RuntimeException);
-        virtual void SAL_CALL doubleClick() throw (::com::sun::star::uno::RuntimeException);
-
-    private:
-        Image   m_aLogoImage;
-};
-
-}
-
-#endif // __FRAMEWORK_UIELEMENT_LOGOIMAGESTATUSBARCONTROLLER_HXX_
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/framework/inc/uielement/logotextstatusbarcontroller.hxx b/framework/inc/uielement/logotextstatusbarcontroller.hxx
deleted file mode 100644
index 4b52656..0000000
--- a/framework/inc/uielement/logotextstatusbarcontroller.hxx
+++ /dev/null
@@ -1,82 +0,0 @@
-/* -*- 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 .
- */
-
-#ifndef __FRAMEWORK_UIELEMENT_LOGOTEXTSTATUSBARCONTROLLER_HXX_
-#define __FRAMEWORK_UIELEMENT_LOGOTEXTSTATUSBARCONTROLLER_HXX_
-
-#include <macros/generic.hxx>
-#include <macros/xinterface.hxx>
-#include <macros/xtypeprovider.hxx>
-#include <macros/xserviceinfo.hxx>
-#include <stdtypes.h>
-#include <svtools/statusbarcontroller.hxx>
-#include <vcl/image.hxx>
-
-namespace framework
-{
-
-class LogoTextStatusbarController : public svt::StatusbarController
-{
-    public:
-        LogoTextStatusbarController( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceManager );
-        virtual ~LogoTextStatusbarController();
-
-        // XServiceInfo
-        DECLARE_XSERVICEINFO
-
-        // XInterface
-        virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& aType ) throw (::com::sun::star::uno::RuntimeException);
-        virtual void SAL_CALL acquire() throw ();
-        virtual void SAL_CALL release() throw ();
-
-        // XInitialization
-        virtual void SAL_CALL initialize( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments ) throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException);
-
-        // XComponent
-        virtual void SAL_CALL dispose() throw ( ::com::sun::star::uno::RuntimeException );
-
-        // XEventListener
-        virtual void SAL_CALL disposing( const com::sun::star::lang::EventObject& Source ) throw ( ::com::sun::star::uno::RuntimeException );
-
-        // XStatusListener
-        virtual void SAL_CALL statusChanged( const ::com::sun::star::frame::FeatureStateEvent& Event ) throw ( ::com::sun::star::uno::RuntimeException );
-
-        // XStatusbarController
-        virtual ::sal_Bool SAL_CALL mouseButtonDown( const ::com::sun::star::awt::MouseEvent& aMouseEvent ) throw (::com::sun::star::uno::RuntimeException);
-        virtual ::sal_Bool SAL_CALL mouseMove( const ::com::sun::star::awt::MouseEvent& aMouseEvent ) throw (::com::sun::star::uno::RuntimeException);
-        virtual ::sal_Bool SAL_CALL mouseButtonUp( const ::com::sun::star::awt::MouseEvent& aMouseEvent ) throw (::com::sun::star::uno::RuntimeException);
-        virtual void SAL_CALL command( const ::com::sun::star::awt::Point& aPos,
-                                       ::sal_Int32 nCommand,
-                                       ::sal_Bool bMouseEvent,
-                                       const ::com::sun::star::uno::Any& aData ) throw (::com::sun::star::uno::RuntimeException);
-        virtual void SAL_CALL paint( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XGraphics >& xGraphics,
-                                     const ::com::sun::star::awt::Rectangle& rOutputRectangle,
-                                     ::sal_Int32 nItemId, ::sal_Int32 nStyle ) throw (::com::sun::star::uno::RuntimeException);
-        virtual void SAL_CALL click() throw (::com::sun::star::uno::RuntimeException);
-        virtual void SAL_CALL doubleClick() throw (::com::sun::star::uno::RuntimeException);
-
-    private:
-        OUString   m_aLogoText;
-};
-
-}
-
-#endif // __FRAMEWORK_UIELEMENT_LOGOTEXTSTATUSBARCONTROLLER_HXX_
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/framework/inc/uielement/simpletextstatusbarcontroller.hxx b/framework/inc/uielement/simpletextstatusbarcontroller.hxx
deleted file mode 100644
index a40d122..0000000
--- a/framework/inc/uielement/simpletextstatusbarcontroller.hxx
+++ /dev/null
@@ -1,84 +0,0 @@
-/* -*- 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 .
- */
-
-#ifndef __FRAMEWORK_UIELEMENT_SIMPLETEXTSTATUSBARCONTROLLER_HXX_
-#define __FRAMEWORK_UIELEMENT_SIMPLETEXTSTATUSBARCONTROLLER_HXX_
-
-#include <macros/generic.hxx>
-#include <macros/xinterface.hxx>
-#include <macros/xtypeprovider.hxx>
-#include <macros/xserviceinfo.hxx>
-#include <stdtypes.h>
-
-#include <boost/unordered_map.hpp>
-#include <svtools/statusbarcontroller.hxx>
-#include <vcl/image.hxx>
-
-namespace framework
-{
-
-class SimpleTextStatusbarController : public svt::StatusbarController
-{
-    public:
-        SimpleTextStatusbarController( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceManager );
-        virtual ~SimpleTextStatusbarController();
-
-        // XServiceInfo
-        DECLARE_XSERVICEINFO
-
-        // XInterface
-        virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& aType ) throw (::com::sun::star::uno::RuntimeException);
-        virtual void SAL_CALL acquire() throw ();
-        virtual void SAL_CALL release() throw ();
-
-        // XInitialization
-        virtual void SAL_CALL initialize( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments ) throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException);
-
-        // XComponent
-        virtual void SAL_CALL dispose() throw ( ::com::sun::star::uno::RuntimeException );
-
-        // XEventListener
-        virtual void SAL_CALL disposing( const com::sun::star::lang::EventObject& Source ) throw ( ::com::sun::star::uno::RuntimeException );
-
-        // XStatusListener
-        virtual void SAL_CALL statusChanged( const ::com::sun::star::frame::FeatureStateEvent& Event ) throw ( ::com::sun::star::uno::RuntimeException );
-
-        // XStatusbarController
-        virtual ::sal_Bool SAL_CALL mouseButtonDown( const ::com::sun::star::awt::MouseEvent& aMouseEvent ) throw (::com::sun::star::uno::RuntimeException);
-        virtual ::sal_Bool SAL_CALL mouseMove( const ::com::sun::star::awt::MouseEvent& aMouseEvent ) throw (::com::sun::star::uno::RuntimeException);
-        virtual ::sal_Bool SAL_CALL mouseButtonUp( const ::com::sun::star::awt::MouseEvent& aMouseEvent ) throw (::com::sun::star::uno::RuntimeException);
-        virtual void SAL_CALL command( const ::com::sun::star::awt::Point& aPos,
-                                       ::sal_Int32 nCommand,
-                                       ::sal_Bool bMouseEvent,
-                                       const ::com::sun::star::uno::Any& aData ) throw (::com::sun::star::uno::RuntimeException);
-        virtual void SAL_CALL paint( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XGraphics >& xGraphics,
-                                     const ::com::sun::star::awt::Rectangle& rOutputRectangle,
-                                     ::sal_Int32 nItemId, ::sal_Int32 nStyle ) throw (::com::sun::star::uno::RuntimeException);
-        virtual void SAL_CALL click() throw (::com::sun::star::uno::RuntimeException);
-        virtual void SAL_CALL doubleClick() throw (::com::sun::star::uno::RuntimeException);
-
-    private:
-        OUString   m_aText;
-};
-
-}
-
-#endif // __FRAMEWORK_UIELEMENT_SIMPLETEXTSTATUSBARCONTROLLER_HXX_
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/framework/source/classes/resource.src b/framework/source/classes/resource.src
index 24874e5..8b1587a 100644
--- a/framework/source/classes/resource.src
+++ b/framework/source/classes/resource.src
@@ -119,11 +119,6 @@ String STR_TOOLBAR_TITLE_ADDON
     Text [ en-US ] = "Add-On %num%";
 };
 
-String STR_STATUSBAR_LOGOTEXT
-{
-    Text [ en-US ] = "A %PRODUCTNAME product by %OOOVENDOR";
-};
-
 // ***********************************************************************
 //       License Dialog
 // ***********************************************************************
@@ -273,12 +268,6 @@ ModalDialog DLG_LICENSE
 
 };
 
-Image RID_IMAGE_STATUSBAR_LOGO
-{
-    ImageBitmap = Bitmap { File = "logo.png" ; };
-    MaskColor = Color { Red = 0xFFFF; Green = 0x0000; Blue = 0xFFFF; };
-};
-
 String STR_FULL_DISC_RETRY_BUTTON
 {
     Text [ en-US ] = "Retry" ;
diff --git a/framework/source/register/registerservices.cxx b/framework/source/register/registerservices.cxx
index 33ce118..8d9c058 100644
--- a/framework/source/register/registerservices.cxx
+++ b/framework/source/register/registerservices.cxx
@@ -66,6 +66,7 @@
 #include <uiconfiguration/uicategorydescription.hxx>
 #include <services/sessionlistener.hxx>
 #include <services/taskcreatorsrv.hxx>
+
 #include <uielement/langselectionstatusbarcontroller.hxx>
 #include <uiconfiguration/imagemanager.hxx>
 #include <uifactory/windowcontentfactorymanager.hxx>
diff --git a/framework/source/register/registertemp.cxx b/framework/source/register/registertemp.cxx
index 9d9e673..1f0967d 100644
--- a/framework/source/register/registertemp.cxx
+++ b/framework/source/register/registertemp.cxx
@@ -42,9 +42,6 @@
 #include <recording/dispatchrecordersupplier.hxx>
 #include <services/license.hxx>
 #include <services/uriabbreviation.hxx>
-#include <uielement/simpletextstatusbarcontroller.hxx>
-#include <uielement/logoimagestatusbarcontroller.hxx>
-#include <uielement/logotextstatusbarcontroller.hxx>
 #include <uielement/fontmenucontroller.hxx>
 #include <uielement/fontsizemenucontroller.hxx>
 #include <uielement/footermenucontroller.hxx>
@@ -59,14 +56,11 @@ COMPONENTGETFACTORY ( fwl,
                         IFFACTORY( ::framework::MediaTypeDetectionHelper        )
                         IFFACTORY( ::framework::MailToDispatcher                        ) else
                         IFFACTORY( ::framework::ServiceHandler                          )   else
-                        IFFACTORY( ::framework::LogoTextStatusbarController             )   else
-                        IFFACTORY( ::framework::LogoImageStatusbarController            )   else
                         IFFACTORY( ::framework::License                                 )   else
                         IFFACTORY( ::framework::PopupMenuDispatcher                     )   else
                         IFFACTORY( ::framework::DispatchHelper                          )   else
                         IFFACTORY( ::framework::DispatchRecorder                        )   else
                         IFFACTORY( ::framework::DispatchRecorderSupplier                )   else
-                        IFFACTORY( ::framework::SimpleTextStatusbarController           )   else
                         IFFACTORY( ::framework::ToolbarsMenuController                  )   else
                         IFFACTORY( ::framework::FontMenuController                      )   else
                         IFFACTORY( ::framework::MacrosMenuController                    )   else
diff --git a/framework/source/uielement/logoimagestatusbarcontroller.cxx b/framework/source/uielement/logoimagestatusbarcontroller.cxx
deleted file mode 100644
index f2032c7..0000000
--- a/framework/source/uielement/logoimagestatusbarcontroller.cxx
+++ /dev/null
@@ -1,167 +0,0 @@
-/* -*- 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 <uielement/logoimagestatusbarcontroller.hxx>
-#include <classes/fwlresid.hxx>
-#include <services.h>
-#include <classes/resource.hrc>
-#include <osl/mutex.hxx>
-#include <vcl/svapp.hxx>
-#include <vcl/window.hxx>
-#include <vcl/status.hxx>
-#include <toolkit/unohlp.hxx>
-#include <toolkit/helper/convert.hxx>
-
-using namespace ::rtl;
-using namespace ::cppu;
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::frame;
-
-namespace framework
-{
-
-DEFINE_XSERVICEINFO_MULTISERVICE        (   LogoImageStatusbarController            ,
-                                            OWeakObject                             ,
-                                            SERVICENAME_STATUSBARCONTROLLER         ,
-                                            IMPLEMENTATIONNAME_LOGOIMAGESTATUSBARCONTROLLER
-                                        )
-
-DEFINE_INIT_SERVICE                     (   LogoImageStatusbarController, {} )
-
-LogoImageStatusbarController::LogoImageStatusbarController( const uno::Reference< lang::XMultiServiceFactory >& xServiceManager ) :
-    svt::StatusbarController( xServiceManager, uno::Reference< frame::XFrame >(), OUString(), 0 )
-{
-    Image aImage( FwlResId( RID_IMAGE_STATUSBAR_LOGO ));
-    m_aLogoImage = aImage;
-}
-
-LogoImageStatusbarController::~LogoImageStatusbarController()
-{
-}
-
-// XInterface
-Any SAL_CALL LogoImageStatusbarController::queryInterface( const Type& rType )
-throw ( RuntimeException )
-{
-    return svt::StatusbarController::queryInterface( rType );
-}
-
-void SAL_CALL LogoImageStatusbarController::acquire() throw ()
-{
-    svt::StatusbarController::acquire();
-}
-
-void SAL_CALL LogoImageStatusbarController::release() throw ()
-{
-    svt::StatusbarController::release();
-}
-
-void SAL_CALL LogoImageStatusbarController::initialize( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments )
-throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException)
-{
-    SolarMutexGuard aSolarMutexGuard;
-
-    svt::StatusbarController::initialize( aArguments );
-}
-
-// XComponent
-void SAL_CALL LogoImageStatusbarController::dispose()
-throw (::com::sun::star::uno::RuntimeException)
-{
-    svt::StatusbarController::dispose();
-}
-
-// XEventListener
-void SAL_CALL LogoImageStatusbarController::disposing( const EventObject& Source )
-throw ( RuntimeException )
-{
-    svt::StatusbarController::disposing( Source );
-}
-
-// XStatusListener
-void SAL_CALL LogoImageStatusbarController::statusChanged( const FeatureStateEvent& )
-throw ( RuntimeException )
-{
-}
-
-// XStatusbarController
-::sal_Bool SAL_CALL LogoImageStatusbarController::mouseButtonDown(
-    const awt::MouseEvent& )
-throw (::com::sun::star::uno::RuntimeException)
-{
-    return sal_False;
-}
-
-::sal_Bool SAL_CALL LogoImageStatusbarController::mouseMove(
-    const awt::MouseEvent& )
-throw (::com::sun::star::uno::RuntimeException)
-{
-    return sal_False;
-}
-
-::sal_Bool SAL_CALL LogoImageStatusbarController::mouseButtonUp(
-    const awt::MouseEvent& )
-throw (::com::sun::star::uno::RuntimeException)
-{
-    return sal_False;
-}
-
-void SAL_CALL LogoImageStatusbarController::command(
-    const awt::Point& aPos,
-    ::sal_Int32 nCommand,
-    ::sal_Bool bMouseEvent,
-    const ::com::sun::star::uno::Any& aData )
-throw (::com::sun::star::uno::RuntimeException)
-{
-    svt::StatusbarController::command( aPos, nCommand, bMouseEvent, aData );
-}
-
-void SAL_CALL LogoImageStatusbarController::paint(
-    const ::com::sun::star::uno::Reference< awt::XGraphics >& xGraphics,
-    const awt::Rectangle& rOutputRectangle,
-    ::sal_Int32 /*nItemId*/,
-    ::sal_Int32 /*nStyle*/ )
-throw (::com::sun::star::uno::RuntimeException)
-{
-    SolarMutexGuard aGuard;
-
-    OutputDevice* pOutDev = VCLUnoHelper::GetOutputDevice( xGraphics );;
-    if ( pOutDev )
-    {
-        ::Rectangle aRect = VCLRectangle( rOutputRectangle );
-        pOutDev->DrawImage( aRect.TopLeft(), aRect.GetSize(), m_aLogoImage );
-    }
-}
-
-void SAL_CALL LogoImageStatusbarController::click()
-throw (::com::sun::star::uno::RuntimeException)
-{
-    svt::StatusbarController::click();
-}
-
-void SAL_CALL LogoImageStatusbarController::doubleClick() throw (::com::sun::star::uno::RuntimeException)
-{
-    svt::StatusbarController::doubleClick();
-}
-
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/framework/source/uielement/logotextstatusbarcontroller.cxx b/framework/source/uielement/logotextstatusbarcontroller.cxx
deleted file mode 100644
index 32259c2..0000000
--- a/framework/source/uielement/logotextstatusbarcontroller.cxx
+++ /dev/null
@@ -1,170 +0,0 @@
-/* -*- 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 <uielement/logotextstatusbarcontroller.hxx>
-#include <classes/fwlresid.hxx>
-#include <services.h>
-#include <classes/resource.hrc>
-#include <osl/mutex.hxx>
-#include <vcl/svapp.hxx>
-#include <vcl/window.hxx>
-#include <vcl/status.hxx>
-#include <toolkit/unohlp.hxx>
-#include <toolkit/helper/convert.hxx>
-
-using namespace ::rtl;
-using namespace ::cppu;
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::awt;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::frame;
-
-namespace framework
-{
-
-DEFINE_XSERVICEINFO_MULTISERVICE        (   LogoTextStatusbarController             ,
-                                            OWeakObject                             ,
-                                            SERVICENAME_STATUSBARCONTROLLER         ,
-                                            IMPLEMENTATIONNAME_LOGOTEXTSTATUSBARCONTROLLER
-                                        )
-
-DEFINE_INIT_SERVICE                     (   LogoTextStatusbarController, {} )
-
-LogoTextStatusbarController::LogoTextStatusbarController( const uno::Reference< lang::XMultiServiceFactory >& xServiceManager ) :
-    svt::StatusbarController( xServiceManager, uno::Reference< frame::XFrame >(), OUString(), 0 )
-{
-    m_aLogoText = String( FwlResId( STR_STATUSBAR_LOGOTEXT ));
-}
-
-LogoTextStatusbarController::~LogoTextStatusbarController()
-{
-}
-
-// XInterface
-Any SAL_CALL LogoTextStatusbarController::queryInterface( const Type& rType )
-throw ( RuntimeException )
-{
-    return svt::StatusbarController::queryInterface( rType );
-}
-
-void SAL_CALL LogoTextStatusbarController::acquire() throw ()
-{
-    svt::StatusbarController::acquire();
-}
-
-void SAL_CALL LogoTextStatusbarController::release() throw ()
-{
-    svt::StatusbarController::release();
-}
-
-void SAL_CALL LogoTextStatusbarController::initialize( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments )
-throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException)
-{
-    SolarMutexGuard aSolarMutexGuard;
-
-    svt::StatusbarController::initialize( aArguments );
-
-    if ( m_xParentWindow.is() && m_nID > 0 )
-    {
-        Window* pWindow = VCLUnoHelper::GetWindow( m_xParentWindow );
-        if ( pWindow && ( pWindow->GetType() == WINDOW_STATUSBAR ))
-        {
-            StatusBar* pStatusBar = (StatusBar *)pWindow;
-            pStatusBar->SetItemText( m_nID, m_aLogoText );
-        }
-    }
-}
-
-// XComponent
-void SAL_CALL LogoTextStatusbarController::dispose()
-throw (::com::sun::star::uno::RuntimeException)
-{
-    svt::StatusbarController::dispose();
-}
-
-// XEventListener
-void SAL_CALL LogoTextStatusbarController::disposing( const EventObject& Source )
-throw ( RuntimeException )
-{
-    svt::StatusbarController::disposing( Source );
-}
-
-// XStatusListener
-void SAL_CALL LogoTextStatusbarController::statusChanged( const FeatureStateEvent& )
-throw ( RuntimeException )
-{
-}
-
-// XStatusbarController
-::sal_Bool SAL_CALL LogoTextStatusbarController::mouseButtonDown(
-    const ::com::sun::star::awt::MouseEvent& )
-throw (::com::sun::star::uno::RuntimeException)
-{
-    return sal_False;
-}
-
-::sal_Bool SAL_CALL LogoTextStatusbarController::mouseMove(
-    const ::com::sun::star::awt::MouseEvent& )
-throw (::com::sun::star::uno::RuntimeException)
-{
-    return sal_False;
-}
-
-::sal_Bool SAL_CALL LogoTextStatusbarController::mouseButtonUp(
-    const ::com::sun::star::awt::MouseEvent& )
-throw (::com::sun::star::uno::RuntimeException)
-{
-    return sal_False;
-}
-
-void SAL_CALL LogoTextStatusbarController::command(
-    const ::com::sun::star::awt::Point& aPos,
-    ::sal_Int32 nCommand,
-    ::sal_Bool bMouseEvent,
-    const ::com::sun::star::uno::Any& aData )
-throw (::com::sun::star::uno::RuntimeException)
-{
-    svt::StatusbarController::command( aPos, nCommand, bMouseEvent, aData );
-}
-
-void SAL_CALL LogoTextStatusbarController::paint(
-    const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XGraphics >& xGraphics,
-    const ::com::sun::star::awt::Rectangle& rOutputRectangle,
-    ::sal_Int32 nItemId,
-    ::sal_Int32 nStyle )
-throw (::com::sun::star::uno::RuntimeException)
-{
-    svt::StatusbarController::paint( xGraphics, rOutputRectangle, nItemId, nStyle );
-}
-
-void SAL_CALL LogoTextStatusbarController::click()
-throw (::com::sun::star::uno::RuntimeException)
-{
-    svt::StatusbarController::click();
-}
-
-void SAL_CALL LogoTextStatusbarController::doubleClick() throw (::com::sun::star::uno::RuntimeException)
-{
-    svt::StatusbarController::doubleClick();
-}
-
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/framework/source/uielement/simpletextstatusbarcontroller.cxx b/framework/source/uielement/simpletextstatusbarcontroller.cxx
deleted file mode 100644
index e0b3807..0000000
--- a/framework/source/uielement/simpletextstatusbarcontroller.cxx
+++ /dev/null
@@ -1,186 +0,0 @@
-/* -*- 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 <uielement/simpletextstatusbarcontroller.hxx>
-#include <classes/fwkresid.hxx>
-#include <services.h>
-#include <classes/resource.hrc>
-#include <osl/mutex.hxx>
-#include <vcl/svapp.hxx>
-#include <vcl/window.hxx>
-#include <vcl/status.hxx>
-#include <toolkit/unohlp.hxx>
-#include <toolkit/helper/convert.hxx>
-
-using namespace ::rtl;
-using namespace ::cppu;
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::awt;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::frame;
-
-namespace framework
-{
-
-DEFINE_XSERVICEINFO_MULTISERVICE        (   SimpleTextStatusbarController           ,
-                                            OWeakObject                             ,
-                                            SERVICENAME_STATUSBARCONTROLLER         ,
-                                            IMPLEMENTATIONNAME_SIMPLETEXTSTATUSBARCONTROLLER
-                                        )
-
-DEFINE_INIT_SERVICE                     (   SimpleTextStatusbarController, {} )
-
-SimpleTextStatusbarController::SimpleTextStatusbarController( const uno::Reference< lang::XMultiServiceFactory >& xServiceManager ) :
-    svt::StatusbarController( xServiceManager, uno::Reference< frame::XFrame >(), OUString(), 0 )
-{
-}
-
-SimpleTextStatusbarController::~SimpleTextStatusbarController()
-{
-}
-
-// XInterface
-Any SAL_CALL SimpleTextStatusbarController::queryInterface( const Type& rType )
-throw ( RuntimeException )
-{
-    return svt::StatusbarController::queryInterface( rType );
-}
-
-void SAL_CALL SimpleTextStatusbarController::acquire() throw ()
-{
-    svt::StatusbarController::acquire();
-}
-
-void SAL_CALL SimpleTextStatusbarController::release() throw ()
-{
-    svt::StatusbarController::release();
-}
-
-void SAL_CALL SimpleTextStatusbarController::initialize( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments )
-throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException)
-{
-    const OUString aPropValueName( "Value" );
-
-    SolarMutexGuard aSolarMutexGuard;
-
-    svt::StatusbarController::initialize( aArguments );
-
-    OUString        aValue;
-    beans::PropertyValue aPropValue;
-
-    // Check arguments for optional "Value" property. We need it
-    // to set our internal simple text.
-    for ( int i = 0; i < aArguments.getLength(); i++ )
-    {
-        if (( aArguments[i] >>= aPropValue ) && ( aPropValue.Name.equals( aPropValueName )))
-        {
-            aPropValue.Value >>= aValue;
-            break;
-        }
-    }
-
-    m_aText = aValue;
-    if ( m_xParentWindow.is() && m_nID > 0 )
-    {
-        Window* pWindow = VCLUnoHelper::GetWindow( m_xParentWindow );
-        if ( pWindow && ( pWindow->GetType() == WINDOW_STATUSBAR ))
-        {
-            StatusBar* pStatusBar = (StatusBar *)pWindow;
-            pStatusBar->SetItemText( m_nID, m_aText );
-        }
-    }
-}
-
-// XComponent
-void SAL_CALL SimpleTextStatusbarController::dispose()
-throw (::com::sun::star::uno::RuntimeException)
-{
-    svt::StatusbarController::dispose();
-}
-
-// XEventListener
-void SAL_CALL SimpleTextStatusbarController::disposing( const EventObject& Source )
-throw ( RuntimeException )
-{
-    svt::StatusbarController::disposing( Source );
-}
-
-// XStatusListener
-void SAL_CALL SimpleTextStatusbarController::statusChanged( const FeatureStateEvent& )
-throw ( RuntimeException )
-{
-}
-
-// XStatusbarController
-::sal_Bool SAL_CALL SimpleTextStatusbarController::mouseButtonDown(
-    const ::com::sun::star::awt::MouseEvent& )
-throw (::com::sun::star::uno::RuntimeException)
-{
-    return sal_False;
-}
-
-::sal_Bool SAL_CALL SimpleTextStatusbarController::mouseMove(
-    const ::com::sun::star::awt::MouseEvent& )
-throw (::com::sun::star::uno::RuntimeException)
-{
-    return sal_False;
-}
-
-::sal_Bool SAL_CALL SimpleTextStatusbarController::mouseButtonUp(
-    const ::com::sun::star::awt::MouseEvent& )
-throw (::com::sun::star::uno::RuntimeException)
-{
-    return sal_False;
-}
-
-void SAL_CALL SimpleTextStatusbarController::command(
-    const ::com::sun::star::awt::Point& aPos,
-    ::sal_Int32 nCommand,
-    ::sal_Bool bMouseEvent,
-    const ::com::sun::star::uno::Any& aData )
-throw (::com::sun::star::uno::RuntimeException)
-{
-    svt::StatusbarController::command( aPos, nCommand, bMouseEvent, aData );
-}
-
-void SAL_CALL SimpleTextStatusbarController::paint(
-    const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XGraphics >& xGraphics,
-    const ::com::sun::star::awt::Rectangle& rOutputRectangle,
-    ::sal_Int32 nItemId,
-    ::sal_Int32 nStyle )
-throw (::com::sun::star::uno::RuntimeException)
-{
-    svt::StatusbarController::paint( xGraphics, rOutputRectangle, nItemId, nStyle );
-}
-
-void SAL_CALL SimpleTextStatusbarController::click()
-throw (::com::sun::star::uno::RuntimeException)
-{
-    svt::StatusbarController::click();
-}
-
-void SAL_CALL SimpleTextStatusbarController::doubleClick() throw (::com::sun::star::uno::RuntimeException)
-{
-    svt::StatusbarController::doubleClick();
-}
-
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/framework/util/fwl.component b/framework/util/fwl.component
index b4a7ed3..9aaef32 100644
--- a/framework/util/fwl.component
+++ b/framework/util/fwl.component
@@ -43,12 +43,6 @@
   <implementation name="com.sun.star.comp.framework.License">
     <service name="com.sun.star.task.Job"/>
   </implementation>
-  <implementation name="com.sun.star.comp.framework.LogoImageStatusbarController">
-    <service name="com.sun.star.frame.StatusbarController"/>
-  </implementation>
-  <implementation name="com.sun.star.comp.framework.LogoTextStatusbarController">
-    <service name="com.sun.star.frame.StatusbarController"/>
-  </implementation>
   <implementation name="com.sun.star.comp.framework.MacrosMenuController">
     <service name="com.sun.star.frame.PopupMenuController"/>
   </implementation>
@@ -73,9 +67,6 @@
   <implementation name="com.sun.star.comp.framework.ServiceHandler">
     <service name="com.sun.star.frame.ProtocolHandler"/>
   </implementation>
-  <implementation name="com.sun.star.comp.framework.SimpleTextStatusbarController">
-    <service name="com.sun.star.frame.StatusbarController"/>
-  </implementation>
   <implementation name="com.sun.star.comp.framework.ToolBarsMenuController">
     <service name="com.sun.star.frame.PopupMenuController"/>
   </implementation>
diff --git a/officecfg/registry/data/org/openoffice/Office/UI/Controller.xcu b/officecfg/registry/data/org/openoffice/Office/UI/Controller.xcu
index 56055d4..5abc0a8 100644
--- a/officecfg/registry/data/org/openoffice/Office/UI/Controller.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/UI/Controller.xcu
@@ -587,28 +587,6 @@
       </node>
       <node oor:name="c5" oor:op="replace">
         <prop oor:name="Command">
-          <value>.uno:StatusbarLogo</value>
-        </prop>
-        <prop oor:name="Module">
-          <value/>
-        </prop>
-        <prop oor:name="Controller">
-          <value>com.sun.star.comp.framework.LogoImageStatusbarController</value>
-        </prop>
-      </node>
-      <node oor:name="c6" oor:op="replace">
-        <prop oor:name="Command">
-          <value>.uno:StatusbarLogoText</value>
-        </prop>
-        <prop oor:name="Module">
-          <value/>
-        </prop>
-        <prop oor:name="Controller">
-          <value>com.sun.star.comp.framework.LogoTextStatusbarController</value>
-        </prop>
-      </node>
-      <node oor:name="c7" oor:op="replace">
-        <prop oor:name="Command">
           <value>.uno:LanguageStatus</value>
         </prop>
         <prop oor:name="Module">
commit 819840979b82a7b19329eda63db0d5f8a291b9de
Author: Ariel Constenla-Haile <arielch at apache.org>
Date:   Thu Dec 6 12:29:55 2012 +0000

    Related: #i121442# - Refactor UNO StatusbarControllers
    
    (cherry picked from commit 3f1dd0f6b392c104e0a7c7c2623d5d688f8622c0)
    
    Conflicts:
    	framework/source/uielement/langselectionstatusbarcontroller.cxx
    
    Change-Id: I1e8f87d1fbd12bab98b38282cedc730ac23694c3

diff --git a/framework/inc/uielement/langselectionstatusbarcontroller.hxx b/framework/inc/uielement/langselectionstatusbarcontroller.hxx
index 560e627..71896ef 100644
--- a/framework/inc/uielement/langselectionstatusbarcontroller.hxx
+++ b/framework/inc/uielement/langselectionstatusbarcontroller.hxx
@@ -47,36 +47,18 @@ class LangSelectionStatusbarController : public svt::StatusbarController
         // XServiceInfo
         DECLARE_XSERVICEINFO
 
-        // XInterface
-        virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& aType ) throw (::com::sun::star::uno::RuntimeException);
-        virtual void SAL_CALL acquire() throw ();
-        virtual void SAL_CALL release() throw ();
-
         // XInitialization
         virtual void SAL_CALL initialize( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments ) throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException);
 
-        // XComponent
-        virtual void SAL_CALL dispose() throw ( ::com::sun::star::uno::RuntimeException );
-
-        // XEventListener
-        virtual void SAL_CALL disposing( const com::sun::star::lang::EventObject& Source ) throw ( ::com::sun::star::uno::RuntimeException );
-
         // XStatusListener
         virtual void SAL_CALL statusChanged( const ::com::sun::star::frame::FeatureStateEvent& Event ) throw ( ::com::sun::star::uno::RuntimeException );
 
         // XStatusbarController
-        virtual ::sal_Bool SAL_CALL mouseButtonDown( const ::com::sun::star::awt::MouseEvent& aMouseEvent ) throw (::com::sun::star::uno::RuntimeException);
-        virtual ::sal_Bool SAL_CALL mouseMove( const ::com::sun::star::awt::MouseEvent& aMouseEvent ) throw (::com::sun::star::uno::RuntimeException);
-        virtual ::sal_Bool SAL_CALL mouseButtonUp( const ::com::sun::star::awt::MouseEvent& aMouseEvent ) throw (::com::sun::star::uno::RuntimeException);
         virtual void SAL_CALL command( const ::com::sun::star::awt::Point& aPos,
                                        ::sal_Int32 nCommand,
                                        ::sal_Bool bMouseEvent,
                                        const ::com::sun::star::uno::Any& aData ) throw (::com::sun::star::uno::RuntimeException);
-        virtual void SAL_CALL paint( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XGraphics >& xGraphics,
-                                     const ::com::sun::star::awt::Rectangle& rOutputRectangle,
-                                     ::sal_Int32 nItemId, ::sal_Int32 nStyle ) throw (::com::sun::star::uno::RuntimeException);
-        virtual void SAL_CALL click() throw (::com::sun::star::uno::RuntimeException);
-        virtual void SAL_CALL doubleClick() throw (::com::sun::star::uno::RuntimeException);
+        virtual void SAL_CALL click( const ::com::sun::star::awt::Point& aPos ) throw (::com::sun::star::uno::RuntimeException);
 
     private:
         virtual ~LangSelectionStatusbarController() {}
@@ -91,7 +73,7 @@ class LangSelectionStatusbarController : public svt::StatusbarController
         OUString     m_aGuessedTextLang;     // the 'guessed' language for the selection, "" if none could be guessed
         LanguageGuessingHelper      m_aLangGuessHelper;
 
-        void LangMenu() throw (::com::sun::star::uno::RuntimeException);
+        void LangMenu( const ::com::sun::star::awt::Point& aPos ) throw (::com::sun::star::uno::RuntimeException);
 };
 
 } // framework namespace
diff --git a/framework/source/uielement/langselectionstatusbarcontroller.cxx b/framework/source/uielement/langselectionstatusbarcontroller.cxx
index d8d5451..09c0a3d 100644
--- a/framework/source/uielement/langselectionstatusbarcontroller.cxx
+++ b/framework/source/uielement/langselectionstatusbarcontroller.cxx
@@ -26,7 +26,6 @@
 #include <vcl/svapp.hxx>
 #include <vcl/window.hxx>
 #include <vcl/status.hxx>
-#include <toolkit/unohlp.hxx>
 #include <toolkit/helper/convert.hxx>
 
 #include <com/sun/star/frame/XPopupMenuController.hpp>
@@ -49,6 +48,7 @@
 #include <com/sun/star/util/XURLTransformer.hpp>
 #include <comphelper/processfactory.hxx>
 
+#include <toolkit/helper/vclunohelper.hxx>
 #include <tools/gen.hxx>
 #include <com/sun/star/awt/Command.hpp>
 #include <svl/languageoptions.hxx>
@@ -56,6 +56,8 @@
 
 #include "helper/mischelper.hxx"
 
+#include <rtl/ustrbuf.hxx>
+
 #include <map>
 #include <set>
 
@@ -67,12 +69,12 @@ using namespace ::com::sun::star::frame;
 using namespace ::com::sun::star::i18n;
 using namespace ::com::sun::star::document;
 
+using ::rtl::OUStringBuffer;
 
 
 namespace framework
 {
 
-
 DEFINE_XSERVICEINFO_MULTISERVICE        (   LangSelectionStatusbarController            ,
                                             OWeakObject                             ,
                                             SERVICENAME_STATUSBARCONTROLLER         ,
@@ -89,23 +91,6 @@ LangSelectionStatusbarController::LangSelectionStatusbarController( const uno::R
 {
 }
 
-// XInterface
-Any SAL_CALL LangSelectionStatusbarController::queryInterface( const Type& rType )
-throw ( RuntimeException )
-{
-    return svt::StatusbarController::queryInterface( rType );
-}
-
-void SAL_CALL LangSelectionStatusbarController::acquire() throw ()
-{
-    svt::StatusbarController::acquire();
-}
-
-void SAL_CALL LangSelectionStatusbarController::release() throw ()
-{
-    svt::StatusbarController::release();
-}
-
 void SAL_CALL LangSelectionStatusbarController::initialize( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments )
 throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException)
 {
@@ -114,59 +99,14 @@ throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException
 
     svt::StatusbarController::initialize( aArguments );
 
-    if ( m_xParentWindow.is() && m_nID > 0 )
+    if ( m_xStatusbarItem.is() )
     {
-        Window* pWindow = VCLUnoHelper::GetWindow( m_xParentWindow );
-        if ( pWindow && ( pWindow->GetType() == WINDOW_STATUSBAR ))
-        {
-            StatusBar* pStatusBar = (StatusBar *)pWindow;
-            pStatusBar->SetItemText( m_nID, FwkResId( STR_LANGSTATUS_MULTIPLE_LANGUAGES ) );
-        }
+        m_xStatusbarItem->setText( String( FwkResId( STR_LANGSTATUS_MULTIPLE_LANGUAGES ) ) );
     }
 }
 
-// XComponent
-void SAL_CALL LangSelectionStatusbarController::dispose()
-throw (::com::sun::star::uno::RuntimeException)
-{
-    RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "framework", "Ocke.Janssen at sun.com", "LangSelectionStatusbarController::dispose" );
-    svt::StatusbarController::dispose();
-}
-
-// XEventListener
-void SAL_CALL LangSelectionStatusbarController::disposing( const com::sun::star::lang::EventObject& Source )
-throw ( RuntimeException )
-{
-    RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "framework", "Ocke.Janssen at sun.com", "LangSelectionStatusbarController::disposing" );
-    svt::StatusbarController::disposing( Source );
-}
-
-// XStatusbarController
-::sal_Bool SAL_CALL LangSelectionStatusbarController::mouseButtonDown(
-    const ::com::sun::star::awt::MouseEvent& )
-throw (::com::sun::star::uno::RuntimeException)
-{
-    RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "framework", "Ocke.Janssen at sun.com", "LangSelectionStatusbarController::mouseButtonDown" );
-    return sal_False;
-}
-
-::sal_Bool SAL_CALL LangSelectionStatusbarController::mouseMove(
-    const ::com::sun::star::awt::MouseEvent& )
-throw (::com::sun::star::uno::RuntimeException)
-{
-    RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "framework", "Ocke.Janssen at sun.com", "LangSelectionStatusbarController::mouseMove" );
-    return sal_False;
-}
-
-::sal_Bool SAL_CALL LangSelectionStatusbarController::mouseButtonUp(
-    const ::com::sun::star::awt::MouseEvent& )
-throw (::com::sun::star::uno::RuntimeException)
-{
-    RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "framework", "Ocke.Janssen at sun.com", "LangSelectionStatusbarController::mouseButtonUp" );
-    return sal_False;
-}
-
-void LangSelectionStatusbarController::LangMenu()
+void LangSelectionStatusbarController::LangMenu(
+    const ::com::sun::star::awt::Point& aPos )
 throw (::com::sun::star::uno::RuntimeException)
 {
     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "framework", "Ocke.Janssen at sun.com", "LangSelectionStatusbarController::LangMenu" );
@@ -200,7 +140,7 @@ throw (::com::sun::star::uno::RuntimeException)
         {
             DBG_ASSERT( MID_LANG_SEL_1 <= nItemId && nItemId <= MID_LANG_SEL_9,
                     "nItemId outside of expected range!" );
-            xPopupMenu->insertItem( nItemId, rStr, css::awt::MenuItemStyle::RADIOCHECK, nItemId );
+            xPopupMenu->insertItem( nItemId, rStr, 0, nItemId );
             if ( rStr == m_aCurLang )
             {
                 //make a sign for the current language
@@ -210,10 +150,10 @@ throw (::com::sun::star::uno::RuntimeException)
             ++nItemId;
         }
     }
-    xPopupMenu->insertItem( MID_LANG_SEL_NONE,  String( FwkResId( STR_LANGSTATUS_NONE )), css::awt::MenuItemStyle::RADIOCHECK, MID_LANG_SEL_NONE );
+
+    xPopupMenu->insertItem( MID_LANG_SEL_NONE,  String( FwkResId( STR_LANGSTATUS_NONE )), 0, MID_LANG_SEL_NONE );
     if ( aLanguageTable.GetString( LANGUAGE_NONE ) == m_aCurLang )
         xPopupMenu->checkItem( MID_LANG_SEL_NONE, sal_True );
-
     xPopupMenu->insertItem( MID_LANG_SEL_RESET, String( FwkResId( STR_RESET_TO_DEFAULT_LANGUAGE )), 0, MID_LANG_SEL_RESET );
     xPopupMenu->insertItem( MID_LANG_SEL_MORE,  String( FwkResId( STR_LANGSTATUS_MORE )), 0, MID_LANG_SEL_MORE );
 
@@ -246,77 +186,65 @@ throw (::com::sun::star::uno::RuntimeException)
     // now display the popup menu and execute every command ...
 
     Reference< awt::XWindowPeer > xParent( m_xParentWindow, UNO_QUERY );
-
     com::sun::star::awt::Rectangle aRectangle;
-    Window* pWindow = VCLUnoHelper::GetWindow( m_xParentWindow );
-    const Point mMousePos = pWindow->GetPointerPosPixel();
-    aRectangle.X = mMousePos.X();
-    aRectangle.Y = mMousePos.Y();
+    aRectangle.X = aPos.X;
+    aRectangle.Y = aPos.Y;
     sal_Int16 nId = xPopupMenu->execute( xParent, aRectangle, com::sun::star::awt::PopupMenuDirection::EXECUTE_UP+16 );
     //click "More..."
     if ( nId && m_xFrame.is() )
     {
-        uno::Reference< XDispatchProvider > xDispatchProvider( m_xFrame, UNO_QUERY );
-        util::URL aURL;
+        OUStringBuffer aBuff;
+        //set selected language as current language for selection
+        const OUString aSelectedLang = aLangMap[nId];
 
         if (MID_LANG_SEL_1 <= nId && nId <= MID_LANG_SEL_9)
         {
-            //set selected language as current language for selection
-            String aSelectedLang = aLangMap[nId];
-            aURL.Complete += ".uno:LanguageStatus?Language:string=Current_";
-            aURL.Complete += aSelectedLang;
+            aBuff.appendAscii( RTL_CONSTASCII_STRINGPARAM( (".uno:LanguageStatus?Language:string=Current_") ));
+            aBuff.append( aSelectedLang );
         }
         else if (nId == MID_LANG_SEL_NONE)
         {
             //set None as current language for selection
-            aURL.Complete += ".uno:LanguageStatus?Language:string=Current_LANGUAGE_NONE";
+            aBuff.appendAscii( RTL_CONSTASCII_STRINGPARAM( (".uno:LanguageStatus?Language:string=Current_LANGUAGE_NONE") ));
         }
         else if (nId == MID_LANG_SEL_RESET)
         {
             // reset language attributes for selection
-            aURL.Complete += ".uno:LanguageStatus?Language:string=Current_RESET_LANGUAGES";
+            aBuff.appendAscii( RTL_CONSTASCII_STRINGPARAM( (".uno:LanguageStatus?Language:string=Current_RESET_LANGUAGES") ));
         }
         else if (nId == MID_LANG_SEL_MORE)
         {
             //open the dialog "format/character" for current selection
-            aURL.Complete += ".uno:FontDialog?Language:string=*";
+            aBuff.appendAscii( RTL_CONSTASCII_STRINGPARAM( (".uno:FontDialog?Language:string=*") ));
         }
         else if (MID_LANG_PARA_1 <= nId && nId <= MID_LANG_PARA_9)
         {
-            //set selected language for current paragraph
-            String aSelectedLang = aLangMap[nId];
-            aURL.Complete += ".uno:LanguageStatus?Language:string=Paragraph_";
-            aURL.Complete += aSelectedLang;
+            aBuff.appendAscii( RTL_CONSTASCII_STRINGPARAM( (".uno:LanguageStatus?Language:string=Paragraph_") ));
+            aBuff.append( aSelectedLang );
         }
         else if (nId == MID_LANG_PARA_NONE)
         {
             //set None as language for current paragraph
-            aURL.Complete += ".uno:LanguageStatus?Language:string=Paragraph_LANGUAGE_NONE";
+            aBuff.appendAscii( RTL_CONSTASCII_STRINGPARAM( (".uno:LanguageStatus?Language:string=Paragraph_LANGUAGE_NONE") ));
         }
         else if (nId == MID_LANG_PARA_RESET)
         {
             // reset language attributes for paragraph
-            aURL.Complete += ".uno:LanguageStatus?Language:string=Paragraph_RESET_LANGUAGES";
+            aBuff.appendAscii( RTL_CONSTASCII_STRINGPARAM( (".uno:LanguageStatus?Language:string=Paragraph_RESET_LANGUAGES") ));
         }
         else if (nId == MID_LANG_PARA_MORE)
         {
             //open the dialog "format/character" for current paragraph
-            aURL.Complete += ".uno:FontDialogForParagraph";
+            aBuff.appendAscii( RTL_CONSTASCII_STRINGPARAM( (".uno:FontDialogForParagraph") ));
         }
 
-        uno::Reference< util::XURLTransformer > xURLTransformer( util::URLTransformer::create(::comphelper::getComponentContext(m_xServiceManager)) );
-        xURLTransformer->parseStrict( aURL );
-        uno::Reference< XDispatch > xDispatch = xDispatchProvider->queryDispatch(aURL, OUString(), 0);
-        if( xDispatch.is() )
-        {
-            uno::Sequence< beans::PropertyValue > aPV;
-            xDispatch->dispatch( aURL, aPV);
-        }
+        const Sequence< beans::PropertyValue > aDummyArgs;
+        execute( aBuff.makeStringAndClear(), aDummyArgs );
     }
 }
 
 void SAL_CALL LangSelectionStatusbarController::command(
-    const ::com::sun::star::awt::Point& /*aPos*/,
+    const ::com::sun::star::awt::Point& aPos,
     ::sal_Int32 nCommand,
     ::sal_Bool /*bMouseEvent*/,
     const ::com::sun::star::uno::Any& /*aData*/ )
@@ -325,33 +253,16 @@ throw (::com::sun::star::uno::RuntimeException)
     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "framework", "Ocke.Janssen at sun.com", "LangSelectionStatusbarController::command" );
     if ( nCommand & ::awt::Command::CONTEXTMENU )
     {
-        LangMenu();
+        LangMenu( aPos );
     }
 }
 
-void SAL_CALL LangSelectionStatusbarController::paint(
-    const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XGraphics >& xGraphics,
-    const ::com::sun::star::awt::Rectangle& rOutputRectangle,
-    ::sal_Int32 nItemId,
-    ::sal_Int32 nStyle )
-throw (::com::sun::star::uno::RuntimeException)
-{
-    RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "framework", "Ocke.Janssen at sun.com", "LangSelectionStatusbarController::paint" );
-    svt::StatusbarController::paint( xGraphics, rOutputRectangle, nItemId, nStyle );
-}
-
-void SAL_CALL LangSelectionStatusbarController::click()
+void SAL_CALL LangSelectionStatusbarController::click(
+    const ::com::sun::star::awt::Point& aPos )
 throw (::com::sun::star::uno::RuntimeException)
 {
     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "framework", "Ocke.Janssen at sun.com", "LangSelectionStatusbarController::click" );
-    LangMenu();
-}
-
-void SAL_CALL LangSelectionStatusbarController::doubleClick()
-throw (::com::sun::star::uno::RuntimeException)
-{
-    RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "framework", "Ocke.Janssen at sun.com", "LangSelectionStatusbarController::doubleClick" );
-    svt::StatusbarController::doubleClick();
+    LangMenu( aPos );
 }
 
 // XStatusListener
@@ -372,26 +283,25 @@ throw ( RuntimeException )
         return;
 
     m_bShowMenu = sal_True;
-
     m_nScriptType = LS_SCRIPT_LATIN | LS_SCRIPT_ASIAN | LS_SCRIPT_COMPLEX;  //set the default value
-    Window* pWindow = VCLUnoHelper::GetWindow( m_xParentWindow );
-    if ( pWindow && pWindow->GetType() == WINDOW_STATUSBAR && m_nID != 0 )
+
+    if ( m_xStatusbarItem.is() )
     {
-        OUString               aStrValue;
+        OUString aStrValue;
         Sequence< OUString > aSeq;
 
-        StatusBar*    pStatusBar = (StatusBar *)pWindow;
         if ( Event.State >>= aStrValue )
-            pStatusBar->SetItemText( m_nID, aStrValue );
+            m_xStatusbarItem->setText( aStrValue );
         else if ( Event.State >>= aSeq )
         {
             if ( aSeq.getLength() == 4 )
             {
-                const String aMultipleLangText( FwkResId( STR_LANGSTATUS_MULTIPLE_LANGUAGES ) );
                 OUString aStatusText = aSeq[0];
-                if ( 0 == aStatusText.compareToAscii( "*" ))
-                    aStatusText = aMultipleLangText;
-                pStatusBar->SetItemText( m_nID, aStatusText );
+                if (aStatusText == "*")
+                {
+                    aStatusText = String( FwkResId( STR_LANGSTATUS_MULTIPLE_LANGUAGES ) );
+                }
+                m_xStatusbarItem->setText( aStatusText );
 
                 // Retrieve all other values from the sequence and
                 // store it members!
@@ -403,7 +313,7 @@ throw ( RuntimeException )
         }
         else if ( !Event.State.hasValue() )
         {
-            pStatusBar->SetItemText( m_nID, String() );
+            m_xStatusbarItem->setText( OUString() );
             m_bShowMenu = sal_False;    // no language -> no menu
         }
     }
commit 25ec90bfa85ab829e47f442742c63dd41960b973
Author: Ariel Constenla-Haile <arielch at apache.org>
Date:   Thu Dec 6 12:29:42 2012 +0000

    Related: #i121442# Adapt existing code in other modules
    
    (cherry picked from commit 6c640ee420df6f7c9f3ab981e49ee304f1d2319e)
    
    Conflicts:
    	reportdesign/source/ui/misc/statusbarcontroller.cxx
    	sfx2/inc/sfx2/stbitem.hxx
    	svtools/inc/svtools/statusbarcontroller.hxx
    	svtools/source/uno/statusbarcontroller.cxx
    
    Change-Id: If03a201214a4afe09efa4e3e996aded9b6a57bdf

diff --git a/include/sfx2/stbitem.hxx b/include/sfx2/stbitem.hxx
index d94e768..0512c31 100644
--- a/include/sfx2/stbitem.hxx
+++ b/include/sfx2/stbitem.hxx
@@ -90,10 +90,10 @@ protected:
                                     ::sal_Bool bMouseEvent,
                                     const ::com::sun::star::uno::Any& aData ) throw (::com::sun::star::uno::RuntimeException);
     virtual void SAL_CALL paint( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XGraphics >& xGraphics,
-                                    const ::com::sun::star::awt::Rectangle& rOutputRectangle,
-                                    ::sal_Int32 nItemId, ::sal_Int32 nStyle ) throw (::com::sun::star::uno::RuntimeException);
-    virtual void SAL_CALL click() throw (::com::sun::star::uno::RuntimeException);
-    virtual void SAL_CALL doubleClick() throw (::com::sun::star::uno::RuntimeException);
+                                 const ::com::sun::star::awt::Rectangle& rOutputRectangle,
+                                 ::sal_Int32 nStyle ) throw (::com::sun::star::uno::RuntimeException);
+    virtual void SAL_CALL click( const ::com::sun::star::awt::Point& aPos ) throw (::com::sun::star::uno::RuntimeException);
+    virtual void SAL_CALL doubleClick( const ::com::sun::star::awt::Point& aPos ) throw (::com::sun::star::uno::RuntimeException);
 
     // Old sfx2 interface
     virtual void    StateChanged( sal_uInt16 nSID, SfxItemState eState,
diff --git a/include/svtools/statusbarcontroller.hxx b/include/svtools/statusbarcontroller.hxx
index eba45e5..9d094fa 100644
--- a/include/svtools/statusbarcontroller.hxx
+++ b/include/svtools/statusbarcontroller.hxx
@@ -21,12 +21,10 @@
 #define _SVTOOLS_STATUSBARCONTROLLER_HXX
 
 #include "svtools/svtdllapi.h"
+#include <com/sun/star/ui/XStatusbarItem.hpp>
 #include <com/sun/star/lang/XMultiServiceFactory.hpp>
-#include <com/sun/star/lang/XInitialization.hpp>
-#include <com/sun/star/util/XUpdatable.hpp>
 #include <com/sun/star/frame/XFrame.hpp>
 #include <com/sun/star/frame/XDispatch.hpp>
-#include <com/sun/star/frame/XStatusListener.hpp>
 #include <com/sun/star/frame/XStatusbarController.hpp>
 #include <com/sun/star/util/XURLTransformer.hpp>
 #include <com/sun/star/frame/XLayoutManager.hpp>
@@ -41,10 +39,8 @@
 namespace svt
 {
 
-class SVT_DLLPUBLIC StatusbarController : public ::com::sun::star::frame::XStatusListener,
+class SVT_DLLPUBLIC StatusbarController :
                             public ::com::sun::star::frame::XStatusbarController,
-                            public ::com::sun::star::lang::XInitialization,
-                            public ::com::sun::star::util::XUpdatable,
                             public ::com::sun::star::lang::XComponent,
                             public ::comphelper::OBaseMutex,
                             public ::cppu::OWeakObject
@@ -94,9 +90,9 @@ class SVT_DLLPUBLIC StatusbarController : public ::com::sun::star::frame::XStatu
                                        const ::com::sun::star::uno::Any& aData ) throw (::com::sun::star::uno::RuntimeException);
         virtual void SAL_CALL paint( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XGraphics >& xGraphics,
                                      const ::com::sun::star::awt::Rectangle& rOutputRectangle,
-                                     ::sal_Int32 nItemId, ::sal_Int32 nStyle ) throw (::com::sun::star::uno::RuntimeException);
-        virtual void SAL_CALL click() throw (::com::sun::star::uno::RuntimeException);
-        virtual void SAL_CALL doubleClick() throw (::com::sun::star::uno::RuntimeException);
+                                     ::sal_Int32 nStyle ) throw (::com::sun::star::uno::RuntimeException);
+        virtual void SAL_CALL click( const ::com::sun::star::awt::Point& aPos ) throw (::com::sun::star::uno::RuntimeException);
+        virtual void SAL_CALL doubleClick( const ::com::sun::star::awt::Point& aPos ) throw (::com::sun::star::uno::RuntimeException);
 
     protected:
         struct Listener
@@ -132,6 +128,7 @@ class SVT_DLLPUBLIC StatusbarController : public ::com::sun::star::frame::XStatu
         URLToDispatchMap                                                                    m_aListenerMap;
         ::cppu::OMultiTypeInterfaceContainerHelper                                          m_aListenerContainer;   /// container for ALL Listener
         mutable ::com::sun::star::uno::Reference< ::com::sun::star::util::XURLTransformer > m_xURLTransformer;
+        ::com::sun::star::uno::Reference< ::com::sun::star::ui::XStatusbarItem >           m_xStatusbarItem;
 };
 
 }
diff --git a/reportdesign/source/ui/inc/statusbarcontroller.hxx b/reportdesign/source/ui/inc/statusbarcontroller.hxx
index 413cca6..6e6fda9 100644
--- a/reportdesign/source/ui/inc/statusbarcontroller.hxx
+++ b/reportdesign/source/ui/inc/statusbarcontroller.hxx
@@ -23,20 +23,19 @@
 #include <comphelper/uno3.hxx>
 #include <com/sun/star/lang/XServiceInfo.hpp>
 #include <cppuhelper/implbase1.hxx>
-#include <comphelper/implementationreference.hxx>
 
 class SfxStatusBarControl;
 namespace rptui
 {
-    typedef ::comphelper::ImplementationReference<SfxStatusBarControl,::com::sun::star::frame::XStatusbarController> TStatusbarHelper;
+    typedef com::sun::star::uno::Reference< com::sun::star::frame::XStatusbarController > TStatusbarRef;
 
     typedef ::cppu::ImplHelper1 <   ::com::sun::star::lang::XServiceInfo> OStatusbarController_BASE;
     class OStatusbarController : public ::svt::StatusbarController,
                                  public OStatusbarController_BASE
     {
-        TStatusbarHelper m_pController;
-        sal_uInt16       m_nSlotId;
-        sal_uInt16       m_nId;
+        TStatusbarRef   m_rController;
+        sal_uInt16      m_nSlotId;
+        sal_uInt16      m_nId;
     public:
         OStatusbarController(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxORB);
 
@@ -75,9 +74,9 @@ namespace rptui
                                        const ::com::sun::star::uno::Any& aData ) throw (::com::sun::star::uno::RuntimeException);
         virtual void SAL_CALL paint( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XGraphics >& xGraphics,
                                      const ::com::sun::star::awt::Rectangle& rOutputRectangle,
-                                     ::sal_Int32 nItemId, ::sal_Int32 nStyle ) throw (::com::sun::star::uno::RuntimeException);
-        virtual void SAL_CALL click() throw (::com::sun::star::uno::RuntimeException);
-        virtual void SAL_CALL doubleClick() throw (::com::sun::star::uno::RuntimeException);
+                                     ::sal_Int32 nStyle ) throw (::com::sun::star::uno::RuntimeException);
+        virtual void SAL_CALL click( const ::com::sun::star::awt::Point& aPos ) throw (::com::sun::star::uno::RuntimeException);
+        virtual void SAL_CALL doubleClick( const ::com::sun::star::awt::Point& aPos ) throw (::com::sun::star::uno::RuntimeException);
     };
 }
 #endif // DBAUI_STATUSBARCONTROLLER_HXX
diff --git a/reportdesign/source/ui/misc/statusbarcontroller.cxx b/reportdesign/source/ui/misc/statusbarcontroller.cxx
index 6f73dad..9bb946e 100644
--- a/reportdesign/source/ui/misc/statusbarcontroller.cxx
+++ b/reportdesign/source/ui/misc/statusbarcontroller.cxx
@@ -99,19 +99,25 @@ void SAL_CALL OStatusbarController::initialize( const Sequence< Any >& _rArgumen
                 break;
             }
         }
+
+        SfxStatusBarControl *pController = 0;
         if ( m_aCommandURL == ".uno:ZoomSlider" )
         {
-            m_pController = TStatusbarHelper::createFromQuery(new SvxZoomSliderControl(m_nSlotId = SID_ATTR_ZOOMSLIDER,m_nId,*pStatusBar));
+            pController = new SvxZoomSliderControl(m_nSlotId = SID_ATTR_ZOOMSLIDER,m_nId,*pStatusBar);
         }
         else if ( m_aCommandURL == ".uno:Zoom" )
         {
-            m_pController = TStatusbarHelper::createFromQuery(new SvxZoomStatusBarControl(m_nSlotId = SID_ATTR_ZOOM,m_nId,*pStatusBar));
+            pController = new SvxZoomStatusBarControl(m_nSlotId = SID_ATTR_ZOOM,m_nId,*pStatusBar);
         }
 
-        if ( m_pController.is() )
+        if ( pController )
         {
-            m_pController->initialize(_rArguments);
-            m_pController->update();
+            m_rController.set( pController );
+            if ( m_rController.is() )
+            {
+                m_rController->initialize(_rArguments);
+                m_rController->update();
+            }
         }
 
         addStatusListener(m_aCommandURL);
@@ -124,7 +130,7 @@ void SAL_CALL OStatusbarController::statusChanged( const FeatureStateEvent& _aEv
     SolarMutexGuard aSolarGuard;
     ::osl::MutexGuard aGuard(m_aMutex);
 
-    if ( m_pController.is() )
+    if ( m_rController.is() )
     {
         if ( m_aCommandURL == ".uno:ZoomSlider" )
         {
@@ -133,7 +139,7 @@ void SAL_CALL OStatusbarController::statusChanged( const FeatureStateEvent& _aEv
             {
                 SvxZoomSliderItem aZoomSlider(100,20,400);
                 aZoomSlider.PutValue(_aEvent.State);
-                static_cast<SvxZoomSliderControl*>(m_pController.get())->StateChanged(m_nSlotId,SFX_ITEM_AVAILABLE,&aZoomSlider);
+                static_cast<SvxZoomSliderControl*>(m_rController.get())->StateChanged(m_nSlotId,SFX_ITEM_AVAILABLE,&aZoomSlider);
             }
         }
         else if ( m_aCommandURL == ".uno:Zoom" )
@@ -143,7 +149,7 @@ void SAL_CALL OStatusbarController::statusChanged( const FeatureStateEvent& _aEv
             {
                 SvxZoomItem aZoom;
                 aZoom.PutValue(_aEvent.State);
-                static_cast<SvxZoomStatusBarControl*>(m_pController.get())->StateChanged(m_nSlotId,SFX_ITEM_AVAILABLE,&aZoom);
+                static_cast<SvxZoomStatusBarControl*>(m_rController.get())->StateChanged(m_nSlotId,SFX_ITEM_AVAILABLE,&aZoom);
             }
         }
     }
@@ -152,17 +158,17 @@ void SAL_CALL OStatusbarController::statusChanged( const FeatureStateEvent& _aEv
 // XStatusbarController
 ::sal_Bool SAL_CALL OStatusbarController::mouseButtonDown(const ::com::sun::star::awt::MouseEvent& _aEvent)throw (::com::sun::star::uno::RuntimeException)
 {
-    return m_pController.is() && m_pController.getRef()->mouseButtonDown(_aEvent);
+    return m_rController.is() && m_rController->mouseButtonDown(_aEvent);
 }
 
 ::sal_Bool SAL_CALL OStatusbarController::mouseMove(    const ::com::sun::star::awt::MouseEvent& _aEvent)throw (::com::sun::star::uno::RuntimeException)
 {
-    return m_pController.is() && m_pController.getRef()->mouseMove(_aEvent);
+    return m_rController.is() && m_rController->mouseMove(_aEvent);
 }
 
 ::sal_Bool SAL_CALL OStatusbarController::mouseButtonUp(    const ::com::sun::star::awt::MouseEvent& _aEvent)throw (::com::sun::star::uno::RuntimeException)
 {
-    return m_pController.is() && m_pController.getRef()->mouseButtonUp(_aEvent);
+    return m_rController.is() && m_rController->mouseButtonUp(_aEvent);
 }
 
 void SAL_CALL OStatusbarController::command(
@@ -172,47 +178,49 @@ void SAL_CALL OStatusbarController::command(
     const ::com::sun::star::uno::Any& aData )
 throw (::com::sun::star::uno::RuntimeException)
 {
-    if ( m_pController.is() )
-        m_pController.getRef()->command( aPos, nCommand, bMouseEvent, aData );
+    if ( m_rController.is() )
+        m_rController->command( aPos, nCommand, bMouseEvent, aData );
 }
 
 void SAL_CALL OStatusbarController::paint(
     const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XGraphics >& xGraphics,
     const ::com::sun::star::awt::Rectangle& rOutputRectangle,
-    ::sal_Int32 nItemId,
     ::sal_Int32 nStyle )
 throw (::com::sun::star::uno::RuntimeException)
 {
-    if ( m_pController.is() )
-        m_pController.getRef()->paint( xGraphics, rOutputRectangle, nItemId, nStyle );
+    if ( m_rController.is() )
+        m_rController->paint( xGraphics, rOutputRectangle, nStyle );
 }
 
-void SAL_CALL OStatusbarController::click() throw (::com::sun::star::uno::RuntimeException)
+void SAL_CALL OStatusbarController::click(
+    const ::com::sun::star::awt::Point& aPos )
+throw (::com::sun::star::uno::RuntimeException)
 {
-    if ( m_pController.is() )
-        m_pController.getRef()->click();
+    if ( m_rController.is() )
+        m_rController->click( aPos );
 }
 
-void SAL_CALL OStatusbarController::doubleClick() throw (::com::sun::star::uno::RuntimeException)
+void SAL_CALL OStatusbarController::doubleClick(
+    const ::com::sun::star::awt::Point& aPos )
+throw (::com::sun::star::uno::RuntimeException)
 {
-    if ( m_pController.is() )
-        m_pController.getRef()->doubleClick();
+    if ( m_rController.is() )
+        m_rController->doubleClick( aPos );
 }
 // -----------------------------------------------------------------------------
 void SAL_CALL OStatusbarController::update() throw ( RuntimeException )
 {
     ::svt::StatusbarController::update();
-    Reference< XUpdatable > xUp(m_pController.getRef(),UNO_QUERY);
-    if ( xUp.is() )
-        xUp->update();
+    if ( m_rController.is() )
+        m_rController->update();
 }
 // -----------------------------------------------------------------------------
 // XComponent
 void SAL_CALL OStatusbarController::dispose() throw (::com::sun::star::uno::RuntimeException)
 {
-    Reference< XComponent > xComp( m_pController.getRef(), UNO_QUERY );
-    ::comphelper::disposeComponent(xComp);
-    m_pController.dispose();
+    if ( m_rController.is() )
+        ::comphelper::disposeComponent( m_rController );
+
     svt::StatusbarController::dispose();
 }
 // =============================================================================
diff --git a/sfx2/source/statbar/stbitem.cxx b/sfx2/source/statbar/stbitem.cxx
index 63c1cdc..6095504 100644
--- a/sfx2/source/statbar/stbitem.cxx
+++ b/sfx2/source/statbar/stbitem.cxx
@@ -387,7 +387,6 @@ throw (::com::sun::star::uno::RuntimeException)
 void SAL_CALL SfxStatusBarControl::paint(
     const uno::Reference< awt::XGraphics >& xGraphics,
     const awt::Rectangle& rOutputRectangle,
-    ::sal_Int32 nItemId,
     ::sal_Int32 nStyle )
 throw ( ::uno::RuntimeException )
 {
@@ -397,14 +396,14 @@ throw ( ::uno::RuntimeException )
     if ( pOutDev )
     {
         ::Rectangle aRect = VCLRectangle( rOutputRectangle );
-        UserDrawEvent aUserDrawEvent( pOutDev, aRect, (sal_uInt16)nItemId, (sal_uInt16)nStyle );
+        UserDrawEvent aUserDrawEvent( pOutDev, aRect, pBar->GetCurItemId(), (sal_uInt16)nStyle );
         Paint( aUserDrawEvent );
     }
 }
 
 //--------------------------------------------------------------------
 
-void SAL_CALL SfxStatusBarControl::click()
+void SAL_CALL SfxStatusBarControl::click( const awt::Point& )
 throw ( uno::RuntimeException )
 {
     SolarMutexGuard aGuard;
@@ -413,7 +412,7 @@ throw ( uno::RuntimeException )
 
 //--------------------------------------------------------------------
 
-void SAL_CALL SfxStatusBarControl::doubleClick()
+void SAL_CALL SfxStatusBarControl::doubleClick( const awt::Point& )
 throw ( uno::RuntimeException )
 {
     SolarMutexGuard aGuard;
diff --git a/svtools/source/uno/statusbarcontroller.cxx b/svtools/source/uno/statusbarcontroller.cxx
index cee30a4..d93feed 100644
--- a/svtools/source/uno/statusbarcontroller.cxx
+++ b/svtools/source/uno/statusbarcontroller.cxx
@@ -30,7 +30,7 @@
 #include <vcl/status.hxx>
 #include <svtools/imgdef.hxx>
 #include <svtools/miscopt.hxx>
-#include <toolkit/unohlp.hxx>
+#include <toolkit/helper/vclunohelper.hxx>
 #include <comphelper/processfactory.hxx>
 
 using namespace ::cppu;
@@ -153,6 +153,8 @@ throw ( Exception, RuntimeException )
                     aPropValue.Value >>= m_xParentWindow;
                 else if ( aPropValue.Name == "Identifier" )
                     aPropValue.Value >>= m_nID;
+                else if ( aPropValue.Name == "StatusbarItem" )
+                    aPropValue.Value >>= m_xStatusbarItem;
             }
         }
 
@@ -220,6 +222,7 @@ throw (::com::sun::star::uno::RuntimeException)
     m_xServiceManager.clear();
     m_xFrame.clear();
     m_xParentWindow.clear();
+    m_xStatusbarItem.clear();
 
     m_bDisposed = sal_True;
 }
@@ -240,26 +243,31 @@ throw ( RuntimeException )
 void SAL_CALL StatusbarController::disposing( const EventObject& Source )
 throw ( RuntimeException )
 {
-    Reference< XInterface > xSource( Source.Source );
-
     SolarMutexGuard aSolarMutexGuard;
 
     if ( m_bDisposed )
         return;
 
+    Reference< XFrame > xFrame( Source.Source, UNO_QUERY );
+    if ( xFrame.is() )
+    {
+        if ( xFrame == m_xFrame )
+            m_xFrame.clear();
+        return;
+    }
+
+    Reference< XDispatch > xDispatch( Source.Source, UNO_QUERY );
+    if ( !xDispatch.is() )
+        return;
+
     URLToDispatchMap::iterator pIter = m_aListenerMap.begin();
     while ( pIter != m_aListenerMap.end() )
     {
         // Compare references and release dispatch references if they are equal.
-        Reference< XInterface > xIfac( pIter->second, UNO_QUERY );
-        if ( xSource == xIfac )
+        if ( xDispatch == pIter->second )
             pIter->second.clear();
         ++pIter;
     }
-
-    Reference< XInterface > xIfac( m_xFrame, UNO_QUERY );
-    if ( xIfac == xSource )
-        m_xFrame.clear();
 }
 
 // XStatusListener
@@ -318,18 +326,17 @@ throw (::com::sun::star::uno::RuntimeException)
 void SAL_CALL StatusbarController::paint(
     const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XGraphics >&,
     const ::com::sun::star::awt::Rectangle&,
-    ::sal_Int32,
     ::sal_Int32 )
 throw (::com::sun::star::uno::RuntimeException)
 {
 }
 
-void SAL_CALL StatusbarController::click()
+void SAL_CALL StatusbarController::click( const ::com::sun::star::awt::Point& )
 throw (::com::sun::star::uno::RuntimeException)
 {
 }
 
-void SAL_CALL StatusbarController::doubleClick() throw (::com::sun::star::uno::RuntimeException)
+void SAL_CALL StatusbarController::doubleClick( const ::com::sun::star::awt::Point& ) throw (::com::sun::star::uno::RuntimeException)
 {
     SolarMutexGuard aSolarMutexGuard;
 
@@ -465,37 +472,29 @@ void StatusbarController::bindListener()
     }
 
     // Call without locked mutex as we are called back from dispatch implementation
-    if ( xStatusListener.is() )
+    if ( !xStatusListener.is() )
+        return;
+
+    for ( sal_uInt32 i = 0; i < aDispatchVector.size(); i++ )
     {
         try
         {
-            for ( sal_uInt32 i = 0; i < aDispatchVector.size(); i++ )
+            Listener& rListener = aDispatchVector[i];
+            if ( rListener.xDispatch.is() )
+                rListener.xDispatch->addStatusListener( xStatusListener, rListener.aURL );
+            else if ( rListener.aURL.Complete == m_aCommandURL )
             {
-                Listener& rListener = aDispatchVector[i];
-                if ( rListener.xDispatch.is() )
-                    rListener.xDispatch->addStatusListener( xStatusListener, rListener.aURL );
-                else if ( rListener.aURL.Complete == m_aCommandURL )
-                {
-                    try
-                    {
-                        // Send status changed for the main URL, if we cannot get a valid dispatch object.
-                        // UI disables the button. Catch exception as we release our mutex, it is possible
-                        // that someone else already disposed this instance!
-                        FeatureStateEvent aFeatureStateEvent;
-                        aFeatureStateEvent.IsEnabled = sal_False;
-                        aFeatureStateEvent.FeatureURL = rListener.aURL;
-                        aFeatureStateEvent.State = Any();
-                        xStatusListener->statusChanged( aFeatureStateEvent );
-                    }
-                    catch ( Exception& )
-                    {
-                    }
-                }
+                // Send status changed for the main URL, if we cannot get a valid dispatch object.
+                // UI disables the button. Catch exception as we release our mutex, it is possible
+                // that someone else already disposed this instance!
+                FeatureStateEvent aFeatureStateEvent;
+                aFeatureStateEvent.IsEnabled = sal_False;
+                aFeatureStateEvent.FeatureURL = rListener.aURL;
+                aFeatureStateEvent.State = Any();
+                xStatusListener->statusChanged( aFeatureStateEvent );
             }
         }
-        catch ( Exception& )
-        {
-        }
+        catch ( ... ){}
     }
 }
 
commit cfaac477e2a23880310070690beb3222b1c8227c
Author: Ariel Constenla-Haile <arielch at apache.org>
Date:   Thu Dec 6 12:29:24 2012 +0000

    Related: #i121442# support status bar merging and StatusbarControllers
    
    framework refactoring and new code to support status bar merging and UNO
    StatusbarControllers
    
    (cherry picked from commit 0b3a77478cf2cfd245a87bc528f851e959a2e6c7)
    
    Conflicts:
    	framework/source/uielement/statusbarmanager.cxx
    	framework/source/uielement/toolbarmerger.cxx
    
    Change-Id: I334a220ff27bb365e98a0ebd8bc6e55d65e76d64

diff --git a/framework/Library_fwk.mk b/framework/Library_fwk.mk
index d181814..2a53057 100644
--- a/framework/Library_fwk.mk
+++ b/framework/Library_fwk.mk
@@ -135,6 +135,7 @@ $(eval $(call gb_Library_add_exception_objects,fwk,\
     framework/source/uielement/controlmenucontroller \
     framework/source/uielement/dropdownboxtoolbarcontroller \
     framework/source/uielement/edittoolbarcontroller \
+    framework/source/uielement/genericstatusbarcontroller \
     framework/source/uielement/generictoolbarcontroller \
     framework/source/uielement/imagebuttontoolbarcontroller \
     framework/source/uielement/langselectionstatusbarcontroller \
@@ -146,7 +147,9 @@ $(eval $(call gb_Library_add_exception_objects,fwk,\
     framework/source/uielement/recentfilesmenucontroller \
     framework/source/uielement/spinfieldtoolbarcontroller \
     framework/source/uielement/statusbar \
+    framework/source/uielement/statusbaritem \
     framework/source/uielement/statusbarmanager \
+    framework/source/uielement/statusbarmerger \
     framework/source/uielement/statusbarwrapper \
     framework/source/uielement/statusindicatorinterfacewrapper \
     framework/source/uielement/togglebuttontoolbarcontroller \
diff --git a/framework/inc/uielement/genericstatusbarcontroller.hxx b/framework/inc/uielement/genericstatusbarcontroller.hxx
new file mode 100644
index 0000000..3f73df8
--- /dev/null
+++ b/framework/inc/uielement/genericstatusbarcontroller.hxx
@@ -0,0 +1,57 @@
+/*
+ * 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 .
+ */
+#ifndef __FRAMEWORK_UIELEMENT_GENERICSTATUSBARCONTROLLER_HXX_
+#define __FRAMEWORK_UIELEMENT_GENERICSTATUSBARCONTROLLER_HXX_
+
+#include <svtools/statusbarcontroller.hxx>
+
+#include <com/sun/star/graphic/XGraphic.hpp>
+
+namespace framework
+{
+
+class AddonStatusbarItemData;
+
+class GenericStatusbarController : public svt::StatusbarController
+{
+    public:
+        GenericStatusbarController( const com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory >& rServiceManager,
+                                    const com::sun::star::uno::Reference< com::sun::star::frame::XFrame >& rFrame,
+                                    const com::sun::star::uno::Reference< com::sun::star::ui::XStatusbarItem >& rxItem,
+                                    AddonStatusbarItemData *pItemData );
+        virtual ~GenericStatusbarController();
+
+        // XComponent
+        virtual void SAL_CALL dispose() throw ( ::com::sun::star::uno::RuntimeException );
+        // XStatusListener
+        virtual void SAL_CALL statusChanged( const ::com::sun::star::frame::FeatureStateEvent& Event ) throw ( ::com::sun::star::uno::RuntimeException );
+
+        virtual void SAL_CALL paint( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XGraphics >& xGraphics,
+                                     const ::com::sun::star::awt::Rectangle& rOutputRectangle,
+                                     ::sal_Int32 nStyle ) throw (::com::sun::star::uno::RuntimeException);
+
+    protected:
+        sal_Bool m_bEnabled;
+        sal_Bool m_bOwnerDraw;
+        AddonStatusbarItemData *m_pItemData;
+        ::com::sun::star::uno::Reference< ::com::sun::star::graphic::XGraphic > m_xGraphic;
+};
+
+}
+
+#endif
diff --git a/framework/inc/uielement/statusbaritem.hxx b/framework/inc/uielement/statusbaritem.hxx
new file mode 100644
index 0000000..6e5d2fc
--- /dev/null
+++ b/framework/inc/uielement/statusbaritem.hxx
@@ -0,0 +1,79 @@
+/*
+ * 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 .
+ */
+#ifndef __FRAMEWORK_UIELEMENT_STATUSBARITEM_HXX_
+#define __FRAMEWORK_UIELEMENT_STATUSBARITEM_HXX_
+
+#include <com/sun/star/ui/XStatusbarItem.hpp>
+#include <cppuhelper/compbase1.hxx>
+#include <cppuhelper/basemutex.hxx>
+
+class StatusBar;
+
+namespace framework
+{
+
+struct AddonStatusbarItemData;
+
+typedef cppu::WeakComponentImplHelper1< com::sun::star::ui::XStatusbarItem > StatusbarItem_Base;
+
+class StatusbarItem : protected cppu::BaseMutex,
+                      public StatusbarItem_Base
+{
+public:
+    explicit StatusbarItem(
+                            StatusBar              *pStatusBar,
+                            AddonStatusbarItemData *pItemData,
+                            sal_uInt16              nId,
+                            const rtl::OUString&   aCommand );
+    ~StatusbarItem();
+
+    void SAL_CALL disposing();
+
+    // com::sun::star::ui::XStatusbarItem Attributes
+    virtual ::rtl::OUString SAL_CALL getCommand() throw (::com::sun::star::uno::RuntimeException);
+    virtual ::sal_uInt16 SAL_CALL getItemId() throw (::com::sun::star::uno::RuntimeException);
+    virtual ::sal_uInt32 SAL_CALL getWidth() throw (::com::sun::star::uno::RuntimeException);
+    virtual ::sal_uInt16 SAL_CALL getStyle() throw (::com::sun::star::uno::RuntimeException);
+    virtual ::sal_Int32 SAL_CALL getOffset() throw (::com::sun::star::uno::RuntimeException);
+    virtual ::com::sun::star::awt::Rectangle SAL_CALL getItemRect() throw (::com::sun::star::uno::RuntimeException);
+    virtual ::rtl::OUString SAL_CALL getText() throw (::com::sun::star::uno::RuntimeException);
+    virtual void SAL_CALL setText( const rtl::OUString& rText ) throw (::com::sun::star::uno::RuntimeException);
+    virtual ::rtl::OUString SAL_CALL getHelpText() throw (::com::sun::star::uno::RuntimeException);
+    virtual void SAL_CALL setHelpText( const rtl::OUString& rHelpText ) throw (::com::sun::star::uno::RuntimeException);
+    virtual ::rtl::OUString SAL_CALL getQuickHelpText() throw (::com::sun::star::uno::RuntimeException);
+    virtual void SAL_CALL setQuickHelpText( const rtl::OUString& rQuickHelpText ) throw (::com::sun::star::uno::RuntimeException);
+    virtual ::rtl::OUString SAL_CALL getAccessibleName() throw (::com::sun::star::uno::RuntimeException);
+    virtual void SAL_CALL setAccessibleName( const rtl::OUString& rAccessibleName ) throw (::com::sun::star::uno::RuntimeException);
+    virtual ::sal_Bool SAL_CALL getVisible() throw (::com::sun::star::uno::RuntimeException);
+    virtual void SAL_CALL setVisible( sal_Bool bVisible ) throw (::com::sun::star::uno::RuntimeException);
+
+    // com::sun::star::ui::XStatusbarItem Methods
+    virtual void SAL_CALL repaint(  ) throw (::com::sun::star::uno::RuntimeException);
+
+private:
+    StatusBar              *m_pStatusBar;
+    AddonStatusbarItemData *m_pItemData;
+    sal_uInt16              m_nId;
+    sal_uInt16              m_nStyle;
+    rtl::OUString           m_aCommand;
+
+};
+
+}
+
+#endif
diff --git a/framework/inc/uielement/statusbarmanager.hxx b/framework/inc/uielement/statusbarmanager.hxx
index 4c88c96..26cc183 100644
--- a/framework/inc/uielement/statusbarmanager.hxx
+++ b/framework/inc/uielement/statusbarmanager.hxx
@@ -39,6 +39,7 @@
 #include <cppuhelper/weak.hxx>
 #include <cppuhelper/interfacecontainer.hxx>
 #include <vcl/status.hxx>
+#include <map>
 
 namespace framework
 {
@@ -103,7 +104,7 @@ class StatusBarManager : public ::com::sun::star::frame::XFrameActionListener
         void MouseButton( const MouseEvent& rMEvt ,sal_Bool ( SAL_CALL ::com::sun::star::frame::XStatusbarController::*_pMethod )(const ::com::sun::star::awt::MouseEvent&));
 
     protected:
-        typedef std::vector< ::com::sun::star::uno::Reference< com::sun::star::frame::XStatusListener > > StatusBarControllerVector;
+        typedef std::map< sal_uInt16, ::com::sun::star::uno::Reference< com::sun::star::frame::XStatusListener > > StatusBarControllerMap;
 
         sal_Bool                                                                                        m_bDisposed : 1,
                                                                                                         m_bFrameActionRegistered : 1,
@@ -114,7 +115,7 @@ class StatusBarManager : public ::com::sun::star::frame::XFrameActionListener
         OUString                                                                                   m_aResourceName;
         com::sun::star::uno::Reference< com::sun::star::frame::XFrame >                                 m_xFrame;
         com::sun::star::uno::Reference< com::sun::star::container::XNameAccess >                        m_xUICommandLabels;
-        StatusBarControllerVector                                                                       m_aControllerVector;
+        StatusBarControllerMap                                                                          m_aControllerMap;
         ::cppu::OMultiTypeInterfaceContainerHelper                                                      m_aListenerContainer;   /// container for ALL Listener
         ::com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory >                  m_xServiceManager;
         ::com::sun::star::uno::Reference< ::com::sun::star::frame::XUIControllerRegistration >  m_xStatusbarControllerRegistration;
diff --git a/framework/inc/uielement/statusbarmerger.hxx b/framework/inc/uielement/statusbarmerger.hxx
new file mode 100644
index 0000000..6187913
--- /dev/null
+++ b/framework/inc/uielement/statusbarmerger.hxx
@@ -0,0 +1,81 @@
+/*
+ * 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 .
+ */
+#ifndef __FRAMEWORK_UIELEMENT_STATUSBARMERGER_HXX_
+#define __FRAMEWORK_UIELEMENT_STATUSBARMERGER_HXX_
+
+#include <com/sun/star/beans/PropertyValue.hpp>
+#include <rtl/ustring.hxx>
+#include <uielement/statusbar.hxx>
+
+namespace framework
+{
+
+struct AddonStatusbarItemData
+{
+    rtl::OUString aLabel;
+    sal_uInt16    nItemBits;
+};
+
+struct AddonStatusbarItem
+{
+    rtl::OUString aCommandURL;
+    rtl::OUString aLabel;
+    rtl::OUString aContext;
+    sal_uInt16    nItemBits;
+    sal_Int16     nWidth;
+};
+
+typedef ::std::vector< AddonStatusbarItem > AddonStatusbarItemContainer;
+
+class StatusbarMerger
+{
+public:
+    static bool IsCorrectContext( const ::rtl::OUString& aContext,
+                                  const ::rtl::OUString& aModuleIdentifier );
+
+    static bool ConvertSeqSeqToVector( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > > &rSequence,
+                                       AddonStatusbarItemContainer& rContainer );
+
+    static sal_uInt16 FindReferencePos( StatusBar* pStatusbar,
+                                        const ::rtl::OUString& rReferencePoint );
+
+    static bool ProcessMergeOperation( StatusBar* pStatusbar,
+                                       sal_uInt16 nPos,
+                                       sal_uInt16& rItemId,
+                                       const ::rtl::OUString& rModuleIdentifier,
+                                       const ::rtl::OUString& rMergeCommand,
+                                       const ::rtl::OUString& rMergeCommandParameter,
+                                       const AddonStatusbarItemContainer& rItems );
+
+    static bool ProcessMergeFallback( StatusBar* pStatusbar,
+                                      sal_uInt16 nPos,
+                                      sal_uInt16& rItemId,
+                                      const ::rtl::OUString& rModuleIdentifier,
+                                      const ::rtl::OUString& rMergeCommand,
+                                      const ::rtl::OUString& rMergeFallback,
+                                      const AddonStatusbarItemContainer& rItems );
+
+private:
+    StatusbarMerger();
+    StatusbarMerger( const StatusbarMerger& );
+    StatusbarMerger& operator=( const StatusbarMerger& );
+};
+
+}
+
+#endif
diff --git a/framework/source/uielement/genericstatusbarcontroller.cxx b/framework/source/uielement/genericstatusbarcontroller.cxx
new file mode 100644
index 0000000..4b4d721
--- /dev/null
+++ b/framework/source/uielement/genericstatusbarcontroller.cxx
@@ -0,0 +1,163 @@
+/*
+ * 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 <uielement/genericstatusbarcontroller.hxx>
+#include <uielement/statusbarmerger.hxx>
+
+#include <vcl/svapp.hxx>
+#include <vcl/status.hxx>
+#include <vcl/image.hxx>
+#include <toolkit/helper/vclunohelper.hxx>
+#include <toolkit/helper/convert.hxx>
+
+#include <com/sun/star/ui/ItemStyle.hpp>
+#include <com/sun/star/beans/XPropertySet.hpp>
+#include <com/sun/star/awt/ImageDrawMode.hpp>
+#include <com/sun/star/awt/XGraphics2.hpp>
+#include <com/sun/star/graphic/GraphicType.hpp>
+
+using ::rtl::OUString;
+
+using namespace ::cppu;
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::frame;
+
+namespace framework
+{
+

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list