[Libreoffice-commits] .: Branch 'feature/calc-key-binding-compat' - 36 commits - l10ntools/java l10ntools/prj l10ntools/scripts l10ntools/source padmin/source svtools/inc svtools/source toolkit/inc toolkit/source tools/source unotools/inc unotools/source vcl/aqua vcl/inc vcl/source vcl/unx

Kohei Yoshida kohei at kemper.freedesktop.org
Mon Nov 1 13:08:20 PDT 2010


 l10ntools/java/jpropex/java/JPropEx.java       |   11 -
 l10ntools/java/jpropex/java/SdfData.java       |    2 
 l10ntools/java/jpropex/java/SdfEntity.java     |    1 
 l10ntools/prj/d.lst                            |    3 
 l10ntools/scripts/localize.pl                  |  124 +------------
 l10ntools/scripts/tool/l10ntool.py             |    3 
 l10ntools/scripts/tool/xhtex.py                |    7 
 l10ntools/source/help/HelpLinker.cxx           |   12 -
 padmin/source/spadmin.sh                       |   13 +
 svtools/inc/bindablecontrolhelper.hxx          |   61 ++++++
 svtools/inc/filterutils.hxx                    |   22 ++
 svtools/source/brwbox/brwbox2.cxx              |    7 
 svtools/source/control/tabbar.cxx              |    3 
 svtools/source/misc/bindablecontrolhelper.cxx  |  161 +++++++++++++++++
 svtools/source/misc/filterutils.cxx            |   55 ++++++
 svtools/source/misc/makefile.mk                |    2 
 toolkit/inc/toolkit/awt/vclxmenu.hxx           |    2 
 toolkit/inc/toolkit/awt/vclxwindows.hxx        |    8 
 toolkit/inc/toolkit/controls/dialogcontrol.hxx |   44 +++-
 toolkit/inc/toolkit/controls/unocontrols.hxx   |   39 ++++
 toolkit/inc/toolkit/helper/property.hxx        |    3 
 toolkit/inc/toolkit/helper/servicenames.hxx    |    2 
 toolkit/source/awt/vclxmenu.cxx                |   13 +
 toolkit/source/awt/vclxwindows.cxx             |   83 ++++++---
 toolkit/source/controls/dialogcontrol.cxx      |  227 +++++++++++++++++--------
 toolkit/source/controls/unocontrolmodel.cxx    |    1 
 toolkit/source/controls/unocontrols.cxx        |   77 ++++++++
 toolkit/source/helper/property.cxx             |    2 
 toolkit/source/helper/registerservices.cxx     |    6 
 toolkit/source/helper/servicenames.cxx         |    4 
 tools/source/stream/strmunx.cxx                |    2 
 tools/source/string/makefile.mk                |    2 
 unotools/inc/unotools/configmgr.hxx            |    4 
 unotools/inc/unotools/fltrcfg.hxx              |    2 
 unotools/source/config/configitem.cxx          |    2 
 unotools/source/config/configmgr.cxx           |   22 --
 unotools/source/config/docinfohelper.cxx       |   41 ++--
 unotools/source/config/fltrcfg.cxx             |   62 ++++++
 unotools/source/config/pathoptions.cxx         |    2 
 unotools/source/config/useroptions.cxx         |    2 
 vcl/aqua/inc/salframeview.h                    |    4 
 vcl/aqua/source/app/salinst.cxx                |    4 
 vcl/aqua/source/window/salframeview.mm         |   65 ++++---
 vcl/inc/vcl/bitmap.hxx                         |    6 
 vcl/inc/vcl/bitmapex.hxx                       |    1 
 vcl/inc/vcl/dialog.hxx                         |    4 
 vcl/inc/vcl/svapp.hxx                          |    1 
 vcl/source/app/svapp.cxx                       |    5 
 vcl/source/control/combobox.cxx                |   27 +-
 vcl/source/gdi/bitmap2.cxx                     |   30 ++-
 vcl/source/gdi/bitmapex.cxx                    |   56 ++++++
 vcl/source/gdi/metaact.cxx                     |    2 
 vcl/source/gdi/outdev2.cxx                     |   11 -
 vcl/source/window/dialog.cxx                   |   27 ++
 vcl/source/window/toolbox2.cxx                 |    2 
 vcl/source/window/window.cxx                   |   31 ++-
 vcl/unx/gtk/a11y/atklistener.cxx               |    6 
 vcl/unx/gtk/a11y/atktextattributes.cxx         |    2 
 vcl/unx/gtk/a11y/atkutil.cxx                   |    6 
 vcl/unx/gtk/app/gtksys.cxx                     |    6 
 vcl/unx/gtk/window/gtkobject.cxx               |    6 
 vcl/unx/source/app/keysymnames.cxx             |    6 
 vcl/unx/source/app/saldisp.cxx                 |    2 
 vcl/unx/source/fontmanager/fontconfig.cxx      |   19 +-
 vcl/unx/source/window/salframe.cxx             |   10 -
 65 files changed, 1092 insertions(+), 386 deletions(-)

New commits:
commit e9bcdc225d05ac6afe6ac16e335a53f5cc24737d
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Wed Oct 13 15:41:23 2010 +0100

    tweaks for AIX

diff --git a/vcl/unx/gtk/a11y/atklistener.cxx b/vcl/unx/gtk/a11y/atklistener.cxx
index 7b63d25..4790585 100644
--- a/vcl/unx/gtk/a11y/atklistener.cxx
+++ b/vcl/unx/gtk/a11y/atklistener.cxx
@@ -28,6 +28,12 @@
 // MARKER(update_precomp.py): autogen include statement, do not remove
 #include "precompiled_vcl.hxx"
 
+#ifdef AIX
+#define _LINUX_SOURCE_COMPAT
+#include <sys/timer.h>
+#undef _LINUX_SOURCE_COMPAT
+#endif
+
 #include <com/sun/star/accessibility/TextSegment.hpp>
 #include <com/sun/star/accessibility/AccessibleEventId.hpp>
 #include <com/sun/star/accessibility/AccessibleStateType.hpp>
diff --git a/vcl/unx/gtk/a11y/atktextattributes.cxx b/vcl/unx/gtk/a11y/atktextattributes.cxx
index 0449881..6460dea 100644
--- a/vcl/unx/gtk/a11y/atktextattributes.cxx
+++ b/vcl/unx/gtk/a11y/atktextattributes.cxx
@@ -1092,7 +1092,7 @@ TabStopList2String( const uno::Any& rAny, bool default_tabs )
             if( ret )
             {
                 gchar * old_tab_str = ret;
-                ret = g_strconcat(old_tab_str, " ", tab_str, NULL /* terminated */);
+                ret = g_strconcat(old_tab_str, " ", tab_str, (const char*)NULL);
                 g_free( old_tab_str );
             }
             else
diff --git a/vcl/unx/gtk/a11y/atkutil.cxx b/vcl/unx/gtk/a11y/atkutil.cxx
index fce5916..71a6be6 100644
--- a/vcl/unx/gtk/a11y/atkutil.cxx
+++ b/vcl/unx/gtk/a11y/atkutil.cxx
@@ -28,6 +28,12 @@
 // MARKER(update_precomp.py): autogen include statement, do not remove
 #include "precompiled_vcl.hxx"
 
+#ifdef AIX
+#define _LINUX_SOURCE_COMPAT
+#include <sys/timer.h>
+#undef _LINUX_SOURCE_COMPAT
+#endif
+
 #include <com/sun/star/accessibility/XAccessibleContext.hpp>
 #include <com/sun/star/accessibility/XAccessibleEventBroadcaster.hpp>
 #include <com/sun/star/accessibility/XAccessibleSelection.hpp>
diff --git a/vcl/unx/gtk/app/gtksys.cxx b/vcl/unx/gtk/app/gtksys.cxx
index c928b6f..1a4f97f 100644
--- a/vcl/unx/gtk/app/gtksys.cxx
+++ b/vcl/unx/gtk/app/gtksys.cxx
@@ -28,6 +28,12 @@
 // MARKER(update_precomp.py): autogen include statement, do not remove
 #include "precompiled_vcl.hxx"
 
+#ifdef AIX
+#define _LINUX_SOURCE_COMPAT
+#include <sys/timer.h>
+#undef _LINUX_SOURCE_COMPAT
+#endif
+
 #include <svunx.h>
 #include <vcl/svdata.hxx>
 #include <vcl/window.hxx>
diff --git a/vcl/unx/gtk/window/gtkobject.cxx b/vcl/unx/gtk/window/gtkobject.cxx
index b7b5406..64ca348 100644
--- a/vcl/unx/gtk/window/gtkobject.cxx
+++ b/vcl/unx/gtk/window/gtkobject.cxx
@@ -28,6 +28,12 @@
 // MARKER(update_precomp.py): autogen include statement, do not remove
 #include "precompiled_vcl.hxx"
 
+#ifdef AIX
+#define _LINUX_SOURCE_COMPAT
+#include <sys/timer.h>
+#undef _LINUX_SOURCE_COMPAT
+#endif
+
 #include <plugins/gtk/gtkobject.hxx>
 #include <plugins/gtk/gtkframe.hxx>
 #include <plugins/gtk/gtkdata.hxx>
diff --git a/vcl/unx/source/app/keysymnames.cxx b/vcl/unx/source/app/keysymnames.cxx
index 7a4f984..5ef9e5a 100644
--- a/vcl/unx/source/app/keysymnames.cxx
+++ b/vcl/unx/source/app/keysymnames.cxx
@@ -28,7 +28,7 @@
 // MARKER(update_precomp.py): autogen include statement, do not remove
 #include "precompiled_vcl.hxx"
 
-#ifndef SOLARIS
+#if !defined(SOLARIS) && !defined(AIX)
 #include <tools/prex.h>
 #include <X11/XKBlib.h>
 #include <tools/postx.h>
@@ -601,7 +601,7 @@ const char* SalDisplay::GetKeyboardName( bool bRefresh )
 {
     if( bRefresh || ! m_aKeyboardName.Len() )
     {
-#ifdef SOLARIS
+#if defined(SOLARIS)
         if( IsLocal() )
         {
             int kbd = open( "/dev/kbd", O_RDONLY );
@@ -640,7 +640,7 @@ const char* SalDisplay::GetKeyboardName( bool bRefresh )
                 close(kbd);
             }
         }
-#else
+#elif !defined(AIX)
         int opcode, event, error;
         int major = XkbMajorVersion, minor = XkbMinorVersion;
         if( XkbQueryExtension( GetDisplay(), &opcode, &event,&error, &major, &minor ) )
diff --git a/vcl/unx/source/app/saldisp.cxx b/vcl/unx/source/app/saldisp.cxx
index 2a17766..6251781 100644
--- a/vcl/unx/source/app/saldisp.cxx
+++ b/vcl/unx/source/app/saldisp.cxx
@@ -41,7 +41,7 @@
 #include <ctype.h>
 #include <string.h>
 
-#if defined(SOLARIS)
+#if defined(SOLARIS) || defined(AIX)
 #include <sal/alloca.h>
 #include <osl/module.h>
 #endif
diff --git a/vcl/unx/source/window/salframe.cxx b/vcl/unx/source/window/salframe.cxx
index ddadc77..99ae82e 100644
--- a/vcl/unx/source/window/salframe.cxx
+++ b/vcl/unx/source/window/salframe.cxx
@@ -38,7 +38,7 @@
 #include <X11/keysym.h>
 #include "FWS.hxx"
 #include <X11/extensions/shape.h>
-#ifndef SOLARIS
+#if !defined(SOLARIS) && !defined(AIX)
 #include <X11/extensions/dpms.h>
 #endif
 #include <tools/postx.h>
@@ -2360,7 +2360,7 @@ void X11SalFrame::StartPresentation( BOOL bStart )
     // needs static here to save DPMS settings
     int dummy; 	
     static bool DPMSExtensionAvailable =
-#ifndef SOLARIS
+#if !defined(SOLARIS) && !defined(AIX)
         (DPMSQueryExtension(GetXDisplay(), &dummy, &dummy) != 0);
     static XLIB_BOOL DPMSEnabled = false;
 #else
@@ -2395,7 +2395,7 @@ void X11SalFrame::StartPresentation( BOOL bStart )
         // get the DPMS state right before the start
         if (DPMSExtensionAvailable)
         {
-#ifndef SOLARIS
+#if !defined(SOLARIS) && !defined(AIX)
             CARD16 state; // card16 is defined in Xdm.h 
             DPMSInfo(	GetXDisplay(), 
                         &state, 
@@ -2414,7 +2414,7 @@ void X11SalFrame::StartPresentation( BOOL bStart )
                                  prefer_blanking,
                                  allow_exposures );	  
             }
-#ifndef SOLARIS
+#if !defined(SOLARIS) && !defined(AIX)
             if( DPMSEnabled )
             {
                 if ( DPMSExtensionAvailable )
@@ -2439,7 +2439,7 @@ void X11SalFrame::StartPresentation( BOOL bStart )
                              allow_exposures );
                 nScreenSaversTimeout_ = 0;		
             }
