[ooo-build-commit] Branch 'ooo/master' - 3 commits - rsc/source svtools/inc svtools/source toolkit/inc toolkit/source tools/inc vcl/source

Jan Holesovsky kendy at kemper.freedesktop.org
Tue Sep 15 18:41:38 PDT 2009


 rsc/source/parser/rscicpx.cxx               |    4 +
 svtools/inc/dialogcontrolling.hxx           |   38 ++++++++------
 svtools/inc/svtools/embedhlp.hxx            |    1 
 svtools/source/brwbox/brwbox1.cxx           |    2 
 svtools/source/dialogs/wizdlg.cxx           |    5 +
 svtools/source/misc/dialogcontrolling.cxx   |   27 ++++++---
 svtools/source/misc/embedhlp.cxx            |   26 +++++++++
 toolkit/inc/toolkit/helper/vclunohelper.hxx |   16 +++++
 toolkit/source/awt/vclxwindow.cxx           |   76 ++++------------------------
 toolkit/source/helper/vclunohelper.cxx      |   55 ++++++++++++++++++++
 tools/inc/tools/rc.h                        |    1 
 vcl/source/control/field.cxx                |    3 +
 vcl/source/fontsubset/fontsubset.cxx        |    2 
 13 files changed, 161 insertions(+), 95 deletions(-)

New commits:
commit 61094c45e75a0b6c678562511dfb6ad68a587d98
Author: Kurt Zenker <kz at openoffice.org>
Date:   Mon Sep 14 11:43:51 2009 +0000

    #i105025# patch

diff --git a/vcl/source/fontsubset/fontsubset.cxx b/vcl/source/fontsubset/fontsubset.cxx
index e28e011..051787b 100644
--- a/vcl/source/fontsubset/fontsubset.cxx
+++ b/vcl/source/fontsubset/fontsubset.cxx
@@ -40,7 +40,7 @@ FontSubsetInfo::FontSubsetInfo()
 ,	m_nCapHeight( 0)
 ,	m_nFontType( FontSubsetInfo::NO_FONT)
 ,	mpInFontBytes( NULL)
-,	mnInByteLength( NULL)
+,	mnInByteLength( 0)
 ,	meInFontType( FontSubsetInfo::NO_FONT)
 ,	mpSftTTFont( NULL)
 {}