-#ifndef SOLARIS
+#if !defined(SOLARIS) && !defined(AIX)
             if ( DPMSEnabled )
             {			
                 if ( DPMSExtensionAvailable )
commit 2f6c52290594fa8fc15e28cb564d129f9d053487
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Wed Oct 13 15:37:04 2010 +0100

    fixes for AIX

diff --git a/tools/source/stream/strmunx.cxx b/tools/source/stream/strmunx.cxx
index 753b9a6..2212861 100644
--- a/tools/source/stream/strmunx.cxx
+++ b/tools/source/stream/strmunx.cxx
@@ -209,7 +209,7 @@ static sal_uInt32 GetSvError( int nErrno )
         { 0,            SVSTREAM_OK },
         { EACCES,       SVSTREAM_ACCESS_DENIED },
         { EBADF,        SVSTREAM_INVALID_HANDLE },
-#if defined( RS6000 ) || defined( ALPHA ) || defined( HP9000 ) || defined( NETBSD ) || defined(FREEBSD) || defined(MACOSX) || defined(__FreeBSD_kernel__)
+#if defined( RS6000 ) || defined( ALPHA ) || defined( HP9000 ) || defined( NETBSD ) || defined(FREEBSD) || defined(MACOSX) || defined(__FreeBSD_kernel__) || defined ( AIX )
         { EDEADLK,      SVSTREAM_LOCKING_VIOLATION },
 #else
         { EDEADLOCK,    SVSTREAM_LOCKING_VIOLATION },
diff --git a/tools/source/string/makefile.mk b/tools/source/string/makefile.mk
index 4caa316..255feac 100644
--- a/tools/source/string/makefile.mk
+++ b/tools/source/string/makefile.mk
@@ -37,7 +37,9 @@ TARGET=str
 
 # --- Files --------------------------------------------------------
 
+.IF "$(OS)"!="AIX"
 ALWAYSDBGFILES = $(SLO)$/debugprint.obj
+.ENDIF
 
 .IF "$(ALWAYSDBGFILES)" != ""
 ALWAYSDBGTARGET=do_it_alwaysdebug
commit 4e498609410348cdb67675d58523012c64ffc3c1
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Wed Oct 13 13:55:18 2010 +0100

    tweak this for AIX

diff --git a/padmin/source/spadmin.sh b/padmin/source/spadmin.sh
index 01b1964..b57fd63 100644
--- a/padmin/source/spadmin.sh
+++ b/padmin/source/spadmin.sh
@@ -57,8 +57,17 @@ if [ -x "$sd_prog/../basis-link/ure-link/bin/javaldx" ] ; then
     my_path=`"$sd_prog/../basis-link/ure-link/bin/javaldx" $BOOTSTRAPVARS \
         "-env:INIFILENAME=vnd.sun.star.pathname:$sd_prog/redirectrc"`
     if [ -n "$my_path" ] ; then
-        LD_LIBRARY_PATH=$my_path${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
-        export LD_LIBRARY_PATH
+        sd_platform=`uname -s`
+        case $sd_platform in
+          AIX)
+            LIBPATH=$my_path${LIBPATH:+:$LIBPATH}
+            export LIBPATH
+            ;;
+          *)
+            LD_LIBRARY_PATH=$my_path${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
+            export LD_LIBRARY_PATH
+            ;;
+        esac
     fi
 fi
 
commit e5c8ed4e7c05f980be4093c085c15f72088649a5
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Wed Oct 13 13:31:43 2010 +0100

    hackaround for AIX

diff --git a/l10ntools/source/help/HelpLinker.cxx b/l10ntools/source/help/HelpLinker.cxx
index 512c1de..847efb9 100644
--- a/l10ntools/source/help/HelpLinker.cxx
+++ b/l10ntools/source/help/HelpLinker.cxx
@@ -25,6 +25,10 @@
  *
  ************************************************************************/
 
+#ifdef AIX
+#    undef _THREAD_SAFE
+#endif
+
 #include "HelpCompiler.hxx"
 
 #include <map>
commit f58bfd38df7ccc80cd6abce3b69a75e86cb5e863
Merge: 3e1bb90... faf640e...
Author: Noel Power <noel.power at novell.com>
Date:   Wed Oct 13 15:17:38 2010 +0100

    Merge branch 'master' of ssh://noelp@git.freedesktop.org/git/libreoffice/libs-gui

commit 3e1bb901d307619e7d9ddd9d8ea08e0c0193db04
Merge: 3a48a38... ce8ec7e...
Author: Noel Power <noel.power at novell.com>
Date:   Wed Oct 13 13:14:57 2010 +0100

    Merge commit 'origin/master'

commit 3a48a38e269185a7a114d540ecb79587cd3d58d0
Merge: 824b7fb... e7afd1f...
Author: Noel Power <noel.power at novell.com>
Date:   Wed Oct 13 10:55:27 2010 +0100

    Merge branch 'vba' fix conflics, trailing ws & tab issues
    
    Conflicts:
    	unotools/source/config/fltrcfg.cxx

diff --cc svtools/inc/bindablecontrolhelper.hxx
index 0000000,e9cd3e6..d154ea4
mode 000000,100644..100644
--- a/svtools/inc/bindablecontrolhelper.hxx
+++ b/svtools/inc/bindablecontrolhelper.hxx
@@@ -1,0 -1,62 +1,61 @@@
+ /*************************************************************************
+  *
+  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 - * 
++ *
+  * Copyright 2008 by Sun Microsystems, Inc.
+  *
+  * OpenOffice.org - a multi-platform office productivity suite
+  *
+  * $RCSfile: imageresourceaccess.hxx,v $
+  * $Revision: 1.5 $
+  *
+  * This file is part of OpenOffice.org.
+  *
+  * OpenOffice.org is free software: you can redistribute it and/or modify
+  * it under the terms of the GNU Lesser General Public License version 3
+  * only, as published by the Free Software Foundation.
+  *
+  * OpenOffice.org is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  * GNU Lesser General Public License version 3 for more details
+  * (a copy is included in the LICENSE file that accompanied this code).
+  *
+  * You should have received a copy of the GNU Lesser General Public License
+  * version 3 along with OpenOffice.org.  If not, see
+  * <http://www.openoffice.org/license.html>
+  * for a copy of the LGPLv3 License.
+  *
+  ************************************************************************/
+ 
+ #ifndef SVTOOLS_INC_BINDABLECONTROL_HXX
+ #define SVTOOLS_INC_BINDABLECONTROL_HXX
+ 
+ #include "svtools/svtdllapi.h"
+ 
+ #include <com/sun/star/frame/XModel.hpp>
+ //........................................................................
+ namespace svt
+ {
+ //........................................................................
+ 
+     //====================================================================
+     //= GraphicAccess
+     //====================================================================
+     /** helper class for obtaining streams (which also can be used with the ImageProducer)
+         from a resource
+     */
+     class BindableControlHelper
+     {
+     private:
+         BindableControlHelper();    // never implemented
+ 
+     public:
+         SVT_DLLPUBLIC static  void ApplyListSourceAndBindableData( const com::sun::star::uno::Reference< com::sun::star::frame::XModel >& xModel, const com::sun::star::uno::Reference< com::sun::star::uno::XInterface >& rObj, const rtl::OUString& rsCtrlSource, const rtl::OUString& rsRowSource );
+     };
+ 
+ //........................................................................
+ } // namespace svt
+ //........................................................................
+ 
 -#endif // DBA14_SVTOOLS_INC_IMAGERESOURCEACCESS_HXX
 -
++#endif // SVTOOLS_INC_BINDABLECONTROL_HXX
diff --cc svtools/inc/filterutils.hxx
index 0000000,a05025f..e10eb2a
mode 000000,100644..100644
--- a/svtools/inc/filterutils.hxx
+++ b/svtools/inc/filterutils.hxx
@@@ -1,0 -1,22 +1,22 @@@
+ #ifndef SVTOOLS_INC_FILTERUTILS_HXX
+ #define SVTOOLS_INC_FILTERUTILS_HXX
+ 
+ #include "svtools/svtdllapi.h"
+ #include <com/sun/star/uno/RuntimeException.hpp>
+ namespace svt
+ {
+     class BinFilterUtils
+     {
+     private:
+         BinFilterUtils();    // never implemented
+ 
+     public:
+         SVT_DLLPUBLIC static  rtl::OUString CreateOUStringFromUniStringArray( const char* pcCharArr, sal_uInt32 nBufSize );
+         SVT_DLLPUBLIC static  rtl::OUString CreateOUStringFromStringArray( const char* pcCharArr, sal_uInt32 nBufSize );
+     };
+ 
+ //........................................................................
+ } // namespace svt
+ //........................................................................
+ 
 -#endif 
++#endif
diff --cc svtools/source/misc/bindablecontrolhelper.cxx
index 0000000,ba842f0..4dac025
mode 000000,100644..100644
--- a/svtools/source/misc/bindablecontrolhelper.cxx
+++ b/svtools/source/misc/bindablecontrolhelper.cxx
@@@ -1,0 -1,162 +1,161 @@@
+ /*************************************************************************
+  *
+  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 - * 
++ *
+  * Copyright 2008 by Sun Microsystems, Inc.
+  *
+  * OpenOffice.org - a multi-platform office productivity suite
+  *
+  * $RCSfile: imageresourceaccess.cxx,v $
+  * $Revision: 1.5 $
+  *
+  * This file is part of OpenOffice.org.
+  *
+  * OpenOffice.org is free software: you can redistribute it and/or modify
+  * it under the terms of the GNU Lesser General Public License version 3
+  * only, as published by the Free Software Foundation.
+  *
+  * OpenOffice.org is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  * GNU Lesser General Public License version 3 for more details
+  * (a copy is included in the LICENSE file that accompanied this code).
+  *
+  * You should have received a copy of the GNU Lesser General Public License
+  * version 3 along with OpenOffice.org.  If not, see
+  * <http://www.openoffice.org/license.html>
+  * for a copy of the LGPLv3 License.
+  *
+  ************************************************************************/
+ 
+ // MARKER(update_precomp.py): autogen include statement, do not remove
+ #include "precompiled_svtools.hxx"
+ #include "bindablecontrolhelper.hxx"
+ #include <com/sun/star/form/binding/XBindableValue.hpp>
+ #include <com/sun/star/form/binding/XValueBinding.hpp>
+ #include <com/sun/star/form/binding/XListEntrySink.hpp>
+ #include <com/sun/star/form/binding/XListEntrySource.hpp>
+ #include <com/sun/star/beans/XPropertySet.hpp>
+ #include <com/sun/star/container/XNameAccess.hpp>
+ #include <com/sun/star/table/CellRangeAddress.hpp>
+ #include <com/sun/star/sheet/XCellRangeReferrer.hpp>
+ #include <com/sun/star/sheet/XCellRangeAddressable.hpp>
+ #include <com/sun/star/lang/XMultiServiceFactory.hpp>
+ #include <com/sun/star/table/CellAddress.hpp>
+ #include <com/sun/star/beans/NamedValue.hpp>
+ 
+ //........................................................................
+ namespace svt
+ {
+ //........................................................................
+ 
+ #ifndef C2U
+ #define C2U(cChar)	rtl::OUString::createFromAscii(cChar)
+ #endif
+ 
+     using namespace ::com::sun::star;
+ 
+ bool lcl_isNamedRange( const rtl::OUString& sAddress, const uno::Reference< frame::XModel >& xModel, table::CellRangeAddress& aAddress )
+ {
+     bool bRes = false;
+     const static rtl::OUString sNamedRanges( RTL_CONSTASCII_USTRINGPARAM("NamedRanges"));
+     uno::Reference< sheet::XCellRangeReferrer > xReferrer;
+     try
+     {
+         uno::Reference< beans::XPropertySet > xPropSet( xModel, uno::UNO_QUERY_THROW );
+         uno::Reference< container::XNameAccess > xNamed( xPropSet->getPropertyValue( sNamedRanges ), uno::UNO_QUERY_THROW );
+         xReferrer.set ( xNamed->getByName( sAddress ), uno::UNO_QUERY );
+     }
+     catch( uno::Exception& /*e*/ )
+     {
+         // do nothing
+     }
+     if ( xReferrer.is() )
+     {
+         uno::Reference< sheet::XCellRangeAddressable > xRangeAddressable( xReferrer->getReferredCells(), uno::UNO_QUERY );
+         if ( xRangeAddressable.is() )
+         {
+             aAddress = xRangeAddressable->getRangeAddress();
+             bRes = true;
+         }
+     }
+     return bRes;
+ }
+ 
+ 
+ void
+ BindableControlHelper::ApplyListSourceAndBindableData( const com::sun::star::uno::Reference< com::sun::star::frame::XModel >& xModel, const com::sun::star::uno::Reference< com::sun::star::uno::XInterface >& rObj, const rtl::OUString& rsCtrlSource, const rtl::OUString& rsRowSource )
+ {
+ // XBindable etc.
+     uno::Reference< lang::XMultiServiceFactory > xFac;
+     if ( xModel.is() )
+         xFac.set( xModel, uno::UNO_QUERY );
+     uno::Reference< form::binding::XBindableValue > xBindable( rObj, uno::UNO_QUERY );
+     if (  xFac.is() && rsCtrlSource.getLength() && xBindable.is() )
+     {
 -         
++
+          // OOo address structures
+          // RefCell - convert from XL
+          // pretend we converted the imported string address into the
+          // appropriate address structure
+          uno::Reference< beans::XPropertySet > xConvertor( xFac->createInstance( C2U( "com.sun.star.table.CellAddressConversion" )), uno::UNO_QUERY );
+          table::CellAddress aAddress;
+          if ( xConvertor.is() )
+          {
+              // we need this service to properly convert XL notation also
+              // Should be easy to extend
+              xConvertor->setPropertyValue( C2U( "XL_A1_Representation" ), uno::makeAny( rsCtrlSource ) );
 -             xConvertor->getPropertyValue( C2U( "Address" ) ) >>= aAddress;    
++             xConvertor->getPropertyValue( C2U( "Address" ) ) >>= aAddress;
+          }
 -        
++
+          beans::NamedValue aArg1;
+          aArg1.Name = C2U("BoundCell");
+          aArg1.Value <<= aAddress;
+ 
+          uno::Sequence< uno::Any > aArgs(1);
+          aArgs[ 0 ]  <<= aArg1;
+ 
+          uno::Reference< form::binding::XValueBinding > xBinding( xFac->createInstanceWithArguments( C2U("com.sun.star.table.CellValueBinding" ), aArgs ), uno::UNO_QUERY );
+          xBindable->setValueBinding( xBinding );
+     }
+     else if ( xBindable.is() ) // reset it
+         xBindable->setValueBinding( uno::Reference< form::binding::XValueBinding >() );
+     uno::Reference< form::binding::XListEntrySink > xListEntrySink( rObj, uno::UNO_QUERY );
+     if (  xFac.is() && rsRowSource.getLength() && xListEntrySink.is() )
+     {
 -         
++
+          // OOo address structures
+          // RefCell - convert from XL
+          // pretend we converted the imported string address into the
+          // appropriate address structure
+          uno::Reference< beans::XPropertySet > xConvertor( xFac->createInstance( C2U( "com.sun.star.table.CellRangeAddressConversion" )), uno::UNO_QUERY );
+          table::CellRangeAddress aAddress;
+          if ( xConvertor.is() )
+          {
+              if ( !lcl_isNamedRange( rsRowSource, xModel, aAddress ) )
+              {
+                  // we need this service to properly convert XL notation also
+                  // Should be easy to extend
+                  xConvertor->setPropertyValue( C2U( "XL_A1_Representation" ), uno::makeAny( rsRowSource ) );
+                  xConvertor->getPropertyValue( C2U( "Address" ) ) >>= aAddress;
+              }
+          }
 -        
++
+          beans::NamedValue aArg1;
+          aArg1.Name = C2U("CellRange");
+          aArg1.Value <<= aAddress;
+ 
+          uno::Sequence< uno::Any > aArgs(1);
+          aArgs[ 0 ]  <<= aArg1;
+ 
+          uno::Reference< form::binding::XListEntrySource > xSource( xFac->createInstanceWithArguments( C2U("com.sun.star.table.CellRangeListSource" ), aArgs ), uno::UNO_QUERY );
+          xListEntrySink->setListEntrySource( xSource );
+     }
+     else if (  xListEntrySink.is() ) // reset
+          xListEntrySink->setListEntrySource( uno::Reference< form::binding::XListEntrySource >()  );
+ 
+ }
+ 
+ //........................................................................
+ } // namespace svt
+ //........................................................................
 -
diff --cc svtools/source/misc/filterutils.cxx
index 0000000,91a6ca4..5a31070
mode 000000,100644..100644
--- a/svtools/source/misc/filterutils.cxx
+++ b/svtools/source/misc/filterutils.cxx
@@@ -1,0 -1,56 +1,55 @@@
+ // MARKER(update_precomp.py): autogen include statement, do not remove
+ #include "precompiled_svtools.hxx"
+ #include "filterutils.hxx"
+ #include <rtl/ustrbuf.hxx>
+ 
+ namespace svt
+ {
+ //........................................................................
+ 
+     using namespace ::com::sun::star;
+ 
+     rtl::OUString lcl_createStringFromArray( const char* pcCharArr, sal_uInt32 nBufSize, bool bIsCompressed )
+     {
+         rtl::OUStringBuffer aBuffer;
+         if( bIsCompressed )
+         {
+             // buffer contains compressed Unicode, not encoded bytestring
+             sal_Int32 nStrLen = static_cast< sal_Int32 >( nBufSize );
+             aBuffer.setLength( nStrLen );
+             const char* pcCurrChar = pcCharArr;
+             for( sal_Int32 nChar = 0; nChar < nStrLen; ++nChar, ++pcCurrChar )
+                 /*  *pcCurrChar may contain negative values and therefore MUST be
+                     casted to unsigned char, before assigned to a sal_Unicode. */
+                 aBuffer.setCharAt( nChar, static_cast< unsigned char >( *pcCurrChar ) );
+         }
+         else
+         {
+             // buffer contains Little-Endian Unicode
+             sal_Int32 nStrLen = static_cast< sal_Int32 >( nBufSize ) / 2;
+             aBuffer.setLength( nStrLen );
+             const char* pcCurrChar = pcCharArr;
+             for( sal_Int32 nChar = 0; nChar < nStrLen; ++nChar )
+             {
+                 /*  *pcCurrChar may contain negative values and therefore MUST be
+                     casted to unsigned char, before assigned to a sal_Unicode. */
+                 sal_Unicode cChar = static_cast< unsigned char >( *pcCurrChar++ );
+                 cChar |= (static_cast< unsigned char >( *pcCurrChar++ ) << 8);
+                 aBuffer.setCharAt( nChar, cChar );
+             }
+         }
+         return aBuffer.makeStringAndClear();
+     }
+ 
+     rtl::OUString BinFilterUtils::CreateOUStringFromUniStringArray( const char* pcCharArr, sal_uInt32 nBufSize )
+     {
+         return lcl_createStringFromArray( pcCharArr, nBufSize, false );
+     }
+ 
+     rtl::OUString BinFilterUtils::CreateOUStringFromStringArray( const char* pcCharArr, sal_uInt32 nBufSize )
+     {
+         return lcl_createStringFromArray( pcCharArr, nBufSize, true );
 -    }    
++    }
+ //........................................................................
+ } // namespace svt
+ //........................................................................
 -
diff --cc toolkit/inc/toolkit/awt/vclxmenu.hxx
index 590f7b8,88be605..7bb19e9
--- a/toolkit/inc/toolkit/awt/vclxmenu.hxx
+++ b/toolkit/inc/toolkit/awt/vclxmenu.hxx
@@@ -181,6 -182,7 +182,7 @@@ class TOOLKIT_DLLPUBLIC VCLXPopupMenu 
  {
  public:
          VCLXPopupMenu();
 -		VCLXPopupMenu( PopupMenu* pPopMenu );
++        VCLXPopupMenu( PopupMenu* pPopMenu );
  };
  
  #endif // _TOOLKIT_AWT_VCLXMENU_HXX_
diff --cc toolkit/inc/toolkit/awt/vclxwindows.hxx
index 657cc19,33bd033..97d55c8
--- a/toolkit/inc/toolkit/awt/vclxwindows.hxx
+++ b/toolkit/inc/toolkit/awt/vclxwindows.hxx
@@@ -1,7 -1,7 +1,7 @@@
  /*************************************************************************
   *
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-- * 
++ *
   * Copyright 2000, 2010 Oracle and/or its affiliates.
   *
   * OpenOffice.org - a multi-platform office productivity suite
@@@ -376,6 -379,7 +377,7 @@@ public
  //	class VCLXDialog
  //	----------------------------------------------------
  class VCLXDialog :	public ::com::sun::star::awt::XDialog2,
 -						public ::com::sun::star::document::XVbaMethodParameter, //liuchen 2009-6-22, add the support of input/output parameters to VBA UserForm_QueryClose event
++                        public ::com::sun::star::document::XVbaMethodParameter, //liuchen 2009-6-22, add the support of input/output parameters to VBA UserForm_QueryClose event
                      public VCLXTopWindow
  {
  public:
@@@ -413,6 -417,10 +415,10 @@@
      // ::com::sun::star::awt::XVclWindowPeer
      void SAL_CALL setProperty( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& Value ) throw(::com::sun::star::uno::RuntimeException);
  
 -	//liuchen 2009-6-23, support Excel VBA UserForm_QueryClose event
 -	// ::com::sun::star::document::XVBAMethodParameter
 -	void SAL_CALL setVbaMethodParameter( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& Value ) throw(::com::sun::star::uno::RuntimeException);
 -	::com::sun::star::uno::Any SAL_CALL getVbaMethodParameter( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::uno::RuntimeException); 
++    //liuchen 2009-6-23, support Excel VBA UserForm_QueryClose event
++    // ::com::sun::star::document::XVBAMethodParameter
++    void SAL_CALL setVbaMethodParameter( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& Value ) throw(::com::sun::star::uno::RuntimeException);
++    ::com::sun::star::uno::Any SAL_CALL getVbaMethodParameter( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::uno::RuntimeException);
  };
  
  //	----------------------------------------------------
diff --cc toolkit/inc/toolkit/controls/dialogcontrol.hxx
index 7b8e025,a1725f2..7610fa7
--- a/toolkit/inc/toolkit/controls/dialogcontrol.hxx
+++ b/toolkit/inc/toolkit/controls/dialogcontrol.hxx
@@@ -1,7 -1,7 +1,7 @@@
  /*************************************************************************
   *
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-- * 
++ *
   * Copyright 2000, 2010 Oracle and/or its affiliates.
   *
   * OpenOffice.org - a multi-platform office productivity suite
@@@ -73,7 -75,7 +75,7 @@@ private
      typedef ::std::list< UnoControlModelHolder >		UnoControlModelHolderList;
  
      // for grouping control models (XTabControllerModel::getGroupXXX)
--    typedef ::std::vector< ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlModel > >	
++    typedef ::std::vector< ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlModel > >
                                                          ModelGroup;
      typedef	::std::vector< ModelGroup >					AllGroups;
  
@@@ -88,8 -90,10 +90,10 @@@ private
  
      AllGroups							maGroups;
      sal_Bool							mbGroupsUpToDate;
 -        
 -	::com::sun::star::uno::Reference< ::com::sun::star::graphic::XGraphicObject > mxGrfObj;
 -	bool mbAdjustingGraphic;
 -protected:	
 +
- protected:	
++    ::com::sun::star::uno::Reference< ::com::sun::star::graphic::XGraphicObject > mxGrfObj;
++    bool mbAdjustingGraphic;
++protected:
      ::com::sun::star::uno::Any			ImplGetDefaultValue( sal_uInt16 nPropId ) const;
      ::cppu::IPropertyArrayHelper&		SAL_CALL getInfoHelper();
  
@@@ -99,7 -103,7 +103,7 @@@ public
                          UnoControlDialogModel();
                          UnoControlDialogModel( const UnoControlDialogModel& rModel );
                          ~UnoControlDialogModel();
--                        
++
      UnoControlModel*	Clone() const;
  
      ::com::sun::star::uno::Any	SAL_CALL queryInterface( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException) { return UnoControlModel::queryInterface(rType); }
@@@ -118,14 -122,14 +122,14 @@@
      // ::com::sun::star::container::XElementAcces
      ::com::sun::star::uno::Type SAL_CALL getElementType(  ) throw(::com::sun::star::uno::RuntimeException);
      sal_Bool SAL_CALL hasElements(  ) throw(::com::sun::star::uno::RuntimeException);
--    
++
      // ::com::sun::star::container::XIndexContainer, XIndexReplace, XIndexAcces
      // void SAL_CALL replaceByIndex( sal_Int32 Index, const ::com::sun::star::uno::Any& Element ) throw(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException) = 0;
      // sal_Int32 SAL_CALL getCount(  ) throw(::com::sun::star::uno::RuntimeException) = 0;
      // ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) throw(::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException) = 0;
      // void SAL_CALL insertByIndex( sal_Int32 Index, const ::com::sun::star::uno::Any& Element ) throw(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException) = 0;
      // void SAL_CALL removeByIndex( sal_Int32 Index ) throw(::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException) = 0;
--    
++
      // ::com::sun::star::container::XNameContainer, XNameReplace, XNameAccess
      void SAL_CALL replaceByName( const ::rtl::OUString& aName, const ::com::sun::star::uno::Any& aElement ) throw(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
      ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) throw(::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
@@@ -136,12 -140,12 +140,12 @@@
  
      // ::com::sun::star::beans::XMultiPropertySet
      ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo(  ) throw(::com::sun::star::uno::RuntimeException);
--    
++
      // ::com::sun::star::lang::XMultiServiceFactory
      ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL createInstance( const ::rtl::OUString& aServiceSpecifier ) throw(::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException);
      ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL createInstanceWithArguments( const ::rtl::OUString& ServiceSpecifier, const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& Arguments ) throw(::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException);
      ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getAvailableServiceNames(  ) throw(::com::sun::star::uno::RuntimeException);
--    
++
      // ::com::sun::star::io::XPersistObject
      ::rtl::OUString SAL_CALL getServiceName() throw(::com::sun::star::uno::RuntimeException);
  
@@@ -175,6 -179,8 +179,8 @@@
  protected:
      void startControlListening( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlModel >& _rxChildModel );
      void stopControlListening( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlModel >& _rxChildModel );
+     // ::cppu::OPropertySetHelper
 -	void SAL_CALL setFastPropertyValue_NoBroadcast( sal_Int32 nHandle, const ::com::sun::star::uno::Any& rValue ) throw (::com::sun::star::uno::Exception);
++    void SAL_CALL setFastPropertyValue_NoBroadcast( sal_Int32 nHandle, const ::com::sun::star::uno::Any& rValue ) throw (::com::sun::star::uno::Exception);
  
      void implNotifyTabModelChange( const ::rtl::OUString& _rAccessor );
  
@@@ -207,13 -221,13 +221,13 @@@ class ResourceListener  :public ::com::
          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 ();
--        
++
          // XModifyListener
          virtual void SAL_CALL modified( const ::com::sun::star::lang::EventObject& aEvent ) 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);
--        
++
      private:
          ::com::sun::star::uno::Reference< ::com::sun::star::resource::XStringResourceResolver > m_xResource;
          ::com::sun::star::uno::Reference< ::com::sun::star::util::XModifyListener >             m_xListener;
@@@ -226,14 -240,14 +240,14 @@@ class UnoDialogControl	:public UnoContr
  private:
      ::com::sun::star::uno::Reference< ::com::sun::star::awt::XMenuBar >			mxMenuBar;
      ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTabController >	mxTabController;
--    ::com::sun::star::uno::Reference< ::com::sun::star::util::XModifyListener > mxListener;                
++    ::com::sun::star::uno::Reference< ::com::sun::star::util::XModifyListener > mxListener;
      TopWindowListenerMultiplexer	                                            maTopWindowListeners;
      bool                                                                        mbWindowListener;
      bool                                                                        mbSizeModified;
      bool                                                                        mbPosModified;
  
  protected:
--    
++
      void		ImplInsertControl( ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlModel >& rxModel, const ::rtl::OUString& rName );
      void		ImplRemoveControl( ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlModel >& rxModel );
      void		ImplSetPosSize( ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl >& rxCtrl );
@@@ -266,12 -280,12 +280,12 @@@ public
      virtual void SAL_CALL windowMoved( const ::com::sun::star::awt::WindowEvent& e ) throw (::com::sun::star::uno::RuntimeException);
      virtual void SAL_CALL windowShown( const ::com::sun::star::lang::EventObject& e ) throw (::com::sun::star::uno::RuntimeException);
      virtual void SAL_CALL windowHidden( const ::com::sun::star::lang::EventObject& e ) throw (::com::sun::star::uno::RuntimeException);
--    
++
      // ::com::sun::star::container::XContainerListener
      void SAL_CALL elementInserted( const ::com::sun::star::container::ContainerEvent& Event ) throw(::com::sun::star::uno::RuntimeException);
      void SAL_CALL elementRemoved( const ::com::sun::star::container::ContainerEvent& Event ) throw(::com::sun::star::uno::RuntimeException);
      void SAL_CALL elementReplaced( const ::com::sun::star::container::ContainerEvent& Event ) throw(::com::sun::star::uno::RuntimeException);
--    
++
      // ::com::sun::star::awt::XDialog2
      virtual void SAL_CALL endDialog( ::sal_Int32 Result ) throw (::com::sun::star::uno::RuntimeException);
      virtual void SAL_CALL setHelpId( ::sal_Int32 Id ) throw (::com::sun::star::uno::RuntimeException);
@@@ -295,7 -309,7 +309,7 @@@
  
      // XModifyListener
      virtual void SAL_CALL modified( const ::com::sun::star::lang::EventObject& aEvent ) throw (::com::sun::star::uno::RuntimeException);
--    
++
      // ::com::sun::star::lang::XServiceInfo
      DECLIMPL_SERVICEINFO( UnoDialogControl, szServiceName2_UnoControlDialog )
  
diff --cc toolkit/inc/toolkit/controls/unocontrols.hxx
index 8358389,fadec7d..ff33b49
--- a/toolkit/inc/toolkit/controls/unocontrols.hxx
+++ b/toolkit/inc/toolkit/controls/unocontrols.hxx
@@@ -637,6 -636,44 +636,44 @@@ public
  
  };
  
+ class UnoMultiPageModel : public UnoControlModel
+ {
+ protected:
 -	::com::sun::star::uno::Any 		ImplGetDefaultValue( sal_uInt16 nPropId ) const;
 -	::cppu::IPropertyArrayHelper& 	SAL_CALL getInfoHelper();
++    ::com::sun::star::uno::Any 		ImplGetDefaultValue( sal_uInt16 nPropId ) const;
++    ::cppu::IPropertyArrayHelper& 	SAL_CALL getInfoHelper();
+ 
+ public:
 -						UnoMultiPageModel();
 -						UnoMultiPageModel( const UnoMultiPageModel& rModel ) : UnoControlModel( rModel ) {;}
++                        UnoMultiPageModel();
++                        UnoMultiPageModel( const UnoMultiPageModel& rModel ) : UnoControlModel( rModel ) {;}
+ 
 -	UnoControlModel*	Clone() const { return new UnoMultiPageModel( *this ); }
++    UnoControlModel*	Clone() const { return new UnoMultiPageModel( *this ); }
+ 
 -	// ::com::sun::star::io::XPersistObject
++    // ::com::sun::star::io::XPersistObject
+     ::rtl::OUString SAL_CALL getServiceName() throw(::com::sun::star::uno::RuntimeException);
+ 
 -	// ::com::sun::star::beans::XMultiPropertySet
++    // ::com::sun::star::beans::XMultiPropertySet
+     ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo(  ) throw(::com::sun::star::uno::RuntimeException);
+ 
 -	// ::com::sun::star::lang::XServiceInfo
 -	DECLIMPL_SERVICEINFO_DERIVED( UnoMultiPageModel, UnoControlModel, szServiceName_UnoMultiPageModel )
++    // ::com::sun::star::lang::XServiceInfo
++    DECLIMPL_SERVICEINFO_DERIVED( UnoMultiPageModel, UnoControlModel, szServiceName_UnoMultiPageModel )
+ 
+ };
+ //	----------------------------------------------------
+ //	class UnoGroupBoxControl
+ //	----------------------------------------------------
+ class UnoMultiPageControl :	public UnoControlBase
+ {
+ public:
 -						UnoMultiPageControl();
 -	::rtl::OUString		GetComponentServiceName();
++                        UnoMultiPageControl();
++    ::rtl::OUString		GetComponentServiceName();
+ 
+     sal_Bool SAL_CALL isTransparent(  ) throw(::com::sun::star::uno::RuntimeException);
+ 
 -	// ::com::sun::star::lang::XServiceInfo
 -	DECLIMPL_SERVICEINFO_DERIVED( UnoMultiPageControl, UnoControlBase, szServiceName_UnoMultiPageControl )
++    // ::com::sun::star::lang::XServiceInfo
++    DECLIMPL_SERVICEINFO_DERIVED( UnoMultiPageControl, UnoControlBase, szServiceName_UnoMultiPageControl )
+ 
+ };
+ 
  //  ----------------------------------------------------
  //  class UnoFixedTextControl
  //  ----------------------------------------------------
diff --cc toolkit/source/awt/vclxmenu.cxx
index c6294c8,eb5cb3b..004b2c8
--- a/toolkit/source/awt/vclxmenu.cxx
+++ b/toolkit/source/awt/vclxmenu.cxx
@@@ -539,6 -539,14 +539,14 @@@ void VCLXMenu::setPopupMenu( sal_Int16 
                  break;
              }
          }
+         // it seems the popup menu is not insert into maPopupMenueRefs
+         // if the popup men is not created by stardiv.Toolkit.VCLXPopupMenu
+         if( !aRef.is() )
+         {
 -		    ::com::sun::star::uno::Reference< ::com::sun::star::awt::XPopupMenu > * pNewRef = new ::com::sun::star::uno::Reference< ::com::sun::star::awt::XPopupMenu > ;
++            ::com::sun::star::uno::Reference< ::com::sun::star::awt::XPopupMenu > * pNewRef = new ::com::sun::star::uno::Reference< ::com::sun::star::awt::XPopupMenu > ;
+             *pNewRef = new VCLXPopupMenu( (PopupMenu*)pMenu );
+             aRef = *pNewRef;
+         }
      }
      return aRef;
  }
diff --cc toolkit/source/awt/vclxwindows.cxx
index 9540aa7,8864d75..10af294
--- a/toolkit/source/awt/vclxwindows.cxx
+++ b/toolkit/source/awt/vclxwindows.cxx
@@@ -1,7 -1,7 +1,7 @@@
  /*************************************************************************
   *
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-- * 
++ *
   * Copyright 2000, 2010 Oracle and/or its affiliates.
   *
   * OpenOffice.org - a multi-platform office productivity suite
@@@ -2172,7 -2175,7 +2173,7 @@@ void SAL_CALL VCLXListBox::itemListChan
              uno::UNO_QUERY
          );
      }
--    
++
  
      Reference< XItemList > xItemList( i_rEvent.Source, uno::UNO_QUERY_THROW );
      uno::Sequence< beans::Pair< ::rtl::OUString, ::rtl::OUString > > aItems = xItemList->getAllItems();
@@@ -2301,6 -2304,7 +2302,7 @@@ VCLXDialog::~VCLXDialog(
  ::com::sun::star::uno::Any VCLXDialog::queryInterface( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException)
  {
      ::com::sun::star::uno::Any aRet = ::cppu::queryInterface( rType,
 -										SAL_STATIC_CAST( ::com::sun::star::document::XVbaMethodParameter*, this ), //liuchen 2009-6-23
++                                        SAL_STATIC_CAST( ::com::sun::star::document::XVbaMethodParameter*, this ), //liuchen 2009-6-23
                                          SAL_STATIC_CAST( ::com::sun::star::awt::XDialog2*, this ),
                                          SAL_STATIC_CAST( ::com::sun::star::awt::XDialog*, this ) );
      return (aRet.hasValue() ? aRet : VCLXTopWindow::queryInterface( rType ));
@@@ -2308,6 -2312,7 +2310,7 @@@
  
  // ::com::sun::star::lang::XTypeProvider
  IMPL_XTYPEPROVIDER_START( VCLXDialog )
 -	getCppuType( ( ::com::sun::star::uno::Reference< ::com::sun::star::document::XVbaMethodParameter>* ) NULL ), //liuchen 2009-6-23
++    getCppuType( ( ::com::sun::star::uno::Reference< ::com::sun::star::document::XVbaMethodParameter>* ) NULL ), //liuchen 2009-6-23
      getCppuType( ( ::com::sun::star::uno::Reference< ::com::sun::star::awt::XDialog2>* ) NULL ),
      getCppuType( ( ::com::sun::star::uno::Reference< ::com::sun::star::awt::XDialog>* ) NULL ),
      VCLXTopWindow::getTypes()
@@@ -2418,6 -2423,40 +2421,40 @@@ void SAL_CALL VCLXDialog::draw( sal_Int
      return aInfo;
  }
  
+ //liuchen 2009-7-22
+ // ::com::sun::star::document::XVbaMethodParameter
+ void SAL_CALL VCLXDialog::setVbaMethodParameter(
 -	const ::rtl::OUString& PropertyName,
 -	const ::com::sun::star::uno::Any& Value )
++    const ::rtl::OUString& PropertyName,
++    const ::com::sun::star::uno::Any& Value )
+ throw(::com::sun::star::uno::RuntimeException)
+ {
 -	if (rtl::OUString::createFromAscii( "Cancel" ) == PropertyName)
 -	{
 -		::vos::OGuard aGuard( GetMutex() ); 
 -		if ( GetWindow() )
 -		{
 -			sal_Int8 nCancel;
 -			Value >>= nCancel;
 -		
 -			Dialog* pDlg = (Dialog*) GetWindow();
 -			pDlg->SetCloseFlag(nCancel);
 -		}
 -	}
++    if (rtl::OUString::createFromAscii( "Cancel" ) == PropertyName)
++    {
++        ::vos::OGuard aGuard( GetMutex() );
++        if ( GetWindow() )
++        {
++            sal_Int8 nCancel;
++            Value >>= nCancel;
++
++            Dialog* pDlg = (Dialog*) GetWindow();
++            pDlg->SetCloseFlag(nCancel);
++        }
++    }
+ }
+ 
+ ::com::sun::star::uno::Any SAL_CALL VCLXDialog::getVbaMethodParameter(
 -	const ::rtl::OUString& PropertyName )
++    const ::rtl::OUString& PropertyName )
+ throw(::com::sun::star::uno::RuntimeException)
+ {
 -	::vos::OGuard aGuard( GetMutex() );
++    ::vos::OGuard aGuard( GetMutex() );
+ 
 -	::com::sun::star::uno::Any aRet;	
 -	return aRet;
++    ::com::sun::star::uno::Any aRet;
++    return aRet;
+ }
+ //liuchen 2009-7-22
+ 
+ 
+ 
  
  void SAL_CALL VCLXDialog::setProperty(
      const ::rtl::OUString& PropertyName,
@@@ -3481,27 -3520,27 +3518,27 @@@ void VCLXScrollBar::ProcessWindowEvent
  void VCLXEdit::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
  {
      PushPropertyIds( rIds,
--                     BASEPROPERTY_ALIGN, 
--                     BASEPROPERTY_BACKGROUNDCOLOR, 
--                     BASEPROPERTY_BORDER, 
--                     BASEPROPERTY_BORDERCOLOR, 
--                     BASEPROPERTY_DEFAULTCONTROL, 
--                     BASEPROPERTY_ECHOCHAR, 
--                     BASEPROPERTY_ENABLED, 
++                     BASEPROPERTY_ALIGN,
++                     BASEPROPERTY_BACKGROUNDCOLOR,
++                     BASEPROPERTY_BORDER,
++                     BASEPROPERTY_BORDERCOLOR,
++                     BASEPROPERTY_DEFAULTCONTROL,
++                     BASEPROPERTY_ECHOCHAR,
++                     BASEPROPERTY_ENABLED,
                       BASEPROPERTY_ENABLEVISIBLE,
--                     BASEPROPERTY_FONTDESCRIPTOR, 
--                     BASEPROPERTY_HARDLINEBREAKS, 
--                     BASEPROPERTY_HELPTEXT, 
--                     BASEPROPERTY_HELPURL, 
--                     BASEPROPERTY_HSCROLL, 
--                     BASEPROPERTY_LINE_END_FORMAT, 
--                     BASEPROPERTY_MAXTEXTLEN, 
--                     BASEPROPERTY_MULTILINE, 
--                     BASEPROPERTY_PRINTABLE, 
--                     BASEPROPERTY_READONLY, 
--                     BASEPROPERTY_TABSTOP, 
--                     BASEPROPERTY_TEXT, 
--                     BASEPROPERTY_VSCROLL, 
++                     BASEPROPERTY_FONTDESCRIPTOR,
++                     BASEPROPERTY_HARDLINEBREAKS,
++                     BASEPROPERTY_HELPTEXT,
++                     BASEPROPERTY_HELPURL,
++                     BASEPROPERTY_HSCROLL,
++                     BASEPROPERTY_LINE_END_FORMAT,
++                     BASEPROPERTY_MAXTEXTLEN,
++                     BASEPROPERTY_MULTILINE,
++                     BASEPROPERTY_PRINTABLE,
++                     BASEPROPERTY_READONLY,
++                     BASEPROPERTY_TABSTOP,
++                     BASEPROPERTY_TEXT,
++                     BASEPROPERTY_VSCROLL,
                       BASEPROPERTY_HIDEINACTIVESELECTION,
                       BASEPROPERTY_PAINTTRANSPARENT,
                       BASEPROPERTY_AUTOHSCROLL,
@@@ -4324,7 -4363,7 +4361,7 @@@ void SAL_CALL VCLXComboBox::itemListCha
              uno::UNO_QUERY
          );
      }
--    
++
  
      Reference< XItemList > xItemList( i_rEvent.Source, uno::UNO_QUERY_THROW );
      uno::Sequence< beans::Pair< ::rtl::OUString, ::rtl::OUString > > aItems = xItemList->getAllItems();
diff --cc toolkit/source/controls/dialogcontrol.cxx
index cf37e10,1fe21d2..ed00046
--- a/toolkit/source/controls/dialogcontrol.cxx
+++ b/toolkit/source/controls/dialogcontrol.cxx
@@@ -1,7 -1,7 +1,7 @@@
  /*************************************************************************
   *
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-- * 
++ *
   * Copyright 2000, 2010 Oracle and/or its affiliates.
   *
   * OpenOffice.org - a multi-platform office productivity suite
@@@ -141,6 -146,18 +144,18 @@@ namespac
          return xGraphic;
      }
  
+     static ::rtl::OUString lcl_GetStringProperty( const ::rtl::OUString& sProperty, const Reference< XPropertySet >& xSet )
+     {
+         ::rtl::OUString sValue;
+         Reference< XPropertySetInfo > xPSI;
 -        if (xSet.is() && (xPSI = xSet->getPropertySetInfo()).is() && 
++        if (xSet.is() && (xPSI = xSet->getPropertySetInfo()).is() &&
+                 xPSI->hasPropertyByName( sProperty ) )
+         {
+             xSet->getPropertyValue( sProperty ) >>= sValue;
+         }
+         return sValue;
+     }
+ 
  }
  
  // ----------------------------------------------------------------------------
@@@ -252,7 -269,7 +267,7 @@@ static const ::rtl::OUString& getStepPr
  UnoControlDialogModel::UnoControlDialogModel()
      :maContainerListeners( *this )
      ,maChangeListeners ( GetMutex() )
-     ,mbGroupsUpToDate( sal_False )
 -	,mbGroupsUpToDate( sal_False ), mbAdjustingGraphic( false )
++    ,mbGroupsUpToDate( sal_False ), mbAdjustingGraphic( false )
  {
      ImplRegisterProperty( BASEPROPERTY_BACKGROUNDCOLOR );
  //	ImplRegisterProperty( BASEPROPERTY_BORDER );
@@@ -274,6 -291,8 +289,8 @@@
      aBool <<= (sal_Bool) sal_True;
      ImplRegisterProperty( BASEPROPERTY_MOVEABLE, aBool );
      ImplRegisterProperty( BASEPROPERTY_CLOSEABLE, aBool );
 -	aBool <<= (sal_Bool) sal_False;
 -	ImplRegisterProperty( BASEPROPERTY_VBAFORM, aBool );
++    aBool <<= (sal_Bool) sal_False;
++    ImplRegisterProperty( BASEPROPERTY_VBAFORM, aBool );
  }
  
  UnoControlDialogModel::UnoControlDialogModel( const UnoControlDialogModel& rModel )
@@@ -281,7 -300,7 +298,7 @@@
      , UnoControlDialogModel_Base( rModel )
      , maContainerListeners( *this )
      , maChangeListeners ( GetMutex() )
-     , mbGroupsUpToDate( sal_False )
 -	, mbGroupsUpToDate( sal_False ), mbAdjustingGraphic( false )
++    , mbGroupsUpToDate( sal_False ), mbAdjustingGraphic( false )
  {
  }
  
@@@ -312,6 -331,40 +329,40 @@@ Sequence< Type > UnoControlDialogModel:
      return ::rtl::OUString::createFromAscii( szServiceName_UnoControlDialogModel );
  }
  
+ void SAL_CALL UnoControlDialogModel::setFastPropertyValue_NoBroadcast( sal_Int32 nHandle, const ::com::sun::star::uno::Any& rValue ) throw (::com::sun::star::uno::Exception)
+ {
+     UnoControlModel::setFastPropertyValue_NoBroadcast( nHandle, rValue );
+     try
+     {
+         switch ( nHandle )
+         {
+         case BASEPROPERTY_IMAGEURL:
+             if ( !mbAdjustingGraphic && ImplHasProperty( BASEPROPERTY_GRAPHIC ) )
+             {
+                 mbAdjustingGraphic = true;
+                 ::rtl::OUString sImageURL;
+                 OSL_VERIFY( rValue >>= sImageURL );
+                 setPropertyValue( GetPropertyName( BASEPROPERTY_GRAPHIC ), uno::makeAny( getGraphicFromURL_nothrow( mxGrfObj, sImageURL ) ) );
+                 mbAdjustingGraphic = false;
+             }
+             break;
+ 
+         case BASEPROPERTY_GRAPHIC:
+             if ( !mbAdjustingGraphic && ImplHasProperty( BASEPROPERTY_IMAGEURL ) )
+             {
+                 mbAdjustingGraphic = true;
+                 setPropertyValue( GetPropertyName( BASEPROPERTY_IMAGEURL ), uno::makeAny( ::rtl::OUString() ) );
+                 mbAdjustingGraphic = false;
+             }
+             break;
 -	}
++    }
+     }
+     catch( const ::com::sun::star::uno::Exception& )
+     {
+         OSL_ENSURE( sal_False, "UnoControlDialogModel::setFastPropertyValue_NoBroadcast: caught an exception while setting Graphic/ImageURL properties!" );
+     }
+ }
+ 
  Any UnoControlDialogModel::ImplGetDefaultValue( sal_uInt16 nPropId ) const
  {
      Any aAny;
@@@ -904,6 -957,63 +955,63 @@@ void UnoControlDialogModel::implNotifyT
      }
  }
  
+ // ----------------------------------------------------------------------------
 -void UnoControlDialogModel::AddRadioButtonGroup ( 
++void UnoControlDialogModel::AddRadioButtonGroup (
+         ::std::map< ::rtl::OUString, ModelGroup >& rNamedGroups )
+ {
+     if ( rNamedGroups.size() == 0 )
+         return;
+ 
+     size_t nGroups = maGroups.size();
+     maGroups.reserve( nGroups + rNamedGroups.size() );
+     ::std::map< ::rtl::OUString, ModelGroup >::const_iterator i = rNamedGroups.begin(), e = rNamedGroups.end();
+     for( ; i != e; ++i)
+     {
+             maGroups.push_back( i->second );
+     }
+ 
+     rNamedGroups.clear();
+ }
+ 
 -void UnoControlDialogModel::AddRadioButtonToGroup ( 
++void UnoControlDialogModel::AddRadioButtonToGroup (
+         const Reference< XControlModel >& rControlModel,
+         const ::rtl::OUString& rPropertyName,
+         ::std::map< ::rtl::OUString, ModelGroup >& rNamedGroups,
+         ModelGroup*& rpCurrentGroup )
+ {
+     Reference< XPropertySet > xCurProps( rControlModel, UNO_QUERY );
+     ::rtl::OUString sGroup = lcl_GetStringProperty( rPropertyName, xCurProps );
+     const sal_Int32 nControlModelStep = lcl_getDialogStep( rControlModel );
+ 
+     if ( sGroup.getLength() == 0 )
+     {
+         // Create a new group if:
+         if ( maGroups.size() == 0 ||                // no groups
+                 rpCurrentGroup == NULL ||           // previous group was closed
+                 (nControlModelStep != 0 &&          // control step matches current group
+                  maGroups.back().size() > 0 &&      //  (group 0 == display everywhere)
+                  nControlModelStep != lcl_getDialogStep( maGroups.back().back() ) ) )
+         {
+             size_t nGroups = maGroups.size();
+             maGroups.resize( nGroups + 1 );
+         }
+         rpCurrentGroup = &maGroups.back();
+     }
+     else
+     {
+         // Different steps get different sets of named groups
+         if ( rNamedGroups.size() > 0 &&
+                 rNamedGroups.begin()->second.size() > 0 )
+         {
+             const sal_Int32 nPrevStep = lcl_getDialogStep( rNamedGroups.begin()->second.front() );
+             if ( nControlModelStep != nPrevStep )
+                 AddRadioButtonGroup( rNamedGroups );
+         }
+ 
+         rpCurrentGroup = &rNamedGroups[ sGroup ];
+     }
+     rpCurrentGroup->push_back( rControlModel );
+ }
  
  // ----------------------------------------------------------------------------
  void UnoControlDialogModel::implUpdateGroupStructure()
@@@ -928,10 -1038,13 +1036,13 @@@
  
      GroupingMachineState eState = eLookingForGroup;		// the current state of our machine
      Reference< XServiceInfo > xModelSI;					// for checking for a radion button
-     AllGroups::iterator aCurrentGroup = maGroups.end();	// the group which we're currently building
-     sal_Int32	nCurrentGroupStep = -1;					// the step which all controls of the current group belong to
 -	ModelGroup* aCurrentGroup = NULL;                   // the group which we're currently building
++    ModelGroup* aCurrentGroup = NULL;                   // the group which we're currently building
      sal_Bool	bIsRadioButton;							// is it a radio button?
  
+     const ::rtl::OUString GROUP_NAME( RTL_CONSTASCII_USTRINGPARAM( "GroupName" ) );
+ 
+     ::std::map< ::rtl::OUString, ModelGroup > aNamedGroups;
+ 
  #if OSL_DEBUG_LEVEL > 1
      ::std::vector< ::rtl::OUString > aCurrentGroupLabels;
  #endif
@@@ -977,7 -1084,7 +1082,7 @@@
              {
                  if ( !bIsRadioButton )
                  {	// no radio button -> the group is done
-                     aCurrentGroup = maGroups.end();
 -					aCurrentGroup = NULL;
++                    aCurrentGroup = NULL;
                      eState = eLookingForGroup;
  #if OSL_DEBUG_LEVEL > 1
                      aCurrentGroupLabels.clear();
@@@ -1418,17 -1487,32 +1485,32 @@@ void UnoDialogControl::ImplSetPosSize( 
      xP->getPropertyValue( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Width" ) ) ) >>= nWidth;
      xP->getPropertyValue( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Height" ) ) ) >>= nHeight;
  
-     // Currentley we are simply using MAP_APPFONT
 -	// Currentley we are simply using MAP_APPFONT ( for normal Dialogs )
 -	// and MAP_100TH_MM for imported Userforms
 -	MapMode aMode( MAP_APPFONT );
 -	sal_Bool bVBAForm = sal_False;
 -	Reference< XPropertySet > xDlgModelProps( getModel(), UNO_QUERY );
 -	if ( xDlgModelProps.is() )
 -	{
 -		try
 -		{
 -			xDlgModelProps->getPropertyValue( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "VBAForm" ) ) ) >>= bVBAForm;
 -		}
 -		catch( Exception& )
 -		{
 -		}
 -	} 
 -	if ( bVBAForm )
 -		aMode = MapMode( MAP_100TH_MM );
++    // Currentley we are simply using MAP_APPFONT ( for normal Dialogs )
++    // and MAP_100TH_MM for imported Userforms
++    MapMode aMode( MAP_APPFONT );
++    sal_Bool bVBAForm = sal_False;
++    Reference< XPropertySet > xDlgModelProps( getModel(), UNO_QUERY );
++    if ( xDlgModelProps.is() )
++    {
++        try
++        {
++            xDlgModelProps->getPropertyValue( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "VBAForm" ) ) ) >>= bVBAForm;
++        }
++        catch( Exception& )
++        {
++        }
++    }
++    if ( bVBAForm )
++        aMode = MapMode( MAP_100TH_MM );
      OutputDevice*pOutDev = Application::GetDefaultDevice();
      if ( pOutDev )
      {
          ::Size aTmp( nX, nY );
-         aTmp = pOutDev->LogicToPixel( aTmp, MAP_APPFONT );
 -		aTmp = pOutDev->LogicToPixel( aTmp, aMode );
++        aTmp = pOutDev->LogicToPixel( aTmp, aMode );
          nX = aTmp.Width();
          nY = aTmp.Height();
          aTmp = ::Size( nWidth, nHeight );
-         aTmp = pOutDev->LogicToPixel( aTmp, MAP_APPFONT );
 -		aTmp = pOutDev->LogicToPixel( aTmp, aMode );
++        aTmp = pOutDev->LogicToPixel( aTmp, aMode );
          nWidth = aTmp.Width();
          nHeight = aTmp.Height();
      }
@@@ -1650,8 -1734,7 +1732,7 @@@ void UnoDialogControl::PrepareWindowDes
      if (( ImplGetPropertyValue( PROPERTY_IMAGEURL ) >>= aImageURL ) &&
          ( aImageURL.getLength() > 0 ))
      {
-         ::rtl::OUString absoluteUrl =
 -        aImageURL = 
++        aImageURL =
              getPhysicalLocation( ImplGetPropertyValue( PROPERTY_DIALOGSOURCEURL ),
                                   ImplGetPropertyValue( PROPERTY_IMAGEURL ));
  
@@@ -2110,9 -2194,16 +2192,16 @@@ throw (RuntimeException
      ::rtl::OUString absoluteURL( url );
      if ( url.getLength() > 0 )
      {
-         INetURLObject urlObj(baseLocation);
-         urlObj.removeSegment();
-         baseLocation = urlObj.GetMainURL( INetURLObject::NO_DECODE );
 -		// Don't adjust GraphicObject url(s)
 -		if ( url.compareToAscii( UNO_NAME_GRAPHOBJ_URLPREFIX, RTL_CONSTASCII_LENGTH( UNO_NAME_GRAPHOBJ_URLPREFIX ) ) != 0 )
 -		{
 -			INetURLObject urlObj(baseLocation);
 -			urlObj.removeSegment();
 -			baseLocation = urlObj.GetMainURL( INetURLObject::NO_DECODE );
 -			::osl::FileBase::getAbsoluteFileURL( baseLocation, url, ret );
 -		}
 -		else
 -			ret = url;
++        // Don't adjust GraphicObject url(s)
++        if ( url.compareToAscii( UNO_NAME_GRAPHOBJ_URLPREFIX, RTL_CONSTASCII_LENGTH( UNO_NAME_GRAPHOBJ_URLPREFIX ) ) != 0 )
++        {
++            INetURLObject urlObj(baseLocation);
++            urlObj.removeSegment();
++            baseLocation = urlObj.GetMainURL( INetURLObject::NO_DECODE );
++            ::osl::FileBase::getAbsoluteFileURL( baseLocation, url, ret );
++        }
++        else
++            ret = url;
  
          const INetURLObject protocolCheck( url );
          const INetProtocol protocol = protocolCheck.GetProtocol();
diff --cc toolkit/source/controls/unocontrols.cxx
index 19196ef,80c5f63..c4cc8bd
--- a/toolkit/source/controls/unocontrols.cxx
+++ b/toolkit/source/controls/unocontrols.cxx
@@@ -1728,6 -1730,75 +1728,75 @@@ sal_Bool UnoGroupBoxControl::isTranspar
      return sal_True;
  }
  
+ // MultiPage
+ 
+ UnoMultiPageModel::UnoMultiPageModel()
+ {
 -	ImplRegisterProperty( BASEPROPERTY_DEFAULTCONTROL );
 -	ImplRegisterProperty( BASEPROPERTY_ENABLED );
 -	ImplRegisterProperty( BASEPROPERTY_FONTDESCRIPTOR );
 -	ImplRegisterProperty( BASEPROPERTY_HELPTEXT );
 -	ImplRegisterProperty( BASEPROPERTY_HELPURL );
 -	ImplRegisterProperty( BASEPROPERTY_LABEL );
 -	ImplRegisterProperty( BASEPROPERTY_PRINTABLE );
 -	ImplRegisterProperty( BASEPROPERTY_PROGRESSVALUE );
 -	ImplRegisterProperty( BASEPROPERTY_PROGRESSVALUE_MAX );
++    ImplRegisterProperty( BASEPROPERTY_DEFAULTCONTROL );
++    ImplRegisterProperty( BASEPROPERTY_ENABLED );
++    ImplRegisterProperty( BASEPROPERTY_FONTDESCRIPTOR );
++    ImplRegisterProperty( BASEPROPERTY_HELPTEXT );
++    ImplRegisterProperty( BASEPROPERTY_HELPURL );
++    ImplRegisterProperty( BASEPROPERTY_LABEL );
++    ImplRegisterProperty( BASEPROPERTY_PRINTABLE );
++    ImplRegisterProperty( BASEPROPERTY_PROGRESSVALUE );
++    ImplRegisterProperty( BASEPROPERTY_PROGRESSVALUE_MAX );
+ }
+ 
+ ::rtl::OUString UnoMultiPageModel::getServiceName() throw(::com::sun::star::uno::RuntimeException)
+ {
 -	return ::rtl::OUString::createFromAscii( szServiceName_UnoMultiPageModel );
++    return ::rtl::OUString::createFromAscii( szServiceName_UnoMultiPageModel );
+ }
+ 
+ uno::Any UnoMultiPageModel::ImplGetDefaultValue( sal_uInt16 nPropId ) const
+ {
 -	if ( nPropId == BASEPROPERTY_DEFAULTCONTROL )
 -	{
 -		uno::Any aAny;
 -		aAny <<= ::rtl::OUString::createFromAscii( szServiceName_UnoControlGroupBox );
 -		//aAny <<= ::rtl::OUString::createFromAscii( szServiceName_UnoMultiPageControl );
 -		return aAny;
 -	}
 -	return UnoControlModel::ImplGetDefaultValue( nPropId );
++    if ( nPropId == BASEPROPERTY_DEFAULTCONTROL )
++    {
++        uno::Any aAny;
++        aAny <<= ::rtl::OUString::createFromAscii( szServiceName_UnoControlGroupBox );
++        //aAny <<= ::rtl::OUString::createFromAscii( szServiceName_UnoMultiPageControl );
++        return aAny;
++    }
++    return UnoControlModel::ImplGetDefaultValue( nPropId );
+ }
+ 
+ ::cppu::IPropertyArrayHelper& UnoMultiPageModel::getInfoHelper()
+ {
 -	static UnoPropertyArrayHelper* pHelper = NULL;
 -	if ( !pHelper )
 -	{
 -		uno::Sequence<sal_Int32>	aIDs = ImplGetPropertyIds();
 -		pHelper = new UnoPropertyArrayHelper( aIDs );
 -	}
 -	return *pHelper;
++    static UnoPropertyArrayHelper* pHelper = NULL;
++    if ( !pHelper )
++    {
++        uno::Sequence<sal_Int32>	aIDs = ImplGetPropertyIds();
++        pHelper = new UnoPropertyArrayHelper( aIDs );
++    }
++    return *pHelper;
+ }
+ 
+ // beans::XMultiPropertySet
+ uno::Reference< beans::XPropertySetInfo > UnoMultiPageModel::getPropertySetInfo(  ) throw(uno::RuntimeException)
+ {
 -	static uno::Reference< beans::XPropertySetInfo > xInfo( createPropertySetInfo( getInfoHelper() ) );
 -	return xInfo;
++    static uno::Reference< beans::XPropertySetInfo > xInfo( createPropertySetInfo( getInfoHelper() ) );
++    return xInfo;
+ }
+ 
+ //	----------------------------------------------------
+ //	class MultiPageControl
+ //	----------------------------------------------------
+ UnoMultiPageControl::UnoMultiPageControl()
+ {
 -	maComponentInfos.nWidth = 100;
 -	maComponentInfos.nHeight = 100;
++    maComponentInfos.nWidth = 100;
++    maComponentInfos.nHeight = 100;
+ }
+ 
+ ::rtl::OUString UnoMultiPageControl::GetComponentServiceName()
+ {
 -	return ::rtl::OUString::createFromAscii( "multipage" );
++    return ::rtl::OUString::createFromAscii( "multipage" );
+ }
+ 
+ sal_Bool UnoMultiPageControl::isTransparent() throw(uno::RuntimeException)
+ {
 -	return sal_True;
++    return sal_True;
+ }
+ 
  // =====================================================================================================================
  // = UnoControlListBoxModel_Data
  // =====================================================================================================================
diff --cc unotools/source/config/fltrcfg.cxx
index e42343f,2b8b0d1..7c3e4fd
--- a/unotools/source/config/fltrcfg.cxx
+++ b/unotools/source/config/fltrcfg.cxx
@@@ -410,7 -459,18 +459,18 @@@ sal_Bool SvtFilterOptions::IsLoadWordBa
      return pImp->IsFlag( FILTERCFG_WORD_CODE );
  }
  
 -void SvtFilterOptions::SetLoadWordBasicExecutable( BOOL bFlag )
++void SvtFilterOptions::SetLoadWordBasicExecutable( sal_Bool bFlag )
+ {
+     pImp->SetFlag( FILTERCFG_WORD_WBCTBL, bFlag );
+     SetModified();
+ }
+ 
+ BOOL SvtFilterOptions::IsLoadWordBasicExecutable() const
+ {
+     return pImp->IsFlag( FILTERCFG_WORD_WBCTBL );
+ }
+ 
 -void SvtFilterOptions::SetLoadWordBasicStorage( BOOL bFlag )
 +void SvtFilterOptions::SetLoadWordBasicStorage( sal_Bool bFlag )
  {
      pImp->SetFlag( FILTERCFG_WORD_STORAGE, bFlag );
      SetModified();
diff --cc vcl/inc/vcl/bitmapex.hxx
index a7185da,29dfe13..258cf90
--- a/vcl/inc/vcl/bitmapex.hxx
+++ b/vcl/inc/vcl/bitmapex.hxx
@@@ -395,6 -395,7 +395,7 @@@ public
  
      friend VCL_DLLPUBLIC SvStream&	operator<<( SvStream& rOStm, const BitmapEx& rBitmapEx );
      friend VCL_DLLPUBLIC SvStream&	operator>>( SvStream& rIStm, BitmapEx& rBitmapEx );
 -	static BitmapEx AutoScaleBitmap(BitmapEx & aBitmap, const long aStandardSize);
++    static BitmapEx AutoScaleBitmap(BitmapEx & aBitmap, const long aStandardSize);
  };
  
  #endif // _SV_BITMAPEX_HXX
diff --cc vcl/inc/vcl/dialog.hxx
index 1032908,f771333..eae6c6f
--- a/vcl/inc/vcl/dialog.hxx
+++ b/vcl/inc/vcl/dialog.hxx
@@@ -53,6 -53,7 +53,7 @@@ private
      BOOL			mbOldSaveBack;
      BOOL			mbInClose;
      BOOL			mbModalMode;
 -	sal_Int8		mnCancelClose;  //liuchen 2009-7-22, support Excel VBA UserForm_QueryClose event
++    sal_Int8		mnCancelClose;  //liuchen 2009-7-22, support Excel VBA UserForm_QueryClose event
  
      SAL_DLLPRIVATE void    ImplInitDialogData();
      SAL_DLLPRIVATE void    ImplInitSettings();
@@@ -91,6 -92,9 +92,9 @@@ public
      virtual short	Execute();
      BOOL			IsInExecute() const { return mbInExecute; }
  
 -	sal_Int8		GetCloseFlag() const { return mnCancelClose; }  //liuchen 2009-7-22, support Excel VBA UserForm_QueryClose event
 -	void			SetCloseFlag( sal_Int8 nCancel ) { mnCancelClose = nCancel; }  //liuchen 2009-7-22, support Excel VBA UserForm_QueryClose event
++    sal_Int8		GetCloseFlag() const { return mnCancelClose; }  //liuchen 2009-7-22, support Excel VBA UserForm_QueryClose event
++    void			SetCloseFlag( sal_Int8 nCancel ) { mnCancelClose = nCancel; }  //liuchen 2009-7-22, support Excel VBA UserForm_QueryClose event
+ 
      ////////////////////////////////////////
      // Dialog::Execute replacement API
  public:
diff --cc vcl/source/control/combobox.cxx
index 5b38ce7,a4d57df..a8afec4
--- a/vcl/source/control/combobox.cxx
+++ b/vcl/source/control/combobox.cxx
@@@ -1,7 -1,7 +1,7 @@@
  /*************************************************************************
   *
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-- * 
++ *
   * Copyright 2000, 2010 Oracle and/or its affiliates.
   *
   * OpenOffice.org - a multi-platform office productivity suite
@@@ -44,7 -46,7 +44,7 @@@
  
  
  // =======================================================================
--
++
  inline ULONG ImplCreateKey( USHORT nPos )
  {
      // Key = Pos+1, wegen Pos 0
@@@ -66,7 -68,7 +66,7 @@@ static void lcl_GetSelectedEntries( Tab
  }
  
  // =======================================================================
--
++
  ComboBox::ComboBox( WindowType nType ) :
      Edit( nType )
  {
@@@ -353,7 -355,7 +353,7 @@@ IMPL_LINK( ComboBox, ImplAutocompleteHd
              bForward = FALSE;
              nStart = nStart ? nStart - 1 : mpImplLB->GetEntryList()->GetEntryCount()-1;
          }
--        
++
          USHORT nPos = LISTBOX_ENTRY_NOTFOUND;
          if( ! mbMatchCase )
          {
@@@ -363,7 -365,7 +363,7 @@@
                  // Try match case insensitive, but from start
                  nPos = mpImplLB->GetEntryList()->FindMatchingEntry( aStartText, bForward ? 0 : (mpImplLB->GetEntryList()->GetEntryCount()-1), bForward, TRUE );
          }
--            
++
          if ( nPos == LISTBOX_ENTRY_NOTFOUND )
              // Try match full from current position
              nPos = mpImplLB->GetEntryList()->FindMatchingEntry( aStartText, nStart, bForward, FALSE );
@@@ -466,8 -468,11 +466,11 @@@ IMPL_LINK( ComboBox, ImplSelectHdl, voi
          mpSubEdit->SetModifyFlag();
          mbSyntheticModify = TRUE;
          Modify();
 -		mbSyntheticModify = FALSE;		
 -		if (ImplGetWindowImpl() != NULL) //liuchen 2009-7-28, resolve the problem that soffice get crashed if in ComboBox_Change event a Worksheets("SheetX").Activate sentence needs to be executed 
 -		{
 -			Select();
 -		}
 +        mbSyntheticModify = FALSE;
-         Select();
++        if (ImplGetWindowImpl() != NULL) //liuchen 2009-7-28, resolve the problem that soffice get crashed if in ComboBox_Change event a Worksheets("SheetX").Activate sentence needs to be executed
++        {
++            Select();
++        }
      }
  
      return 0;
@@@ -787,7 -792,7 +790,7 @@@ void ComboBox::DataChanged( const DataC
          }
          Resize();
          mpImplLB->Resize(); // Wird nicht durch ComboBox::Resize() gerufen, wenn sich die ImplLB nicht aendert.
--        SetBackground();    // due to a hack in Window::UpdateSettings the background must be reset 
++        SetBackground();    // due to a hack in Window::UpdateSettings the background must be reset
                              // otherwise it will overpaint NWF drawn comboboxes
      }
  }
@@@ -1284,9 -1289,9 +1287,9 @@@ void ComboBox::Draw( OutputDevice* pDev
          if ( !nLines )
              nLines = 1;
          USHORT nTEntry = IsReallyVisible() ? mpImplLB->GetTopEntry() : 0;
--        
++
          Rectangle aTextRect( aPos, aSize );
--        
++
          aTextRect.Left() += 3*nOnePixel;
          aTextRect.Right() -= 3*nOnePixel;
          aTextRect.Top() += nEditHeight + nOnePixel;
@@@ -1302,14 -1307,14 +1305,14 @@@
      }
  
      pDev->Pop();
--    
++
      // Call Edit::Draw after restoring the MapMode...
      if ( IsDropDownBox() )
      {
          mpSubEdit->Draw( pDev, rPos, rSize, nFlags );
          // DD-Button ?
      }
--    
++
  }
  
  // -----------------------------------------------------------------------
@@@ -1566,7 -1571,7 +1569,7 @@@ long ComboBox::GetIndexForPoint( const 
          // point must be either in main list window
          // or in impl window (dropdown case)
          ImplListBoxWindow* pMain = mpImplLB->GetMainWindow();
--    
++
          // convert coordinates to ImplListBoxWindow pixel coordinate space
          Point aConvPoint = LogicToPixel( rPoint );
          aConvPoint = OutputToAbsoluteScreenPixel( aConvPoint );
diff --cc vcl/source/gdi/bitmap2.cxx
index eda247c,e18f13f..d4a38b2
--- a/vcl/source/gdi/bitmap2.cxx
+++ b/vcl/source/gdi/bitmap2.cxx
@@@ -142,7 -146,7 +144,7 @@@ BOOL Bitmap::Read( SvStream& rIStm, BOO
              bRet = ImplReadDIB( rIStm, *this, nOffset );
      }
      else
-         bRet = ImplReadDIB( rIStm, *this, nOffset );
 -		bRet = ImplReadDIB( rIStm, *this, nOffset, bIsMSOFormat );
++        bRet = ImplReadDIB( rIStm, *this, nOffset, bIsMSOFormat );
  
      if( !bRet )
      {
@@@ -166,7 -170,7 +168,7 @@@ BOOL Bitmap::ImplReadDIB( SvStream& rIS
      BOOL			bRet = FALSE;
      sal_Bool		bTopDown = sal_False;
  
-     if( ImplReadDIBInfoHeader( rIStm, aHeader, bTopDown ) && aHeader.nWidth && aHeader.nHeight && aHeader.nBitCount )
 -	if( ImplReadDIBInfoHeader( rIStm, aHeader, bTopDown, bIsMSOFormat ) && aHeader.nWidth && aHeader.nHeight && aHeader.nBitCount )
++    if( ImplReadDIBInfoHeader( rIStm, aHeader, bTopDown, bIsMSOFormat ) && aHeader.nWidth && aHeader.nHeight && aHeader.nBitCount )
      {
          const USHORT nBitCount( discretizeBitcount(aHeader.nBitCount) );
  
@@@ -303,15 -307,31 +305,31 @@@ BOOL Bitmap::ImplReadDIBInfoHeader( SvS
      rIStm >> rHeader.nSize;
  
      // BITMAPCOREHEADER
 -	sal_Int16 nTmp16 = 0;
 -	sal_uInt8 nTmp8 = 0;
++    sal_Int16 nTmp16 = 0;
++    sal_uInt8 nTmp8 = 0;
      if ( rHeader.nSize == DIBCOREHEADERSIZE )
      {
-         sal_Int16 nTmp16;
  
          rIStm >> nTmp16; rHeader.nWidth = nTmp16;
          rIStm >> nTmp16; rHeader.nHeight = nTmp16;
          rIStm >> rHeader.nPlanes;
          rIStm >> rHeader.nBitCount;
 -	}
 -	else if ( bIsMSOFormat && ( rHeader.nSize == BITMAPINFOHEADER ) )
 -	{
 -		rIStm >> nTmp16; rHeader.nWidth = nTmp16;
 -		rIStm >> nTmp16; rHeader.nHeight = nTmp16;
 -		rIStm >> nTmp8; rHeader.nPlanes = nTmp8;
 -		rIStm >> nTmp8; rHeader.nBitCount = nTmp8;
 -		rIStm >> nTmp16; rHeader.nSizeImage = nTmp16;
 -		rIStm >> nTmp16; rHeader.nCompression = nTmp16;
 -		if ( !rHeader.nSizeImage ) // uncompressed?
 -			rHeader.nSizeImage = ((rHeader.nWidth * rHeader.nBitCount + 31) & ~31) / 8 * rHeader.nHeight;
 -		rIStm >> rHeader.nXPelsPerMeter;
 -		rIStm >> rHeader.nYPelsPerMeter;
 -		rIStm >> rHeader.nColsUsed;
 -		rIStm >> rHeader.nColsImportant;
 +    }
++    else if ( bIsMSOFormat && ( rHeader.nSize == BITMAPINFOHEADER ) )
++    {
++        rIStm >> nTmp16; rHeader.nWidth = nTmp16;
++        rIStm >> nTmp16; rHeader.nHeight = nTmp16;
++        rIStm >> nTmp8; rHeader.nPlanes = nTmp8;
++        rIStm >> nTmp8; rHeader.nBitCount = nTmp8;
++        rIStm >> nTmp16; rHeader.nSizeImage = nTmp16;
++        rIStm >> nTmp16; rHeader.nCompression = nTmp16;
++        if ( !rHeader.nSizeImage ) // uncompressed?
++            rHeader.nSizeImage = ((rHeader.nWidth * rHeader.nBitCount + 31) & ~31) / 8 * rHeader.nHeight;
++        rIStm >> rHeader.nXPelsPerMeter;
++        rIStm >> rHeader.nYPelsPerMeter;
++        rIStm >> rHeader.nColsUsed;
++        rIStm >> rHeader.nColsImportant;
+     }
      else
      {
          // unknown Header
diff --cc vcl/source/gdi/bitmapex.cxx
index 7b68fda,1997455..ce0804a
--- a/vcl/source/gdi/bitmapex.cxx
+++ b/vcl/source/gdi/bitmapex.cxx
@@@ -37,10 -37,15 +37,11 @@@
  #include <vcl/image.h>
  #include <vcl/bitmapex.hxx>
  #include <vcl/pngread.hxx>
 -#ifndef _SV_IMPIMAGETREE_H
  #include <vcl/impimagetree.hxx>
 -#endif
 -#ifndef _SV_RC_H
  #include <tools/rc.h>
 -#endif
  #include <vcl/svapp.hxx>
  #include <vcl/bmpacc.hxx>
+ #include <vcl/virdev.hxx>
  
  // ------------
  // - BitmapEx -
@@@ -753,6 -758,61 +754,61 @@@ void BitmapEx::Draw( OutputDevice* pOut
      pOutDev->DrawBitmapEx( rDestPt, rDestSize, rSrcPtPixel, rSrcSizePixel, *this );
  }
  
+ BitmapEx BitmapEx:: AutoScaleBitmap(BitmapEx & aBitmap, const long aStandardSize)
+ {
 -	Point aEmptyPoint(0,0);
 -	sal_Int32 imgNewWidth = 0;
 -	sal_Int32 imgNewHeight = 0;
 -	double imgposX = 0;
 -	double imgposY = 0;
++    Point aEmptyPoint(0,0);
++    sal_Int32 imgNewWidth = 0;
++    sal_Int32 imgNewHeight = 0;
++    double imgposX = 0;
++    double imgposY = 0;
+     BitmapEx  aRet = aBitmap;
 -	double imgOldWidth = aRet.GetSizePixel().Width();
 -	double imgOldHeight =aRet.GetSizePixel().Height();
++    double imgOldWidth = aRet.GetSizePixel().Width();
++    double imgOldHeight =aRet.GetSizePixel().Height();
+ 
+     Size aScaledSize;
+     if (imgOldWidth >= aStandardSize || imgOldHeight >= aStandardSize)
 -	{
 -		if (imgOldWidth >= imgOldHeight)
 -		{
 -			imgNewWidth = aStandardSize;
 -			imgNewHeight = sal_Int32(imgOldHeight / (imgOldWidth / aStandardSize) + 0.5);
 -			imgposX = 0;
 -			imgposY = (aStandardSize - (imgOldHeight / (imgOldWidth / aStandardSize) + 0.5)) / 2 + 0.5;
 -		}
 -		else
 -		{
 -			imgNewHeight = aStandardSize;
 -			imgNewWidth = sal_Int32(imgOldWidth / (imgOldHeight / aStandardSize) + 0.5);
 -			imgposY = 0;
 -			imgposX = (aStandardSize - (imgOldWidth / (imgOldHeight / aStandardSize) + 0.5)) / 2 + 0.5;
 -		}
 -
 -		aScaledSize = Size( imgNewWidth, imgNewHeight );
++    {
++        if (imgOldWidth >= imgOldHeight)
++        {
++            imgNewWidth = aStandardSize;
++            imgNewHeight = sal_Int32(imgOldHeight / (imgOldWidth / aStandardSize) + 0.5);
++            imgposX = 0;
++            imgposY = (aStandardSize - (imgOldHeight / (imgOldWidth / aStandardSize) + 0.5)) / 2 + 0.5;
++        }
++        else
++        {
++            imgNewHeight = aStandardSize;
++            imgNewWidth = sal_Int32(imgOldWidth / (imgOldHeight / aStandardSize) + 0.5);
++            imgposY = 0;
++            imgposX = (aStandardSize - (imgOldWidth / (imgOldHeight / aStandardSize) + 0.5)) / 2 + 0.5;
++        }
++
++        aScaledSize = Size( imgNewWidth, imgNewHeight );
+         aRet.Scale( aScaledSize, BMP_SCALE_INTERPOLATE );
 -	}
 -	else
 -	{
 -		imgposX = (aStandardSize - imgOldWidth) / 2 + 0.5;
 -		imgposY = (aStandardSize - imgOldHeight) / 2 + 0.5;
 -	}
++    }
++    else
++    {
++        imgposX = (aStandardSize - imgOldWidth) / 2 + 0.5;
++        imgposY = (aStandardSize - imgOldHeight) / 2 + 0.5;
++    }
+ 
+     Size aBmpSize = aRet.GetSizePixel();
+     Size aStdSize( aStandardSize, aStandardSize );
+     Rectangle aRect(aEmptyPoint, aStdSize );
+ 
+     VirtualDevice aVirDevice( *Application::GetDefaultDevice(), 0, 1 );
 -	aVirDevice.SetOutputSizePixel( aStdSize );
 -	aVirDevice.SetFillColor( COL_TRANSPARENT );
++    aVirDevice.SetOutputSizePixel( aStdSize );
++    aVirDevice.SetFillColor( COL_TRANSPARENT );
+     aVirDevice.SetLineColor( COL_TRANSPARENT );
+ 
+     //draw a rect into virDevice
 -	aVirDevice.DrawRect( aRect );
 -	Point aPointPixel( (long)imgposX, (long)imgposY );
 -	aVirDevice.DrawBitmapEx( aPointPixel, aRet );
 -	aRet = aVirDevice.GetBitmapEx( aEmptyPoint, aStdSize );
++    aVirDevice.DrawRect( aRect );
++    Point aPointPixel( (long)imgposX, (long)imgposY );
++    aVirDevice.DrawBitmapEx( aPointPixel, aRet );
++    aRet = aVirDevice.GetBitmapEx( aEmptyPoint, aStdSize );
+ 
 -	return aRet;
++    return aRet;
+ }
  // ------------------------------------------------------------------
  
  sal_uInt8 BitmapEx::GetTransparency(sal_Int32 nX, sal_Int32 nY) const
diff --cc vcl/source/window/dialog.cxx
index a40195c,901c934..1ed9fd0
--- a/vcl/source/window/dialog.cxx
+++ b/vcl/source/window/dialog.cxx
@@@ -1,7 -1,7 +1,7 @@@
  /*************************************************************************
   *
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-- * 
++ *
   * Copyright 2000, 2010 Oracle and/or its affiliates.
   *
   * OpenOffice.org - a multi-platform office productivity suite
@@@ -557,7 -559,18 +557,18 @@@ BOOL Dialog::Close(
  {
      ImplDelData aDelData;
      ImplAddDel( &aDelData );
 -	//liuchen 2009-7-22, support Excel VBA UserForm_QueryClose event
 -	mnCancelClose = 0;
 -	ImplCallEventListeners( VCLEVENT_WINDOW_CLOSE );	
++    //liuchen 2009-7-22, support Excel VBA UserForm_QueryClose event
++    mnCancelClose = 0;
 +    ImplCallEventListeners( VCLEVENT_WINDOW_CLOSE );
+         // basic boolean ( and what the user might use in the event handler) can
 -	// be ambiguous ( e.g. basic true = -1 )
 -	// test agains 0 ( false ) and assume anything else is true
 -	// ( Note: ) this used to work ( something changes somewhere )
 -	if (mnCancelClose != 0)
 -	{
 -		return FALSE;
 -	}
 -	//liuchen 2009-7-22
++    // be ambiguous ( e.g. basic true = -1 )
++    // test agains 0 ( false ) and assume anything else is true
++    // ( Note: ) this used to work ( something changes somewhere )
++    if (mnCancelClose != 0)
++    {
++        return FALSE;
++    }
++    //liuchen 2009-7-22
      if ( aDelData.IsDelete() )
          return FALSE;
      ImplRemoveDel( &aDelData );
@@@ -636,7 -649,7 +647,7 @@@ BOOL Dialog::ImplStartExecuteModal(
                      "Dialog::StartExecuteModal() - Parent input disabled, use another parent to ensure modality!" );
          DBG_ASSERT( ! pParent->IsInModalMode(),
                      "Dialog::StartExecuteModal() - Parent already modally disabled, use another parent to ensure modality!" );
--            
++
      }
  #endif
  
@@@ -662,10 -675,10 +673,10 @@@
      SetModalInputMode( TRUE );
      mbOldSaveBack = IsSaveBackgroundEnabled();
      EnableSaveBackground();
--    
++
      // FIXME: no layouting, workaround some clipping issues
      ImplAdjustNWFSizes();
--    
++
      Show();
  
      pSVData->maAppData.mnModalMode++;
@@@ -689,7 -702,7 +700,7 @@@ short Dialog::Execute(
  
      ImplDelData aDelData;
      ImplAddDel( &aDelData );
--    
++
  #ifdef DBG_UTIL
      ImplDelData aParentDelData;
      Window* pDialogParent = mpDialogParent;
@@@ -953,15 -966,15 +964,15 @@@ void Dialog::Draw( OutputDevice* pDev, 
  {
      Point aPos = pDev->LogicToPixel( rPos );
      Size aSize = pDev->LogicToPixel( rSize );
--    
++
      Wallpaper aWallpaper = GetBackground();
      if ( !aWallpaper.IsBitmap() )
          ImplInitSettings();
--    
++
      pDev->Push();
      pDev->SetMapMode();
      pDev->SetLineColor();
--    
++
      if ( aWallpaper.IsBitmap() )
          pDev->DrawBitmapEx( aPos, aSize, aWallpaper.GetBitmap() );
      else
commit faf640e02afbe5b1d1dc889c194482c52ed4ca3d
Merge: ce8ec7e... 3b08f03...
Author: Jan Holesovsky <kendy at suse.cz>
Date:   Wed Oct 13 11:45:25 2010 +0200

    Merge commit 'ooo/OOO330_m10'
    
    Conflicts:
    	vcl/unx/source/fontmanager/fontconfig.cxx

diff --cc l10ntools/java/jpropex/java/JPropEx.java
index f068f93,febc6a4..9ff8bf9
--- a/l10ntools/java/jpropex/java/JPropEx.java
+++ b/l10ntools/java/jpropex/java/JPropEx.java
@@@ -138,12 -138,15 +138,15 @@@ public class JPropE
          }
          data.write( outputFileArg );
      }
 -    
 +
      private SdfEntity prepareSdfObj( String filename )
      {
-         String path = makeAbs( filename );
-         //String path = makeAbs( inputFileArg );
-         path = path.replace( rootArg + "/" , "" );
+         String path = makeAbs( filename ).trim();
+         String myRootArg = makeAbs( rootArg ).trim();
+         myRootArg = myRootArg.replace( "\\","/");
+         myRootArg += "/";
+         path = path.replace("\\","/");
+         path = path.replace( myRootArg, "" );
          path = path.replace("/","\\");
          // TODO: Make this static
          java.text.SimpleDateFormat dateformat = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
diff --cc l10ntools/scripts/localize.pl
index e242aa2,a1c9110..5478e6e
--- a/l10ntools/scripts/localize.pl
+++ b/l10ntools/scripts/localize.pl
@@@ -182,86 -181,14 +181,14 @@@ sub splitfile
      #print "$so_l10n_path\n";
      #print "$ooo_l10n_path\n";
      
-     write_sdf( \%string_hash_so , $so_l10n_path );
-     write_sdf( \%string_hash_ooo , $ooo_l10n_path );
-    
- }
- sub check_modules_scm
- {
-     #my @ooo_modules;
-     #my @so_modules;
-     my $src_path        = $ENV{ SRC_ROOT } ;
-     my $last_dir        = getcwd();
-     chdir $src_path ;
-     my @modules         = <*/.svn/entries>;
-     
-     foreach my $module ( @modules )
+     if( $force_ooo_module )
      {
-         #print "$module \n";
-         if( open ( FILE , "<$module" ) )
-         {
-             while( <FILE> )
-             {
-                 
-                 my @path = split ( "/" , $module ) ;
-                 
-                 if( /svn.services.openoffice.org/ )
-                 {
-                     my $mod = $path[ 0 ];
-                     #push @ooo_modules , $mod;
-                     $is_ooo_module{ $mod } = "true";
-                     # print "$module -> ooo ";
-                 }
-                 elsif ( /jumbo2.germany.sun.com/ )
-                 {
-                     my $mod = $path[ 0 ];
-                     #push @so_modules , $mod;
-                     # print "$module -> so ";
-                     #$so_lookup_hash{ $mod } = "true";
-                 }
-                 #else 
-                 #{
-                 #    print "ERROR: Is $module a SO or OOo module? Can not parese the $module/.svn/entries file ... please check mwsfinnish/merge/splitsdf.pl line 280\n";
-                 # exit -1;
-                 #}
-             }
-         }
+         write_sdf( \%string_hash_ooo , $ooo_l10n_path );
+     }
+     else
+     {
+         write_sdf( \%string_hash_so , $so_l10n_path );
 -    } 
 +    }