commit aba1a91594a97ed6020e27677c713f2f4a2ef544
Author: Kurt Zenker <kz at openoffice.org>
Date:   Mon Sep 14 11:18:01 2009 +0000

    CWS-TOOLING: integrate CWS dba32g
    2009-09-09 07:53:55 +0200 oj  r275964 : replace strlen with rtl_str_getLength
    2009-09-07 20:59:10 +0200 fs  r275913 : disable the CopyTableWizard test until issue 104869 is fixed
    2009-09-07 12:17:31 +0200 oj  r275885 : #i104810# remove de as lang
    2009-09-05 22:26:21 +0200 fs  r275857 : protect StateChanged against re-entrance
    2009-09-05 22:25:52 +0200 fs  r275856 : don't attempt to classify the parent of a form as control
    2009-09-05 22:25:29 +0200 fs  r275855 : protect against re-entrance
    2009-09-05 00:11:40 +0200 fs  r275835 : #i10000#
    2009-09-04 23:25:50 +0200 fs  r275834 : #i10000#
    2009-09-04 23:23:47 +0200 fs  r275833 : #i10000#
    2009-09-04 21:49:37 +0200 fs  r275830 : #i10000# correct wrong conflict resolution
    2009-09-04 20:59:51 +0200 fs  r275829 : CWS-TOOLING: rebase CWS dba32g to trunk at 275801 (milestone: DEV300:m57)
    2009-09-04 11:08:32 +0200 oj  r275791 : #i104780# new version 1.2.0
    2009-09-03 22:29:21 +0200 fs  r275775 : OSL_TRACE doesn't need \n anymore
    2009-09-03 08:33:21 +0200 fs  r275743 : CWS-TOOLING: rebase CWS dba32g to trunk at 275331 (milestone: DEV300:m56)
    2009-09-02 13:48:12 +0200 fs  r275708 : removed useless include
    2009-09-02 13:45:43 +0200 fs  r275707 : more since tags, which are used across offapi/udkapi
    2009-09-02 13:23:04 +0200 fs  r275705 : should *not* have the dtor, copy ctor, and assignment operator compiler-generated, else we run into trouble as soon as the compiler creates different versions of our singleton member's static data in different libraries
    2009-09-02 12:32:45 +0200 fs  r275704 : AutoIncrementIsPrimaryKey is a driver setting, not a data source setting
    2009-09-02 11:42:49 +0200 fs  r275701 : URL meta data are meta data which are valid for all connections of this type, not per-data-source properties. Settings them as data source properties is a hack.
    2009-09-02 08:43:34 +0200 fs  r275696 : 3.x.x is not a valid 'since' tag
    2009-09-01 16:05:24 +0200 fs  r275665 : #i104686# don't treat controls bound to read-only columns as required
    2009-09-01 13:10:22 +0200 fs  r275657 : #i104574# use PageUp/Down to scroll through the complete page
    2009-09-01 07:04:48 +0200 oj  r275641 : #i104104# correct line ends
    2009-08-31 15:52:34 +0200 fs  r275612 : #i104410#
    2009-08-31 12:29:05 +0200 fs  r275596 : #i104364#
    2009-08-31 12:28:56 +0200 fs  r275595 : #i104364#
    2009-08-31 11:43:09 +0200 fs  r275593 : #i104649# JavaDriverClassPath is also a known JDBC-bridge setting
    2009-08-31 11:41:37 +0200 fs  r275592 : #i104649#
    2009-08-28 21:48:27 +0200 fs  r275552 : during #i96862#: renamed the configuration data which controls availability of certain DBA-related UI
    2009-08-28 21:48:17 +0200 fs  r275551 : #i96862# do not show the 'Create a new database' option when a) no embedded/dBase driver is installed or b) the configuration requests to hide the option
    2009-08-28 21:47:19 +0200 fs  r275550 : during #i96862#: renamed the configuration data which controls availability of certain DBA-related UI
    2009-08-28 21:46:41 +0200 fs  r275549 : #i96862# renamed and extended the configuration data which controls availability of certain DBA-related UI
    2009-08-28 15:10:19 +0200 fs  r275535 : #i96862# if no embedded driver is installed, use dBase for creating new DBs. If no dBase driver is installed, too, do not offer the 'Create new database' option
    2009-08-28 14:03:04 +0200 fs  r275532 : #i104454# allow multiple fields to display the same column
    2009-08-28 13:14:00 +0200 fs  r275528 : #i104584# driver meta data do not belong into a data source's settings
    2009-08-28 13:09:57 +0200 fs  r275527 : properly chech the MySQL type buttons (else next/back in the wizard leads to state with two buttons checked)
    2009-08-28 13:09:17 +0200 fs  r275526 : #i104584# driver meta data do not belong into a data source's settings
    2009-08-28 13:07:18 +0200 fs  r275525 : BooleanComparisonMode is a property, or a feature - but not a driver meta data
    2009-08-28 11:00:31 +0200 fs  r275521 : #i104580#
    2009-08-28 10:40:05 +0200 fs  r275519 : #i104577# correct assertion: If the template node type is ANY, then any value type is allowed
    2009-08-28 10:09:30 +0200 fs  r275518 : #i104575# implement Named Pipe UI
    2009-08-28 10:09:07 +0200 fs  r275517 : pass the trigger-event to IWindowOperator::operateOn / work with VclWindowEvents, not VclSimpleEvents
    2009-08-27 14:27:36 +0200 fs  r275484 : ImplPosTabPage: respect mbEmptyViewMargin for WINDOWALIGN_LEFT
    2009-08-27 13:43:56 +0200 fs  r275480 : merging latest changes from CWS dba32f herein
    2009-08-27 13:23:07 +0200 fs  r275475 : #i103882#
    2009-08-27 11:56:55 +0200 fs  r275466 : #i104544# SetState: Do not call Update at the window which we just set text for. It should (sic\!) not be needed, but causes trouble
    2009-08-27 11:55:34 +0200 fs  r275465 : #i104544#
    do not allow re-entrance for impl_ensureControl_nothrow
    Actually, this is part of the fix only. I also removed the code which triggered this re-entrance (from
    the grid control implementation), but to ensure it won't happen, again, I added some safety herein.
    2009-08-27 10:14:11 +0200 fs  r275459 : preparations for supporting a 'NamedPipe' parameter for the MySQL Connector/OOo
    2009-08-27 10:13:21 +0200 fs  r275458 : preparations for supporting a 'NamedPipe' setting for the MySQL Connector/OOo
    2009-08-27 10:11:14 +0200 fs  r275456 : outsourced the MySQLNative settings into a dedicated class, to not duplicate all the code in two tab page implementations
    2009-08-26 14:18:13 +0200 fs  r275422 : #i10000#
    2009-08-26 13:26:36 +0200 fs  r275419 : ignore output paths
    2009-08-26 13:23:38 +0200 fs  r275417 : support the LocalSocket property for the MySQL native driver
    2009-08-26 13:17:05 +0200 fs  r275416 : some re-factoring, to outsource the tab page for setting up the MySQLNative connection, into a dedicated class (needed later)
    2009-08-26 13:15:15 +0200 fs  r275415 : support a NoThousandSep property for NumericFormatters - I'm tired of correcting this at runtime, instead of controlling it in the resource
    2009-08-26 11:45:08 +0200 fs  r275410 : oops, 'flat' shouldn't have got lost
    2009-08-26 09:38:57 +0200 fs  r275398 : #i102631# when saving the document fails, ensure that the interaction handler really can handle/display the error
    2009-08-26 09:37:05 +0200 fs  r275397 : #i102631# don't let non-IO/RuntimeExceptions escape from DatabaseDocument::store*, wrap them into an IOException
    2009-08-26 09:35:39 +0200 fs  r275395 : let the default interaction handler implement XInteractionHandler2
    2009-08-25 13:51:34 +0200 fs  r275352 : #i102631# createTempFile: pass URL through FileHelper.getOOoCompatibleFileURL
    2009-08-25 13:49:23 +0200 fs  r275351 : #i102631# createTempFileURL: immediately delete the file implicitly created by createTempFile, we really only need the URL
    2009-08-24 14:49:07 +0200 fs  r275318 : #i10000#
    2009-08-24 14:36:03 +0200 fs  r275315 : properly terminate message with 0 character
    2009-08-24 14:35:45 +0200 fs  r275314 : trace method concepts in non-pro, if special flag is enabled
    2009-08-24 14:24:17 +0200 fs  r275312 : #i98973# filter some more events for grid control columns
    2009-08-24 14:15:23 +0200 fs  r275311 : #i98973# implement XComboBox for combo box cells
    2009-08-24 13:39:24 +0200 fs  r275308 : #i98973# do not display the 'actionPerformed' event for grid combo box columns
    2009-08-24 12:52:03 +0200 fs  r275303 : #i98973# implement XCheckBox and XButton for check box cells
    2009-08-24 11:56:05 +0200 oj  r275300 : #i104447# wrong default for orientation
    2009-08-24 10:51:21 +0200 fs  r275296 : in the script selector dialog, interpret a double click onto a function as OK
    2009-08-24 10:50:56 +0200 fs  r275295 : localize some to-be-displayed names, consolidate some code regarding form/control naming
    2009-08-21 14:28:05 +0200 fs  r275255 : #i98973# implement KeyListeners
    2009-08-21 14:27:20 +0200 fs  r275254 : #i98973# move the conversion VCL[Mouse|Key]Event->Awt[Mouse|Key]Event from vclxwindow.cxx to VCLUnoHelper
    2009-08-21 14:08:50 +0200 fs  r275248 : #i98973# implement Mouse- and MouseMotion-broadcasting
    2009-08-21 13:31:08 +0200 fs  r275244 : #i98973# implement text and change listeners at text cells
    2009-08-21 12:47:38 +0200 fs  r275234 : #i104399# some refactoring:
    If the MySQL Connector/OOo is installed, it registers for the sdbc:mysqlc: protocol (now known as DST_MYSQL_NATIVE_DIRECT).
    However, we do not want to display this in the UI, instead we display "MySQL" only, which collects DST_MYSQL_ODBC, DST_MYSQL_JDBC, and DST_MYSQL_NATIVE.
    2009-08-21 12:45:18 +0200 fs  r275232 : #i104399# also register for the sdbc:mysql:mysqlc protocol, decide at runtime (depending on the availability of sdbc:mysqlc:), whether it is really accepted. This prevents that the C/OOo extension needs to register *our* implementation name for the sdbc:mysql:mysqlc: protocol, which would be somewhat weird
    2009-08-20 16:18:48 +0200 fs  r275190 : merging the latest changes from CWS dba32f (which this CWS was created from)
    2009-08-19 20:19:59 +0200 fs  r275160 : add some spacing between the radios
    2009-08-19 14:50:15 +0200 fs  r275150 : #i98973# slightly refactoring the grid cell implementations, to prepare for proper events being fired. Implement focus events for the moment, more to come.
    2009-08-19 10:53:38 +0200 fs  r275142 : #i99936# initialize newly created models
    2009-08-18 23:03:48 +0200 fs  r275132 : merging latest changes from CWS dba32f
    2009-08-18 15:14:08 +0200 fs  r275110 : #i102819# SetColumnPos: SCROLL_CLIP is deadly here

diff --git a/rsc/source/parser/rscicpx.cxx b/rsc/source/parser/rscicpx.cxx
index 00d38aa..fbb4182 100644
--- a/rsc/source/parser/rscicpx.cxx
+++ b/rsc/source/parser/rscicpx.cxx
@@ -1449,6 +1449,9 @@ RscTop * RscTypCont::InitClassNumericFormatter( RscTop * pSuper )
     nId = aNmTb.Put( "Value", VARNAME );
     pClassNumeric->SetVariable( nId, &aIdLong, NULL,
                                 0, NUMERICFORMATTER_VALUE );
+    nId = aNmTb.Put( "NoThousandSep", VARNAME );
+    pClassNumeric->SetVariable( nId, &aBool, NULL,
+                                0, NUMERICFORMATTER_NOTHOUSANDSEP );
 
     return pClassNumeric;
 }
@@ -1633,7 +1636,6 @@ RscTop * RscTypCont::InitClassNumericField( RscTop * pSuper )
     nId = aNmTb.Put( "SpinSize", VARNAME );
     pClassNumericField->SetVariable( nId, &aIdLong, NULL,
                                                                         0, NUMERICFIELD_SPINSIZE  );
-
     return pClassNumericField;
 }
 
diff --git a/svtools/inc/dialogcontrolling.hxx b/svtools/inc/dialogcontrolling.hxx
index fec4b12..62d6f09 100644
--- a/svtools/inc/dialogcontrolling.hxx
+++ b/svtools/inc/dialogcontrolling.hxx
@@ -52,7 +52,15 @@ namespace svt
     class SVT_DLLPUBLIC SAL_NO_VTABLE IWindowOperator
     {
     public:
-        virtual void operateOn( Window& _rOperateOn ) const = 0;
+        /** called when an event happened which should be reacted to
+
+            @param _rTrigger
+                the event which triggered the call. If the Id of the event is 0, then this is the initial
+                call which is made when ->_rOperateOn is added to the responsibility of the DialogController.
+            @param _rOperateOn
+                the window on which to operate
+        */
+        virtual void operateOn( const VclWindowEvent& _rTrigger, Window& _rOperateOn ) const = 0;
 
         virtual ~IWindowOperator();
     };
@@ -61,13 +69,13 @@ namespace svt
     //=====================================================================
     //= IWindowEventFilter
     //=====================================================================
-    /** an abstract interface for deciding whether a ->VclSimpleEvent
+    /** an abstract interface for deciding whether a ->VclWindowEvent
         is worth paying attention to
     */
     class SVT_DLLPUBLIC SAL_NO_VTABLE IWindowEventFilter
     {
     public:
-        virtual bool payAttentionTo( const VclSimpleEvent& _rEvent ) const = 0;
+        virtual bool payAttentionTo( const VclWindowEvent& _rEvent ) const = 0;
 
         virtual ~IWindowEventFilter();
     };
@@ -96,7 +104,7 @@ namespace svt
         ::std::auto_ptr< DialogController_Data >    m_pImpl;
 
     public:
-        DialogController( Window& _rInstigator, const PWindowEventFilter _pEventFilter, const PWindowOperator _pOperator );
+        DialogController( Window& _rInstigator, const PWindowEventFilter& _pEventFilter, const PWindowOperator& _pOperator );
         virtual ~DialogController();
 
         /** adds a window to the list of dependent windows
@@ -117,10 +125,10 @@ namespace svt
 
     private:
         void    impl_Init();
-        void    impl_updateAll();
-        void    impl_update( Window& _rWindow );
+        void    impl_updateAll( const VclWindowEvent& _rTriggerEvent );
+        void    impl_update( const VclWindowEvent& _rTriggerEvent, Window& _rWindow );
 
-        DECL_LINK( OnWindowEvent, const VclSimpleEvent* );
+        DECL_LINK( OnWindowEvent, const VclWindowEvent* );
 
     private:
         DialogController( const DialogController& );            // never implemented
@@ -184,10 +192,9 @@ namespace svt
         /** adds a non-standard controller whose functionality is not covered by the other methods
 
             @param _pController
-                the controller to add to the manager. Must not be <NULL/>. The manager takes ownership
-                of the controller.
+                the controller to add to the manager. Must not be <NULL/>.
         */