-     chdir $last_dir ;
-     #print "OOO\n";
-     #print @ooo_modules;
-     #print "\nSO\n";
-     #print @so_modules;
- }
- 
- 
- #sub parse
- #{
- #    my $command = "$CVS_BINARY -d:pserver:anoncvs\@anoncvs.services.openoffice.org:/cvs co -c";
- #    my $output  = `$command`;
- #    my $rc = $? << 8;
- #    if ( $output eq "" || $rc < 0 ){
- #        print STDERR "ERROR: Can not fetch cvs alias list, please login to the cvs server and press at the password prompt just return\ncvs -d:pserver:anoncvs\@anoncvs.services.openoffice.org:/cvs login\n"; 
- #        exit ( -1 );
- #    }
- #    my @list = split /\n/ , $output ;
- #    foreach my $string( @list )
- #    {
- #
- #        #        print "Found '$1'\n" , if( $string =~ /^(\w*)/ && $1 ne "" );
- #
- #        $is_ooo_module{ $1 } = "TRUE", if( $string =~ /^(\w*)/ && $1 ne "" );
- #    }
- #    #    foreach my $key( keys( %is_ooo_module ) )
- #    #{
- #        #    print "$key\n";
- #        #}
- #}
- sub is_openoffice_module
- {
-     my $module              = shift;
-     return "TRUE", if ( $force_ooo_module || defined $is_ooo_module{ $module } );
-     return "";
  }
  
  sub write_sdf
diff --cc l10ntools/scripts/tool/l10ntool.py
index 70d8867,f163002..d893333
--- a/l10ntools/scripts/tool/l10ntool.py
+++ b/l10ntools/scripts/tool/l10ntool.py
@@@ -66,7 -66,7 +66,7 @@@ class AbstractL10nTool
          pass
      
      ################################################################################################
-     
 -     
++
      def format_outputfile(self, filename, language):
          extension = filename[filename.rfind('.')+1:]
          file = filename[:filename.rfind('.')]
diff --cc vcl/source/gdi/outdev2.cxx
index 6559c59,68953fa..72ef4ce
mode 100644,100755..100755
--- a/vcl/source/gdi/outdev2.cxx
+++ b/vcl/source/gdi/outdev2.cxx
diff --cc vcl/unx/source/fontmanager/fontconfig.cxx
index d572a4b,ec9eb36..3be14eb
--- a/vcl/unx/source/fontmanager/fontconfig.cxx
+++ b/vcl/unx/source/fontmanager/fontconfig.cxx
@@@ -518,9 -518,11 +518,14 @@@ namespac
                  candidate = aIter->second;
                  break;
              }
-             else if( (rtl_str_compare(pLang,sLangMatch.getStr()) == 0) && (!alreadyclosematch))
+             else if( alreadyclosematch )
 -            continue;
 +            {
-                 //fairly close
++                // override candidate only if there is a perfect match
++                continue;
++            }
+             else if( rtl_str_compare( pLang, sLangMatch.getStr()) == 0)
+             {
+                 // just the language matches
                  candidate = aIter->second;
                  alreadyclosematch = true;
              }