-        void    addController( DialogController* _pController );
+        void    addController( const PDialogController& _pController );
 
     private:
         ControlDependencyManager( const ControlDependencyManager& );            // never implemented
@@ -224,7 +231,7 @@ namespace svt
         {
         }
 
-        virtual void operateOn( Window& _rOperateOn ) const
+        virtual void operateOn( const VclWindowEvent& /*_rTrigger*/, Window& _rOperateOn ) const
         {
             _rOperateOn.Enable( m_rCheckable.IsChecked() );
         }
@@ -248,12 +255,11 @@ namespace svt
         {
         }
 
-        bool payAttentionTo( const VclSimpleEvent& _rEvent ) const
+        bool payAttentionTo( const VclWindowEvent& _rEvent ) const
         {
-            const VclWindowEvent& rWindowEvent = dynamic_cast< const VclWindowEvent& >( _rEvent );
-            if  (   ( rWindowEvent.GetWindow() == &m_rWindow )
-                &&  (   ( rWindowEvent.GetId() == VCLEVENT_RADIOBUTTON_TOGGLE )
-                    ||  ( rWindowEvent.GetId() == VCLEVENT_CHECKBOX_TOGGLE )
+            if  (   ( _rEvent.GetWindow() == &m_rWindow )
+                &&  (   ( _rEvent.GetId() == VCLEVENT_RADIOBUTTON_TOGGLE )
+                    ||  ( _rEvent.GetId() == VCLEVENT_CHECKBOX_TOGGLE )
                     )
                 )
                 return true;
diff --git a/svtools/source/brwbox/brwbox1.cxx b/svtools/source/brwbox/brwbox1.cxx
index ff003d5..96a96d3 100644
--- a/svtools/source/brwbox/brwbox1.cxx
+++ b/svtools/source/brwbox/brwbox1.cxx
@@ -538,7 +538,7 @@ void BrowseBox::SetColumnPos( USHORT nColumnId, USHORT nPos )
                 aScrollArea = Rectangle(Point(aNextRect.Left(),0),
                                         Point(aToRect.Right(),aDataWinSize.Height()));
 
-            pDataWin->Scroll( nScroll, 0, aScrollArea, SCROLL_FLAGS );
+            pDataWin->Scroll( nScroll, 0, aScrollArea );
             aToRect.Top() = 0;
             aToRect.Bottom() = aScrollArea.Bottom();
             Invalidate( aToRect );
diff --git a/svtools/source/dialogs/wizdlg.cxx b/svtools/source/dialogs/wizdlg.cxx
index f558053..19473ac 100644
--- a/svtools/source/dialogs/wizdlg.cxx
+++ b/svtools/source/dialogs/wizdlg.cxx
@@ -303,8 +303,9 @@ void WizardDialog::ImplPosTabPage()
         }
         else if ( meViewAlign == WINDOWALIGN_LEFT )
         {
-            nOffX += aViewSize.Width()+WIZARDDIALOG_VIEW_DLGOFFSET_X;
-            aDlgSize.Width() -= aViewSize.Width()+WIZARDDIALOG_VIEW_DLGOFFSET_X;
+            long nViewOffset = mbEmptyViewMargin ? 0 : WIZARDDIALOG_VIEW_DLGOFFSET_X;
+            nOffX += aViewSize.Width() + nViewOffset;
+            aDlgSize.Width() -= nOffX;
         }
         else if ( meViewAlign == WINDOWALIGN_BOTTOM )
             aDlgSize.Height() -= aViewSize.Height()+WIZARDDIALOG_VIEW_DLGOFFSET_Y;
diff --git a/svtools/source/misc/dialogcontrolling.cxx b/svtools/source/misc/dialogcontrolling.cxx
index ab25489..3c76c7a 100644
--- a/svtools/source/misc/dialogcontrolling.cxx
+++ b/svtools/source/misc/dialogcontrolling.cxx
@@ -79,8 +79,8 @@ namespace svt
     //= DialogController
     //=====================================================================
     //---------------------------------------------------------------------
-    DialogController::DialogController( Window& _rInstigator, const PWindowEventFilter _pEventFilter,
-            const PWindowOperator _pOperator )
+    DialogController::DialogController( Window& _rInstigator, const PWindowEventFilter& _pEventFilter,
+            const PWindowOperator& _pOperator )
         :m_pImpl( new DialogController_Data( _rInstigator, _pEventFilter, _pOperator ) )
     {
         DBG_ASSERT( m_pImpl->pEventFilter.get() && m_pImpl->pOperator.get(),
@@ -108,31 +108,33 @@ namespace svt
     void DialogController::addDependentWindow( Window& _rWindow )
     {
         m_pImpl->aConcernedWindows.push_back( &_rWindow );
-        impl_update( _rWindow );
+
+        VclWindowEvent aEvent( &_rWindow, 0, NULL );
+        impl_update( aEvent, _rWindow );
     }
 
     //---------------------------------------------------------------------
-    IMPL_LINK( DialogController, OnWindowEvent, const VclSimpleEvent*, _pEvent )
+    IMPL_LINK( DialogController, OnWindowEvent, const VclWindowEvent*, _pEvent )
     {
         if ( m_pImpl->pEventFilter->payAttentionTo( *_pEvent ) )
-            impl_updateAll();
+            impl_updateAll( *_pEvent );
         return 0L;
     }
 
     //---------------------------------------------------------------------
-    void DialogController::impl_updateAll()
+    void DialogController::impl_updateAll( const VclWindowEvent& _rTriggerEvent )
     {
         for ( ::std::vector< Window* >::iterator loop = m_pImpl->aConcernedWindows.begin();
                 loop != m_pImpl->aConcernedWindows.end();
                 ++loop
             )
-            impl_update( *(*loop) );
+            impl_update( _rTriggerEvent, *(*loop) );
     }
 
     //---------------------------------------------------------------------
-    void DialogController::impl_update( Window& _rWindow )
+    void DialogController::impl_update( const VclWindowEvent& _rTriggerEvent, Window& _rWindow )
     {
-        m_pImpl->pOperator->operateOn( _rWindow );
+        m_pImpl->pOperator->operateOn( _rTriggerEvent, _rWindow );
     }
 
     //=====================================================================
@@ -177,6 +179,13 @@ namespace svt
     }
 
     //---------------------------------------------------------------------
+    void ControlDependencyManager::addController( const PDialogController& _pController )
+    {
+        OSL_ENSURE( _pController.get() != NULL, "ControlDependencyManager::addController: invalid controller, this will crash, sooner or later!" );
+        m_pImpl->aControllers.push_back( _pController );
+    }
+
+    //---------------------------------------------------------------------
     void ControlDependencyManager::enableOnRadioCheck( RadioButton& _rRadio, Window& _rDependentWindow )
     {
         PDialogController pController( new RadioDependentEnabler( _rRadio ) );
diff --git a/toolkit/inc/toolkit/helper/vclunohelper.hxx b/toolkit/inc/toolkit/helper/vclunohelper.hxx
index ac51ff3..7446513 100644
--- a/toolkit/inc/toolkit/helper/vclunohelper.hxx
+++ b/toolkit/inc/toolkit/helper/vclunohelper.hxx
@@ -36,6 +36,7 @@
 #include <com/sun/star/uno/Sequence.h>
 
 #include <com/sun/star/lang/IllegalArgumentException.hpp>
+#include <com/sun/star/awt/MouseEvent.hpp>
 
 
 namespace com { namespace sun { namespace star { namespace uno {
@@ -59,6 +60,7 @@ namespace com { namespace sun { namespace star { namespace awt {
     struct SimpleFontMetric;
     struct FontDescriptor;
     struct Rectangle;
+    struct KeyEvent;
 }}}}
 
 
@@ -71,6 +73,8 @@ namespace com { namespace sun { namespace star { namespace awt {
 
 class Window;
 class OutputDevice;
+class MouseEvent;
+class KeyEvent;
 
 //	----------------------------------------------------
 //	class VclUnoHelper
@@ -144,6 +148,18 @@ public:
 
     static ::Rectangle ConvertToVCLRect( ::com::sun::star::awt::Rectangle const & _rRect );
     static ::com::sun::star::awt::Rectangle ConvertToAWTRect( ::Rectangle const & _rRect );
+
+    static ::com::sun::star::awt::MouseEvent
+        createMouseEvent(
+            const ::MouseEvent& _rVclEvent,
+            const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& _rxContext
+        );
+
+    static ::com::sun::star::awt::KeyEvent
+        createKeyEvent(
+            const ::KeyEvent& _rVclEvent,
+            const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& _rxContext
+        );
 };
 
 
diff --git a/toolkit/source/awt/vclxwindow.cxx b/toolkit/source/awt/vclxwindow.cxx
index efa57aa..985dff8 100644
--- a/toolkit/source/awt/vclxwindow.cxx
+++ b/toolkit/source/awt/vclxwindow.cxx
@@ -554,48 +554,6 @@ void ImplInitWindowEvent( ::com::sun::star::awt::WindowEvent& rEvent, Window* pW
     pWindow->GetBorder( rEvent.LeftInset, rEvent.TopInset, rEvent.RightInset, rEvent.BottomInset );
 }
 
-void ImplInitKeyEvent( ::com::sun::star::awt::KeyEvent& rEvent, const KeyEvent& rEvt )
-{
-    rEvent.Modifiers = 0;
-    if ( rEvt.GetKeyCode().IsShift() )
-        rEvent.Modifiers |= ::com::sun::star::awt::KeyModifier::SHIFT;
-    if ( rEvt.GetKeyCode().IsMod1() )
-        rEvent.Modifiers |= ::com::sun::star::awt::KeyModifier::MOD1;
-    if ( rEvt.GetKeyCode().IsMod2() )
-        rEvent.Modifiers |= ::com::sun::star::awt::KeyModifier::MOD2;
-        if ( rEvt.GetKeyCode().IsMod3() )
-                rEvent.Modifiers |= ::com::sun::star::awt::KeyModifier::MOD3;
-
-    rEvent.KeyCode = rEvt.GetKeyCode().GetCode();
-    rEvent.KeyChar = rEvt.GetCharCode();
-    rEvent.KeyFunc = sal::static_int_cast< sal_Int16 >(
-        rEvt.GetKeyCode().GetFunction());
-}
-
-void ImplInitMouseEvent( awt::MouseEvent& rEvent, const MouseEvent& rEvt )
-{
-    rEvent.Modifiers = 0;
-    if ( rEvt.IsShift() )
-        rEvent.Modifiers |= ::com::sun::star::awt::KeyModifier::SHIFT;
-    if ( rEvt.IsMod1() )
-    rEvent.Modifiers |= ::com::sun::star::awt::KeyModifier::MOD1;
-    if ( rEvt.IsMod2() )
-        rEvent.Modifiers |= ::com::sun::star::awt::KeyModifier::MOD2;
-
-    rEvent.Buttons = 0;
-    if ( rEvt.IsLeft() )
-        rEvent.Buttons |= ::com::sun::star::awt::MouseButton::LEFT;
-    if ( rEvt.IsRight() )
-        rEvent.Buttons |= ::com::sun::star::awt::MouseButton::RIGHT;
-    if ( rEvt.IsMiddle() )
-        rEvent.Buttons |= ::com::sun::star::awt::MouseButton::MIDDLE;
-
-    rEvent.X = rEvt.GetPosPixel().X();
-    rEvent.Y = rEvt.GetPosPixel().Y();
-    rEvent.ClickCount = rEvt.GetClicks();
-    rEvent.PopupTrigger = sal_False;
-}
-
 //	----------------------------------------------------
 //	class VCLXWindow
 //	----------------------------------------------------
@@ -890,9 +848,9 @@ void VCLXWindow::ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent )
         {
             if ( mpImpl->getKeyListeners().getLength() )
             {
-                ::com::sun::star::awt::KeyEvent aEvent;
-                aEvent.Source = (::cppu::OWeakObject*)this;
-                ImplInitKeyEvent( aEvent, *(KeyEvent*)rVclWindowEvent.GetData() );
+                ::com::sun::star::awt::KeyEvent aEvent( VCLUnoHelper::createKeyEvent(
+                    *(KeyEvent*)rVclWindowEvent.GetData(), *this
+                ) );
                 mpImpl->getKeyListeners().keyPressed( aEvent );
             }
         }
@@ -901,9 +859,9 @@ void VCLXWindow::ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent )
         {
             if ( mpImpl->getKeyListeners().getLength() )
             {
-                ::com::sun::star::awt::KeyEvent aEvent;
-                aEvent.Source = (::cppu::OWeakObject*)this;
-                ImplInitKeyEvent( aEvent, *(KeyEvent*)rVclWindowEvent.GetData() );
+                ::com::sun::star::awt::KeyEvent aEvent( VCLUnoHelper::createKeyEvent(
+                    *(KeyEvent*)rVclWindowEvent.GetData(), *this
+                ) );
                 mpImpl->getKeyListeners().keyReleased( aEvent );
             }
         }
@@ -925,9 +883,7 @@ void VCLXWindow::ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent )
                 }
 
                 MouseEvent aMEvt( aWhere, 1, MOUSE_SIMPLECLICK, MOUSE_LEFT, 0 );
-                awt::MouseEvent aEvent;
-                aEvent.Source = (::cppu::OWeakObject*)this;
-                ImplInitMouseEvent( aEvent, aMEvt );
+                awt::MouseEvent aEvent( VCLUnoHelper::createMouseEvent( aMEvt, *this ) );
                 aEvent.PopupTrigger = sal_True;
                 mpImpl->notifyMouseEvent( aEvent, EVENT_MOUSE_PRESSED );
             }
@@ -938,10 +894,7 @@ void VCLXWindow::ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent )
             MouseEvent* pMouseEvt = (MouseEvent*)rVclWindowEvent.GetData();
             if ( mpImpl->getMouseListeners().getLength() && ( pMouseEvt->IsEnterWindow() || pMouseEvt->IsLeaveWindow() ) )
             {
-                awt::MouseEvent aEvent;
-                aEvent.Source = (::cppu::OWeakObject*)this;
-                ImplInitMouseEvent( aEvent, *pMouseEvt );
-
+                awt::MouseEvent aEvent( VCLUnoHelper::createMouseEvent( *pMouseEvt, *this ) );
                 mpImpl->notifyMouseEvent(
                     aEvent,
                     pMouseEvt->IsEnterWindow() ? EVENT_MOUSE_ENTERED : EVENT_MOUSE_EXITED
@@ -950,11 +903,8 @@ void VCLXWindow::ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent )
 
             if ( mpImpl->getMouseMotionListeners().getLength() && !pMouseEvt->IsEnterWindow() && !pMouseEvt->IsLeaveWindow() )
             {
-                awt::MouseEvent aEvent;
-                aEvent.Source = (::cppu::OWeakObject*)this;
-                ImplInitMouseEvent( aEvent, *pMouseEvt );
+                awt::MouseEvent aEvent( VCLUnoHelper::createMouseEvent( *pMouseEvt, *this ) );
                 aEvent.ClickCount = 0;  // #92138#
-
                 if ( pMouseEvt->GetMode() & MOUSE_SIMPLEMOVE )
                     mpImpl->getMouseMotionListeners().mouseMoved( aEvent );
                 else
@@ -966,9 +916,7 @@ void VCLXWindow::ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent )
         {
             if ( mpImpl->getMouseListeners().getLength() )
             {
-                awt::MouseEvent aEvent;
-                aEvent.Source = (::cppu::OWeakObject*)this;
-                ImplInitMouseEvent( aEvent, *(MouseEvent*)rVclWindowEvent.GetData() );
+                awt::MouseEvent aEvent( VCLUnoHelper::createMouseEvent( *(MouseEvent*)rVclWindowEvent.GetData(), *this ) );
                 mpImpl->notifyMouseEvent( aEvent, EVENT_MOUSE_PRESSED );
             }
         }
@@ -977,9 +925,7 @@ void VCLXWindow::ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent )
         {
             if ( mpImpl->getMouseListeners().getLength() )
             {
-                awt::MouseEvent aEvent;
-                aEvent.Source = (::cppu::OWeakObject*)this;
-                ImplInitMouseEvent( aEvent, *(MouseEvent*)rVclWindowEvent.GetData() );
+                awt::MouseEvent aEvent( VCLUnoHelper::createMouseEvent( *(MouseEvent*)rVclWindowEvent.GetData(), *this ) );
                 mpImpl->notifyMouseEvent( aEvent, EVENT_MOUSE_RELEASED );
             }
         }
diff --git a/toolkit/source/helper/vclunohelper.cxx b/toolkit/source/helper/vclunohelper.cxx
index 52461a7..426a6a1 100644
--- a/toolkit/source/helper/vclunohelper.cxx
+++ b/toolkit/source/helper/vclunohelper.cxx
@@ -45,6 +45,8 @@
 #include <com/sun/star/awt/XControlContainer.hpp>
 #include <com/sun/star/awt/FontWeight.hpp>
 #include <com/sun/star/awt/FontWidth.hpp>
+#include <com/sun/star/awt/KeyModifier.hpp>
+#include <com/sun/star/awt/MouseButton.hpp>
 #include <com/sun/star/lang/XMultiServiceFactory.hpp>
 #include <com/sun/star/embed/EmbedMapUnits.hpp>
 
@@ -67,6 +69,8 @@
 #include <com/sun/star/awt/Size.hpp>
 #include <com/sun/star/awt/Point.hpp>
 
+using namespace ::com::sun::star;
+
 //	----------------------------------------------------
 //	class VCLUnoHelper
 //	----------------------------------------------------
@@ -745,3 +749,54 @@ com::sun::star::awt::Point VCLUnoHelper::ConvertToAWTPoint(::Point /* VCLPoint *
 {
     return ::com::sun::star::awt::Rectangle( _rRect.Left(), _rRect.Top(), _rRect.GetWidth(), _rRect.GetHeight() );
 }
+
+awt::MouseEvent VCLUnoHelper::createMouseEvent( const ::MouseEvent& _rVclEvent, const uno::Reference< uno::XInterface >& _rxContext )
+{
+    awt::MouseEvent aMouseEvent;
+    aMouseEvent.Source = _rxContext;
+
+    aMouseEvent.Modifiers = 0;
+    if ( _rVclEvent.IsShift() )
+        aMouseEvent.Modifiers |= ::com::sun::star::awt::KeyModifier::SHIFT;
+    if ( _rVclEvent.IsMod1() )
+    aMouseEvent.Modifiers |= ::com::sun::star::awt::KeyModifier::MOD1;
+    if ( _rVclEvent.IsMod2() )
+        aMouseEvent.Modifiers |= ::com::sun::star::awt::KeyModifier::MOD2;
+
+    aMouseEvent.Buttons = 0;
+    if ( _rVclEvent.IsLeft() )
+        aMouseEvent.Buttons |= ::com::sun::star::awt::MouseButton::LEFT;
+    if ( _rVclEvent.IsRight() )
+        aMouseEvent.Buttons |= ::com::sun::star::awt::MouseButton::RIGHT;
+    if ( _rVclEvent.IsMiddle() )
+        aMouseEvent.Buttons |= ::com::sun::star::awt::MouseButton::MIDDLE;
+
+    aMouseEvent.X = _rVclEvent.GetPosPixel().X();
+    aMouseEvent.Y = _rVclEvent.GetPosPixel().Y();
+    aMouseEvent.ClickCount = _rVclEvent.GetClicks();
+    aMouseEvent.PopupTrigger = sal_False;
+
+    return aMouseEvent;
+}
+
+awt::KeyEvent VCLUnoHelper::createKeyEvent( const ::KeyEvent& _rVclEvent, const uno::Reference< uno::XInterface >& _rxContext )
+{
+    awt::KeyEvent aKeyEvent;
+    aKeyEvent.Source = _rxContext;
+
+    aKeyEvent.Modifiers = 0;
+    if ( _rVclEvent.GetKeyCode().IsShift() )
+        aKeyEvent.Modifiers |= awt::KeyModifier::SHIFT;
+    if ( _rVclEvent.GetKeyCode().IsMod1() )
+        aKeyEvent.Modifiers |= awt::KeyModifier::MOD1;
+    if ( _rVclEvent.GetKeyCode().IsMod2() )
+        aKeyEvent.Modifiers |= awt::KeyModifier::MOD2;
+    if ( _rVclEvent.GetKeyCode().IsMod3() )
+            aKeyEvent.Modifiers |= awt::KeyModifier::MOD3;
+
+    aKeyEvent.KeyCode = _rVclEvent.GetKeyCode().GetCode();
+    aKeyEvent.KeyChar = _rVclEvent.GetCharCode();
+    aKeyEvent.KeyFunc = ::sal::static_int_cast< sal_Int16 >( _rVclEvent.GetKeyCode().GetFunction());
+
+    return aKeyEvent;
+}
diff --git a/tools/inc/tools/rc.h b/tools/inc/tools/rc.h
index 36425c5..7aad15f 100644
--- a/tools/inc/tools/rc.h
+++ b/tools/inc/tools/rc.h
@@ -102,6 +102,7 @@ typedef short RSWND_STYLE;
 //#define NUMERICFORMATTER_I12			0x08    // erAck: got rid of class International (2005-06-17)
 #define NUMERICFORMATTER_DECIMALDIGITS	0x10
 #define NUMERICFORMATTER_VALUE			0x20
+#define NUMERICFORMATTER_NOTHOUSANDSEP  0x40
 
 #define METRICFORMATTER_UNIT			0x01
 #define METRICFORMATTER_CUSTOMUNITTEXT	0x02
diff --git a/vcl/source/control/field.cxx b/vcl/source/control/field.cxx
index ed6683e..861139c 100644
--- a/vcl/source/control/field.cxx
+++ b/vcl/source/control/field.cxx
@@ -503,6 +503,9 @@ void NumericFormatter::ImplLoadRes( const ResId& rResId )
                 mnFieldValue = mnMin;
             mnLastValue = mnFieldValue;
         }
+
+        if ( NUMERICFORMATTER_NOTHOUSANDSEP & nMask )
+            SetUseThousandSep( !(BOOL)pMgr->ReadShort() );
     }
 }
 
commit 02267008656c2a589c736a477fd435ccd437731a
Author: Kurt Zenker <kz at openoffice.org>
Date:   Mon Sep 14 10:57:16 2009 +0000

    CWS-TOOLING: integrate CWS chart41
    2009-09-07 11:17:59 +0200 iha  r275880 : #i104854# ODF: Fallback to bar chart for surface charts as long as surface charts are not implemented
    2009-09-03 10:07:24 +0200 iha  r275745 : #i104020# Y axis scaling  problem with stock chart
    2009-09-02 17:11:42 +0200 iha  r275723 : #i103984# XChartDataArray / setDataArray broken
    2009-09-02 17:05:16 +0200 iha  r275721 : #i103984# XChartDataArray / setDataArray broken
    2009-08-31 18:18:21 +0200 iha  r275629 : #i103076# ODF, chart from MS-Office2007sp2 doesn't load  caused be different  xlink:href syntax
    2009-08-28 18:35:52 +0200 iha  r275548 : #i103460# ODF charts without svg:width and svg:height are not imported correctly
    2009-08-28 18:35:25 +0200 iha  r275547 : #i103460# ODF charts without svg:width and svg:height are not imported correctly
    2009-08-28 18:25:45 +0200 iha  r275546 : #i103460# ODF charts without svg:width and svg:height are not imported correctly
    2009-08-28 18:23:21 +0200 iha  r275544 : #i103460# ODF charts without svg:width and svg:height are not imported correctly
    2009-08-28 18:18:34 +0200 iha  r275543 : #i103460# ODF charts without svg:width and svg:height are not imported correctly
    2009-08-27 15:57:20 +0200 iha  r275490 : #i104160# report designer broken

diff --git a/svtools/inc/svtools/embedhlp.hxx b/svtools/inc/svtools/embedhlp.hxx
index 784ebcb..462f692 100644
--- a/svtools/inc/svtools/embedhlp.hxx
+++ b/svtools/inc/svtools/embedhlp.hxx
@@ -131,6 +131,7 @@ namespace svt
         BOOL            is() const { return mxObj.is(); }
 
         BOOL            IsChart() const;
+        void            SetDefaultSizeForChart( const Size& rSizeIn_100TH_MM );//#i103460# charts do not necessaryly have an own size within ODF files, in this case they need to use the size settings from the surrounding frame, which is made available with this method
     };
 }
 
diff --git a/svtools/source/misc/embedhlp.cxx b/svtools/source/misc/embedhlp.cxx
index 896a473..38022b9 100644
--- a/svtools/source/misc/embedhlp.cxx
+++ b/svtools/source/misc/embedhlp.cxx
@@ -54,6 +54,7 @@
 #include <com/sun/star/embed/NoVisualAreaSizeException.hpp>
 #include <com/sun/star/util/XModifiable.hpp>
 #include <com/sun/star/datatransfer/XTransferable.hpp>
+#include <com/sun/star/chart2/XDefaultSizeTransmitter.hpp>
 #include <cppuhelper/implbase4.hxx>
 #include "vcl/svapp.hxx"
 #include <rtl/logfile.hxx>
@@ -249,6 +250,7 @@ struct EmbeddedObjectRef_Impl
     sal_Int64                                   nViewAspect;
     BOOL                                        bIsLocked;
     sal_Bool                                    bNeedUpdate;
+    awt::Size                                   aDefaultSizeForChart_In_100TH_MM;//#i103460# charts do not necessaryly have an own size within ODF files, in this case they need to use the size settings from the surrounding frame, which is made available with this member
 };
 
 void EmbeddedObjectRef::Construct_Impl()
@@ -260,6 +262,7 @@ void EmbeddedObjectRef::Construct_Impl()
     mpImp->nViewAspect = embed::Aspects::MSOLE_CONTENT;
     mpImp->bIsLocked = FALSE;
     mpImp->bNeedUpdate = sal_False;
+    mpImp->aDefaultSizeForChart_In_100TH_MM = awt::Size(8000,7000);
 }
 
 EmbeddedObjectRef::EmbeddedObjectRef()
@@ -286,6 +289,7 @@ EmbeddedObjectRef::EmbeddedObjectRef( const EmbeddedObjectRef& rObj )
     mpImp->aPersistName = rObj.mpImp->aPersistName;
     mpImp->aMediaType = rObj.mpImp->aMediaType;
     mpImp->bNeedUpdate = rObj.mpImp->bNeedUpdate;
+    mpImp->aDefaultSizeForChart_In_100TH_MM = rObj.mpImp->aDefaultSizeForChart_In_100TH_MM;
 
     if ( rObj.mpImp->pGraphic && !rObj.mpImp->bNeedUpdate )
         mpImp->pGraphic = new Graphic( *rObj.mpImp->pGraphic );
@@ -334,6 +338,14 @@ void EmbeddedObjectRef::Assign( const NS_UNO::Reference < NS_EMBED::XEmbeddedObj
     mpImp->nViewAspect = nAspect;
     mxObj = xObj;
     mpImp->xListener = EmbedEventListener_Impl::Create( this );
+
+    //#i103460#
+    {
+        ::com::sun::star::uno::Reference < ::com::sun::star::chart2::XDefaultSizeTransmitter > xSizeTransmitter( xObj, uno::UNO_QUERY );
+        DBG_ASSERT( xSizeTransmitter.is(), "Object does not support XDefaultSizeTransmitter -> will cause #i103460#!" );
+        if( xSizeTransmitter.is() )
+            xSizeTransmitter->setDefaultSize( mpImp->aDefaultSizeForChart_In_100TH_MM );
+    }
 }
 
 void EmbeddedObjectRef::Clear()
@@ -902,4 +914,18 @@ BOOL EmbeddedObjectRef::IsChart() const
     return sal_False;
 }
 
+void EmbeddedObjectRef::SetDefaultSizeForChart( const Size& rSizeIn_100TH_MM )
+{
+    //#i103460# charts do not necessaryly have an own size within ODF files,
+    //for this case they need to use the size settings from the surrounding frame,
+    //which is made available with this method
+
+    mpImp->aDefaultSizeForChart_In_100TH_MM = awt::Size( rSizeIn_100TH_MM.getWidth(), rSizeIn_100TH_MM.getHeight() );
+
+    ::com::sun::star::uno::Reference < ::com::sun::star::chart2::XDefaultSizeTransmitter > xSizeTransmitter( mxObj, uno::UNO_QUERY );
+    DBG_ASSERT( xSizeTransmitter.is(), "Object does not support XDefaultSizeTransmitter -> will cause #i103460#!" );
+    if( xSizeTransmitter.is() )
+        xSizeTransmitter->setDefaultSize( mpImp->aDefaultSizeForChart_In_100TH_MM );
+}
+
 }


More information about the ooo-build-commit mailing list