commit ce8ec7ea608fd7933781140798f280f537d5149e
Author: Kohei Yoshida <kyoshida at novell.com>
Date:   Wed Oct 13 00:25:40 2010 -0400

    Delay setting the flag for insert tab.
    
    The client code needs to be able to change the "insert tab" flag so
    that, when switching between read-only and editable mode the insert
    tab reflects that mode change. (fdo#30678)

diff --git a/svtools/source/control/tabbar.cxx b/svtools/source/control/tabbar.cxx
index bd6dd57..62d12b4 100644
--- a/svtools/source/control/tabbar.cxx
+++ b/svtools/source/control/tabbar.cxx
@@ -410,7 +410,6 @@ void TabBar::ImplInit( WinBits nWinStyle )
     mbSelColor      = FALSE;
     mbSelTextColor  = FALSE;
     mbMirrored      = FALSE;
-    mbHasInsertTab  = (nWinStyle & WB_INSERTTAB);
 
     if ( nWinStyle & WB_3DTAB )
         mnOffY++;
@@ -723,6 +722,8 @@ void TabBar::ImplInitControls()
         DELETEZ( mpFirstBtn );
         DELETEZ( mpLastBtn );
     }
+
+    mbHasInsertTab  = (mnWinStyle & WB_INSERTTAB);
 }
 
 // -----------------------------------------------------------------------
commit 71acd122ad5e34208a7bb873b28bf73170ff7721
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Tue Oct 12 15:50:15 2010 +0100

    WaE, add extra brackets

diff --git a/l10ntools/source/help/HelpLinker.cxx b/l10ntools/source/help/HelpLinker.cxx
index 4a20fe2..512c1de 100644
--- a/l10ntools/source/help/HelpLinker.cxx
+++ b/l10ntools/source/help/HelpLinker.cxx
@@ -1022,8 +1022,8 @@ void HelpLinker::main( std::vector<std::string> &args,
         idxCaptionStylesheet = fs::path( aStdStr_IdxCaptionPathFileURL );
     }
 
-    if (!bExtensionMode && idxContentStylesheet.empty()
-        || !extsource.empty() && idxContentStylesheet.empty())
+    if ( (!bExtensionMode && idxContentStylesheet.empty())
+        || (!extsource.empty() && idxContentStylesheet.empty()) )
     {
         //No extension mode and extension mode using commandline
         //!extsource.empty indicates extension mode using commandline
commit 6179c18c4e0c3d413d919e1d97577cb871cd2584
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Tue Oct 12 15:48:16 2010 +0100

    WaE, add extra brackets

diff --git a/l10ntools/source/help/HelpLinker.cxx b/l10ntools/source/help/HelpLinker.cxx
index 80f7b84..4a20fe2 100644
--- a/l10ntools/source/help/HelpLinker.cxx
+++ b/l10ntools/source/help/HelpLinker.cxx
@@ -998,8 +998,8 @@ void HelpLinker::main( std::vector<std::string> &args,
         throw HelpProcessingException( HELPPROCESSING_GENERAL_ERROR, aStrStream.str() );
     }
 
-    if (!bExtensionMode && idxCaptionStylesheet.empty()
-        || !extsource.empty() && idxCaptionStylesheet.empty())
+    if ( (!bExtensionMode && idxCaptionStylesheet.empty())
+        || (!extsource.empty() && idxCaptionStylesheet.empty()) )
     {
         //No extension mode and extension mode using commandline
         //!extsource.empty indicates extension mode using commandline
commit a961c948e59af15c07f09c844d35e01c693e6875
Author: Jan Holesovsky <kendy at suse.cz>
Date:   Tue Oct 12 15:31:05 2010 +0100

    Implement hooks for unix quickstarter

diff --git a/vcl/inc/vcl/svapp.hxx b/vcl/inc/vcl/svapp.hxx
index d12ff0d..ed6ce0a 100644
--- a/vcl/inc/vcl/svapp.hxx
+++ b/vcl/inc/vcl/svapp.hxx
@@ -261,6 +261,7 @@ public:
     virtual void                DataChanged( const DataChangedEvent& rDCEvt );
 
     virtual void                Init();
+    virtual void                InitFinished();
     virtual void                DeInit();
 
     static void                 InitAppRes( const ResId& rResId );
diff --git a/vcl/source/app/svapp.cxx b/vcl/source/app/svapp.cxx
index c87aca5..056c5c2 100644
--- a/vcl/source/app/svapp.cxx
+++ b/vcl/source/app/svapp.cxx
@@ -312,6 +312,11 @@ void Application::Init()
 }
 
 // -----------------------------------------------------------------------
+void Application::InitFinished()
+{
+}
+
+// -----------------------------------------------------------------------
 
 void Application::DeInit()
 {
diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx
index 6797bc3..38f48fe 100644
--- a/vcl/source/window/window.cxx
+++ b/vcl/source/window/window.cxx
@@ -633,10 +633,10 @@ void Window::ImplInitWindowData( WindowType nType )
     mpWindowImpl->mbDockWin           = FALSE;        // TRUE: DockingWindow is the base class
     mpWindowImpl->mbFloatWin          = FALSE;        // TRUE: FloatingWindow is the base class
     mpWindowImpl->mbPushButton        = FALSE;        // TRUE: PushButton is the base class
-    mpWindowImpl->mbToolBox			= FALSE;		// TRUE: ToolBox is the base class
-    mpWindowImpl->mbMenuFloatingWindow= FALSE;		// TRUE: MenuFloatingWindow is the base class
-    mpWindowImpl->mbToolbarFloatingWindow= FALSE;		// TRUE: ImplPopupFloatWin is the base class, used for subtoolbars
-    mpWindowImpl->mbSplitter			= FALSE;		// TRUE: Splitter is the base class
+    mpWindowImpl->mbToolBox                     = FALSE;                // TRUE: ToolBox is the base class
+    mpWindowImpl->mbMenuFloatingWindow= FALSE;          // TRUE: MenuFloatingWindow is the base class
+    mpWindowImpl->mbToolbarFloatingWindow= FALSE;               // TRUE: ImplPopupFloatWin is the base class, used for subtoolbars
+    mpWindowImpl->mbSplitter                    = FALSE;                // TRUE: Splitter is the base class
     mpWindowImpl->mbVisible           = FALSE;        // TRUE: Show( true ) called
     mpWindowImpl->mbOverlapVisible    = FALSE;        // TRUE: Hide called for visible window from ImplHideAllOverlapWindow()
     mpWindowImpl->mbDisabled          = FALSE;        // TRUE: Enable( FALSE ) called
@@ -1315,7 +1315,7 @@ ImplWinData* Window::ImplGetWinData() const
         mpWindowImpl->mpWinData->mpFocusRect      = NULL;
         mpWindowImpl->mpWinData->mpTrackRect      = NULL;
         mpWindowImpl->mpWinData->mnTrackFlags     = 0;
-        mpWindowImpl->mpWinData->mnIsTopWindow	= (USHORT) ~0;  // not initialized yet, 0/1 will indicate TopWindow (see IsTopWindow())
+        mpWindowImpl->mpWinData->mnIsTopWindow  = (USHORT) ~0;  // not initialized yet, 0/1 will indicate TopWindow (see IsTopWindow())
         mpWindowImpl->mpWinData->mbMouseOver      = FALSE;
         mpWindowImpl->mpWinData->mbEnableNativeWidget = (pNoNWF && *pNoNWF) ? FALSE : TRUE; // TRUE: try to draw this control with native theme API
         mpWindowImpl->mpWinData->mpSmartHelpId    = NULL;
@@ -3291,7 +3291,7 @@ void Window::ImplPosSizeWindow( long nX, long nY,
             }
             mpWindowImpl->mnX = nX;
             mpWindowImpl->maPos.X() = nOrgX;
-            mpWindowImpl->mnAbsScreenX = aPtDev.X();	// --- RTL --- (store real screen pos)
+            mpWindowImpl->mnAbsScreenX = aPtDev.X();    // --- RTL --- (store real screen pos)
             bNewPos = TRUE;
         }
     }
@@ -6585,10 +6585,19 @@ void Window::Show( BOOL bVisible, USHORT nFlags )
             mpWindowImpl->mpBorderWindow->Show( true, nFlags );
         else if ( mpWindowImpl->mbFrame )
         {
-            ImplSVData* pSVData = ImplGetSVData();
             // #106431#, hide SplashScreen
-            if( pSVData->mpIntroWindow && !ImplIsWindowOrChild( pSVData->mpIntroWindow ) )
+            ImplSVData* pSVData = ImplGetSVData();
+            if ( !pSVData->mpIntroWindow )
+            {
+                // The right way would be just to call this (not even in the 'if')
+                GetpApp()->InitFinished();
+            }
+            else if ( !ImplIsWindowOrChild( pSVData->mpIntroWindow ) )
+            {
+                // ... but the VCL splash is broken, and it needs this
+                // (for ./soffice slot:5500)
                 pSVData->mpIntroWindow->Hide();
+            }
 
             //DBG_ASSERT( !mpWindowImpl->mbSuppressAccessibilityEvents, "Window::Show() - Frame reactivated");
             mpWindowImpl->mbSuppressAccessibilityEvents = FALSE;
@@ -8717,8 +8726,8 @@ Reference< XClipboard > Window::GetPrimarySelection()
 
                     mpWindowImpl->mpFrameData->mxSelection = Reference< XClipboard >( xFactory->createInstanceWithArguments(
                     OUString::createFromAscii( "com.sun.star.datatransfer.clipboard.SystemClipboard" ), aArgumentList ), UNO_QUERY );
-#	else
-                    static Reference< XClipboard >	s_xSelection;
+#       else
+                    static Reference< XClipboard >      s_xSelection;
 
                     if ( !s_xSelection.is() )
                          s_xSelection = Reference< XClipboard >( xFactory->createInstance( OUString::createFromAscii( "com.sun.star.datatransfer.clipboard.GenericClipboardExt" ) ), UNO_QUERY );
@@ -8727,7 +8736,7 @@ Reference< XClipboard > Window::GetPrimarySelection()
                          s_xSelection = Reference< XClipboard >( xFactory->createInstance( OUString::createFromAscii( "com.sun.star.datatransfer.clipboard.GenericClipboard" ) ), UNO_QUERY );
 
                     mpWindowImpl->mpFrameData->mxSelection = s_xSelection;
-#	endif
+#       endif
                 }
             }
 
commit 824b7fbefdf081dd2ebb2e14f68c127b5fe28d95
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Mon Oct 11 15:19:05 2010 +0100

    #i112786# make ConfigManager a well-behaved singleton

diff --git a/unotools/inc/unotools/configmgr.hxx b/unotools/inc/unotools/configmgr.hxx
index b1a349b..20efadd 100644
--- a/unotools/inc/unotools/configmgr.hxx
+++ b/unotools/inc/unotools/configmgr.hxx
@@ -54,7 +54,6 @@ namespace utl
                                 xConfigurationProvider;
             ConfigMgr_Impl*     pMgrImpl;
 
-            static  ConfigManager*  pConfigManager;
             static void getBasisAboutBoxProductVersion( rtl::OUString& rVersion );
 
         public:
@@ -80,8 +79,7 @@ namespace utl
 
             void StoreConfigItems();
 
-            static ConfigManager*           GetConfigManager();
-            static void                     RemoveConfigManager();
+            static ConfigManager&           GetConfigManager();
             static rtl::OUString            GetConfigBaseURL();
 
             enum ConfigProperty
diff --git a/unotools/source/config/configitem.cxx b/unotools/source/config/configitem.cxx
index a3268cf..0172276 100644
--- a/unotools/source/config/configitem.cxx
+++ b/unotools/source/config/configitem.cxx
@@ -240,7 +240,7 @@ ConfigItem::ConfigItem(const OUString rSubTree, sal_Int16 nSetMode ) :
 {
     AutoDeleter<ConfigItem_Impl> aNewImpl(pImpl);
 
-    pImpl->pManager = ConfigManager::GetConfigManager();
+    pImpl->pManager = &ConfigManager::GetConfigManager();
     pImpl->nMode = nSetMode;
     if(0 != (nSetMode&CONFIG_MODE_RELEASE_TREE))
         pImpl->pManager->AddConfigItem(*this);
diff --git a/unotools/source/config/configmgr.cxx b/unotools/source/config/configmgr.cxx
index 9f8b904..28a9dde 100644
--- a/unotools/source/config/configmgr.cxx
+++ b/unotools/source/config/configmgr.cxx
@@ -352,28 +352,14 @@ void ConfigManager::StoreConfigItems()
         }
     }
 }
-ConfigManager*	 ConfigManager::pConfigManager = 0;
 /* -----------------------------07.09.00 11:06--------------------------------
 
  ---------------------------------------------------------------------------*/
-ConfigManager*	ConfigManager::GetConfigManager()
-{
-    if(!pConfigManager)
-    {
-        pConfigManager = new ConfigManager();
-    }
-    return pConfigManager;
-}
-/* -----------------------------07.09.00 11:06--------------------------------
+struct theConfigManager : public rtl::Static<ConfigManager, theConfigManager> {};
 
- ---------------------------------------------------------------------------*/
-void	ConfigManager::RemoveConfigManager()
+ConfigManager& ConfigManager::GetConfigManager()
 {
-    if(pConfigManager)
-    {
-        delete pConfigManager;
-        pConfigManager = 0;
-    }
+    return theConfigManager::get();
 }
 /* -----------------------------08.09.00 13:22--------------------------------
 
@@ -515,7 +501,7 @@ Any ConfigManager::GetDirectConfigProperty(ConfigProperty eProp)
     }
     Sequence< Any > aArgs(1);
     aArgs[0] <<= sPath;
-    Reference< XMultiServiceFactory > xCfgProvider = GetConfigManager()->GetConfigurationProvider();
+    Reference< XMultiServiceFactory > xCfgProvider = GetConfigManager().GetConfigurationProvider();
     if(!xCfgProvider.is())
         return aRet;
     Reference< XInterface > xIFace;
diff --git a/unotools/source/config/docinfohelper.cxx b/unotools/source/config/docinfohelper.cxx
index f75d0c0..5b02624 100644
--- a/unotools/source/config/docinfohelper.cxx
+++ b/unotools/source/config/docinfohelper.cxx
@@ -45,39 +45,36 @@ namespace utl
 
     // First product: branded name + version
     // version is <product_versions>_<product_extension>$<platform>
-    utl::ConfigManager* pMgr = utl::ConfigManager::GetConfigManager();
-    if ( pMgr )
+    utl::ConfigManager& rMgr = utl::ConfigManager::GetConfigManager();
+    // plain product name
+    rtl::OUString aValue;
+    uno::Any aAny = rMgr.GetDirectConfigProperty(
+                                        utl::ConfigManager::PRODUCTNAME);
+    if ( (aAny >>= aValue) && aValue.getLength() )
     {
-        // plain product name
-        rtl::OUString aValue;
-        uno::Any aAny = pMgr->GetDirectConfigProperty(
-                                            utl::ConfigManager::PRODUCTNAME);
+        aResult.append( aValue.replace( ' ', '_' ) );
+        aResult.append( (sal_Unicode)'/' );
+
+        aAny = rMgr.GetDirectConfigProperty(
+                                    utl::ConfigManager::PRODUCTVERSION);
         if ( (aAny >>= aValue) && aValue.getLength() )
         {
             aResult.append( aValue.replace( ' ', '_' ) );
-            aResult.append( (sal_Unicode)'/' );
 
-            aAny = pMgr->GetDirectConfigProperty(
-                                        utl::ConfigManager::PRODUCTVERSION);
+            aAny = rMgr.GetDirectConfigProperty(
+                                    utl::ConfigManager::PRODUCTEXTENSION);
             if ( (aAny >>= aValue) && aValue.getLength() )

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list