[Libreoffice-commits] .: 167 commits - avmedia/source basic/inc basic/source basic/util connectivity/inc connectivity/qa connectivity/source desktop/source drawinglayer/inc drawinglayer/Library_drawinglayer.mk drawinglayer/Package_inc.mk drawinglayer/prj drawinglayer/source editeng/source formula/inc formula/source fpicker/source framework/inc framework/Library_fwe.mk framework/Library_fwk.mk framework/Package_inc.mk framework/source idl/source officecfg/registry oovbaapi/ooo readlicense_oo/docs scripting/source sfx2/inc sfx2/source svx/inc svx/source ucb/source uui/source vbahelper/inc vbahelper/Library_msforms.mk vbahelper/Library_vbahelper.mk vbahelper/Package_inc.mk vbahelper/source xmloff/inc xmloff/source

Jan Holesovsky kendy at kemper.freedesktop.org
Fri May 27 12:17:08 PDT 2011


 avmedia/source/gstreamer/makefile.mk                                        |    2 
 basic/inc/basic/sbxdef.hxx                                                  |    4 
 basic/inc/basic/vbahelper.hxx                                               |   49 
 basic/source/basmgr/vbahelper.cxx                                           |  158 +
 basic/source/classes/sb.cxx                                                 |   38 
 basic/source/classes/sbunoobj.cxx                                           |   39 
 basic/source/classes/sbxmod.cxx                                             |  119 +
 basic/source/comp/codegen.cxx                                               |    2 
 basic/source/comp/dim.cxx                                                   |    7 
 basic/source/comp/makefile.mk                                               |   12 
 basic/source/comp/sbcomp.cxx                                                |  675 +++++++
 basic/source/comp/symtbl.cxx                                                |    1 
 basic/source/comp/token.cxx                                                 |    6 
 basic/source/inc/codegen.hxx                                                |    3 
 basic/source/inc/namecont.hxx                                               |  194 +-
 basic/source/inc/runtime.hxx                                                |    2 
 basic/source/inc/sbtrace.hxx                                                |   13 
 basic/source/inc/scriptcont.hxx                                             |   16 
 basic/source/inc/symtbl.hxx                                                 |    3 
 basic/source/runtime/methods.cxx                                            |   54 
 basic/source/runtime/methods1.cxx                                           |    7 
 basic/source/runtime/rtlproto.hxx                                           |    1 
 basic/source/runtime/runtime.cxx                                            |   27 
 basic/source/runtime/stdobj.cxx                                             |    2 
 basic/source/runtime/step0.cxx                                              |    2 
 basic/source/runtime/step1.cxx                                              |    7 
 basic/source/runtime/step2.cxx                                              |    6 
 basic/source/uno/namecont.cxx                                               |  233 +-
 basic/util/makefile.mk                                                      |    3 
 connectivity/inc/connectivity/predicateinput.hxx                            |    8 
 connectivity/inc/connectivity/sqlnode.hxx                                   |    2 
 connectivity/qa/connectivity/tools/CRMDatabase.java                         |    5 
 connectivity/qa/makefile.mk                                                 |    9 
 connectivity/source/commontools/FValue.cxx                                  |   48 
 connectivity/source/commontools/predicateinput.cxx                          |  135 +
 connectivity/source/drivers/ado/AColumn.cxx                                 |    5 
 connectivity/source/drivers/ado/AConnection.cxx                             |    5 
 connectivity/source/drivers/ado/AResultSet.cxx                              |    2 
 connectivity/source/drivers/ado/ado.xcu                                     |    5 
 connectivity/source/drivers/dbase/DNoException.cxx                          |   15 
 connectivity/source/drivers/dbase/DTable.cxx                                |    2 
 connectivity/source/drivers/dbase/dindexnode.cxx                            |   13 
 connectivity/source/drivers/file/fcomp.cxx                                  |   17 
 connectivity/source/drivers/flat/ETable.cxx                                 |    5 
 connectivity/source/drivers/hsqldb/HDriver.cxx                              |   18 
 connectivity/source/drivers/hsqldb/HTerminateListener.cxx                   |    1 
 connectivity/source/drivers/jdbc/JConnection.cxx                            |    2 
 connectivity/source/drivers/jdbc/jdbc.xcu                                   |    5 
 connectivity/source/drivers/jdbc/tools.cxx                                  |    1 
 connectivity/source/drivers/macab/MacabRecord.cxx                           |    2 
 connectivity/source/drivers/odbc/odbc.xcu                                   |    5 
 connectivity/source/drivers/odbcbase/ODatabaseMetaDataResultSet.cxx         |   22 
 connectivity/source/drivers/odbcbase/OResultSet.cxx                         |   19 
 connectivity/source/drivers/odbcbase/OResultSetMetaData.cxx                 |    6 
 connectivity/source/drivers/odbcbase/OStatement.cxx                         |   14 
 connectivity/source/inc/hsqldb/HDriver.hxx                                  |    1 
 connectivity/source/parse/PColumn.cxx                                       |   16 
 connectivity/source/parse/sqlbison.y                                        |  474 +++++
 connectivity/source/parse/sqlflex.l                                         |   27 
 connectivity/source/parse/sqliterator.cxx                                   |   38 
 connectivity/source/parse/sqlnode.cxx                                       |    2 
 desktop/source/app/app.cxx                                                  |    8 
 desktop/source/deployment/dp_services.cxx                                   |    2 
 desktop/source/deployment/registry/component/dp_component.cxx               |   26 
 drawinglayer/Library_drawinglayer.mk                                        |    1 
 drawinglayer/Package_inc.mk                                                 |    1 
 drawinglayer/inc/drawinglayer/primitive2d/drawinglayer_primitivetypes2d.hxx |    1 
 drawinglayer/inc/drawinglayer/primitive2d/rendergraphicprimitive2d.hxx      |   95 +
 drawinglayer/inc/drawinglayer/processor2d/canvasprocessor.hxx               |    2 
 drawinglayer/inc/drawinglayer/processor2d/vclprocessor2d.hxx                |    2 
 drawinglayer/prj/d.lst                                                      |    2 
 drawinglayer/source/primitive2d/graphicprimitive2d.cxx                      |   69 
 drawinglayer/source/primitive2d/metafileprimitive2d.cxx                     |   28 
 drawinglayer/source/primitive2d/rendergraphicprimitive2d.cxx                |   92 +
 drawinglayer/source/processor2d/hittestprocessor2d.cxx                      |    2 
 drawinglayer/source/processor2d/linegeometryextractor2d.cxx                 |    1 
 drawinglayer/source/processor2d/textaspolygonextractor2d.cxx                |    1 
 drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx                  |    9 
 drawinglayer/source/processor2d/vclpixelprocessor2d.cxx                     |    7 
 drawinglayer/source/processor2d/vclprocessor2d.cxx                          |  127 +
 editeng/source/editeng/impedit2.cxx                                         |   22 
 formula/inc/formula/compiler.hrc                                            |  126 -
 formula/inc/formula/opcode.hxx                                              |    4 
 formula/inc/formula/token.hxx                                               |   20 
 formula/inc/formula/tokenarray.hxx                                          |    4 
 formula/source/core/api/token.cxx                                           |   67 
 formula/source/core/resource/core_resource.src                              |   24 
 fpicker/source/win32/filepicker/IVistaFilePickerInternalNotify.hxx          |    2 
 fpicker/source/win32/filepicker/VistaFilePicker.cxx                         |   16 
 fpicker/source/win32/filepicker/VistaFilePickerEventHandler.cxx             |   52 
 fpicker/source/win32/filepicker/VistaFilePickerImpl.cxx                     |   53 
 fpicker/source/win32/filepicker/VistaFilePickerImpl.hxx                     |   12 
 fpicker/source/win32/filepicker/WinFileOpenImpl.cxx                         |   33 
 fpicker/source/win32/filepicker/platform_vista.h                            |    1 
 fpicker/source/win32/filepicker/previewadapter.cxx                          |    2 
 framework/Library_fwe.mk                                                    |    2 
 framework/Library_fwk.mk                                                    |    2 
 framework/Package_inc.mk                                                    |    1 
 framework/inc/framework/imagesconfiguration.hxx                             |  128 -
 framework/inc/xml/imagesconfiguration.hxx                                   |  128 +
 framework/inc/xml/imagesdocumenthandler.hxx                                 |   10 
 framework/source/fwe/xml/imagesconfiguration.cxx                            |  227 --
 framework/source/fwe/xml/imagesdocumenthandler.cxx                          |  853 ----------
 framework/source/helper/persistentwindowstate.cxx                           |    5 
 framework/source/layoutmanager/toolbarlayoutmanager.cxx                     |    8 
 framework/source/uiconfiguration/imagemanager.cxx                           |    3 
 framework/source/uiconfiguration/imagemanagerimpl.cxx                       |    3 
 framework/source/uiconfiguration/moduleimagemanager.cxx                     |    3 
 framework/source/uielement/menubarmanager.cxx                               |   60 
 framework/source/xml/imagesconfiguration.cxx                                |  228 ++
 framework/source/xml/imagesdocumenthandler.cxx                              |  853 ++++++++++
 idl/source/objects/slot.cxx                                                 |    4 
 officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu           |    2 
 officecfg/registry/data/org/openoffice/Office/UI/WriterCommands.xcu         |    2 
 officecfg/registry/data/org/openoffice/Setup.xcu                            |    2 
 officecfg/registry/schema/org/openoffice/Office/Common.xcs                  |   47 
 oovbaapi/ooo/vba/XApplicationBase.idl                                       |    1 
 oovbaapi/ooo/vba/XCollectionBase.idl                                        |   56 
 oovbaapi/ooo/vba/XControlProvider.idl                                       |    2 
 oovbaapi/ooo/vba/XExecutableDialog.idl                                      |   58 
 oovbaapi/ooo/vba/excel/SheetObjects.idl                                     |   26 
 oovbaapi/ooo/vba/excel/XApplication.idl                                     |    4 
 oovbaapi/ooo/vba/excel/XWorkbook.idl                                        |    7 
 oovbaapi/ooo/vba/excel/XWorksheet.idl                                       |    3 
 oovbaapi/ooo/vba/excel/XWorksheets.idl                                      |    1 
 oovbaapi/ooo/vba/makefile.mk                                                |    2 
 oovbaapi/ooo/vba/msforms/XButton.idl                                        |    6 
 oovbaapi/ooo/vba/msforms/XCheckBox.idl                                      |    3 
 oovbaapi/ooo/vba/msforms/XComboBox.idl                                      |   18 
 oovbaapi/ooo/vba/msforms/XCommandButton.idl                                 |   56 
 oovbaapi/ooo/vba/msforms/XControl.idl                                       |    2 
 oovbaapi/ooo/vba/msforms/XFrame.idl                                         |   55 
 oovbaapi/ooo/vba/msforms/XGroupBox.idl                                      |    6 
 oovbaapi/ooo/vba/msforms/XLabel.idl                                         |    7 
 oovbaapi/ooo/vba/msforms/XListBox.idl                                       |   11 
 oovbaapi/ooo/vba/msforms/XNewFont.idl                                       |   57 
 oovbaapi/ooo/vba/msforms/XRadioButton.idl                                   |    7 
 oovbaapi/ooo/vba/msforms/XTextBox.idl                                       |   10 
 oovbaapi/ooo/vba/msforms/XToggleButton.idl                                  |    7 
 oovbaapi/ooo/vba/msforms/XUserForm.idl                                      |    2 
 oovbaapi/ooo/vba/msforms/makefile.mk                                        |    5 
 readlicense_oo/docs/readme.xsl                                              |   58 
 readlicense_oo/docs/readme/eval.xsl                                         |    2 
 readlicense_oo/docs/readme/readme.xrm                                       |    4 
 scripting/source/dlgprov/dlgevtatt.cxx                                      |   25 
 sfx2/inc/sfx2/dinfdlg.hxx                                                   |    3 
 sfx2/source/appl/appdata.cxx                                                |    2 
 sfx2/source/appl/appinit.cxx                                                |    8 
 sfx2/source/appl/appopen.cxx                                                |    5 
 sfx2/source/appl/appquit.cxx                                                |    3 
 sfx2/source/appl/sfx.src                                                    |   13 
 sfx2/source/appl/shutdowniconaqua.mm                                        |    1 
 sfx2/source/config/evntconf.cxx                                             |    2 
 sfx2/source/control/unoctitm.cxx                                            |    2 
 sfx2/source/dialog/dinfdlg.cxx                                              |   62 
 sfx2/source/dialog/dinfdlg.hrc                                              |    1 
 sfx2/source/dialog/dinfdlg.src                                              |   12 
 sfx2/source/dialog/filedlghelper.cxx                                        |    2 
 sfx2/source/doc/DocumentMetadataAccess.cxx                                  |   10 
 sfx2/source/doc/guisaveas.cxx                                               |    8 
 sfx2/source/doc/objstor.cxx                                                 |   42 
 sfx2/source/doc/objxtor.cxx                                                 |   98 -
 sfx2/source/inc/appdata.hxx                                                 |    3 
 svx/inc/svx/svdograf.hxx                                                    |    2 
 svx/inc/svx/svxids.hrc                                                      |    1 
 svx/inc/svx/xoutbmp.hxx                                                     |    1 
 svx/source/dialog/_bmpmask.cxx                                              |    3 
 svx/source/fmcomp/gridctrl.cxx                                              |   14 
 svx/source/form/fmobj.cxx                                                   |    4 
 svx/source/form/fmpage.cxx                                                  |    3 
 svx/source/form/fmpgeimp.cxx                                                |   76 
 svx/source/form/fmshell.cxx                                                 |    6 
 svx/source/gallery2/galtheme.cxx                                            |    1 
 svx/source/inc/fmpgeimp.hxx                                                 |    4 
 svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx                    |    3 
 svx/source/svdraw/svdedtv.cxx                                               |    6 
 svx/source/svdraw/svdfmtf.cxx                                               |   23 
 svx/source/svdraw/svdfmtf.hxx                                               |    5 
 svx/source/svdraw/svdograf.cxx                                              |   23 
 svx/source/svdraw/svdouno.cxx                                               |   65 
 svx/source/tbxctrls/grafctrl.cxx                                            |  148 +
 svx/source/xml/xmlgrhlp.cxx                                                 |    8 
 svx/source/xoutdev/_xoutbmp.cxx                                             |    6 
 ucb/source/ucp/gvfs/gvfs_content.cxx                                        |    2 
 uui/source/iahndl-ssl.cxx                                                   |   67 
 vbahelper/Library_msforms.mk                                                |   11 
 vbahelper/Library_vbahelper.mk                                              |   14 
 vbahelper/Package_inc.mk                                                    |    2 
 vbahelper/inc/vbahelper/collectionbase.hxx                                  |  214 ++
 vbahelper/inc/vbahelper/vbaapplicationbase.hxx                              |    1 
 vbahelper/inc/vbahelper/vbacollectionimpl.hxx                               |    4 
 vbahelper/inc/vbahelper/vbadocumentbase.hxx                                 |    1 
 vbahelper/inc/vbahelper/vbaeventshelperbase.hxx                             |   70 
 vbahelper/inc/vbahelper/vbahelper.hxx                                       |  123 -
 vbahelper/inc/vbahelper/vbawindowbase.hxx                                   |   37 
 vbahelper/inc/vbahelper/weakreference.hxx                                   |   94 +
 vbahelper/source/msforms/vbabutton.cxx                                      |   55 
 vbahelper/source/msforms/vbabutton.hxx                                      |   15 
 vbahelper/source/msforms/vbacheckbox.cxx                                    |   11 
 vbahelper/source/msforms/vbacheckbox.hxx                                    |    1 
 vbahelper/source/msforms/vbacombobox.cxx                                    |  117 +
 vbahelper/source/msforms/vbacombobox.hxx                                    |   14 
 vbahelper/source/msforms/vbacontrol.cxx                                     |  133 -
 vbahelper/source/msforms/vbacontrol.hxx                                     |   24 
 vbahelper/source/msforms/vbacontrols.cxx                                    |  187 +-
 vbahelper/source/msforms/vbacontrols.hxx                                    |   27 
 vbahelper/source/msforms/vbaframe.cxx                                       |   83 
 vbahelper/source/msforms/vbaframe.hxx                                       |   30 
 vbahelper/source/msforms/vbalabel.cxx                                       |   11 
 vbahelper/source/msforms/vbalabel.hxx                                       |    1 
 vbahelper/source/msforms/vbalistbox.cxx                                     |    9 
 vbahelper/source/msforms/vbalistbox.hxx                                     |    3 
 vbahelper/source/msforms/vbamultipage.cxx                                   |    9 
 vbahelper/source/msforms/vbamultipage.hxx                                   |    9 
 vbahelper/source/msforms/vbanewfont.cxx                                     |  160 +
 vbahelper/source/msforms/vbanewfont.hxx                                     |   73 
 vbahelper/source/msforms/vbaradiobutton.cxx                                 |   10 
 vbahelper/source/msforms/vbaradiobutton.hxx                                 |    1 
 vbahelper/source/msforms/vbatextbox.cxx                                     |   41 
 vbahelper/source/msforms/vbatextbox.hxx                                     |    6 
 vbahelper/source/msforms/vbatogglebutton.cxx                                |   54 
 vbahelper/source/msforms/vbatogglebutton.hxx                                |   12 
 vbahelper/source/msforms/vbauserform.cxx                                    |   36 
 vbahelper/source/msforms/vbauserform.hxx                                    |   14 
 vbahelper/source/vbahelper/collectionbase.cxx                               |  332 +++
 vbahelper/source/vbahelper/vbaapplicationbase.cxx                           |   27 
 vbahelper/source/vbahelper/vbacommandbar.cxx                                |    9 
 vbahelper/source/vbahelper/vbacommandbarcontrol.cxx                         |   74 
 vbahelper/source/vbahelper/vbacommandbarcontrol.hxx                         |   11 
 vbahelper/source/vbahelper/vbacommandbarcontrols.cxx                        |   27 
 vbahelper/source/vbahelper/vbacommandbarcontrols.hxx                        |   21 
 vbahelper/source/vbahelper/vbacommandbarhelper.hxx                          |    1 
 vbahelper/source/vbahelper/vbadocumentbase.cxx                              |   16 
 vbahelper/source/vbahelper/vbaeventshelperbase.cxx                          |  247 ++
 vbahelper/source/vbahelper/vbahelper.cxx                                    |  687 ++++----
 vbahelper/source/vbahelper/vbawindowbase.cxx                                |  142 -
 xmloff/inc/xmloff/PageMasterStyleMap.hxx                                    |   17 
 xmloff/inc/xmloff/txtprmap.hxx                                              |    8 
 xmloff/inc/xmloff/xmlmetai.hxx                                              |   10 
 xmloff/inc/xmloff/xmltoken.hxx                                              |    2 
 xmloff/source/core/xmltoken.cxx                                             |    2 
 xmloff/source/draw/sdxmlimp.cxx                                             |   17 
 xmloff/source/forms/elementimport.cxx                                       |    4 
 xmloff/source/meta/xmlmetai.cxx                                             |  113 -
 xmloff/source/style/PageMasterExportPropMapper.cxx                          |   44 
 xmloff/source/style/PageMasterImportPropMapper.cxx                          |   75 
 xmloff/source/style/PageMasterStyleMap.cxx                                  |   25 
 xmloff/source/text/txtexppr.cxx                                             |  121 -
 xmloff/source/text/txtfldi.cxx                                              |    2 
 xmloff/source/text/txtimppr.cxx                                             |   78 
 xmloff/source/text/txtprmap.cxx                                             |   23 
 251 files changed, 7947 insertions(+), 3253 deletions(-)

New commits:
commit ba66efa784c5dfaa58e3f3179ecbae06a11a0a1e
Merge: 9aad9cf... ecbd796...
Author: Jan Holesovsky <kendy at suse.cz>
Date:   Fri May 27 20:49:48 2011 +0200

    Merge branch 'master' of git://anongit.freedesktop.org/libreoffice/libs-core

commit 9aad9cf77f93f6a689731972d97f2acc04527422
Merge: fde37c1... a019d3e...
Author: Jan Holesovsky <kendy at suse.cz>
Date:   Fri May 27 20:46:20 2011 +0200

    Merge remote-tracking branch 'origin/integration/dev300_m106'
    
    Conflicts:
    	basic/source/classes/sbunoobj.cxx
    	basic/source/inc/runtime.hxx
    	basic/source/runtime/step1.cxx
    	desktop/source/deployment/dp_services.cxx
    	drawinglayer/prj/d.lst
    	drawinglayer/source/primitive2d/makefile.mk
    	sfx2/source/appl/appinit.cxx
    	sfx2/source/appl/appquit.cxx
    	sfx2/source/inc/appdata.hxx
    	sfx2/source/view/viewfrm.cxx
    	svx/source/fmcomp/gridctrl.cxx
    	vbahelper/source/vbahelper/vbahelper.cxx

diff --cc basic/inc/basic/vbahelper.hxx
index 451d15c,093d41f..deb8012
--- a/basic/inc/basic/vbahelper.hxx
+++ b/basic/inc/basic/vbahelper.hxx
@@@ -39,6 -41,21 +41,21 @@@ namespace vba 
   
  // ============================================================================
  
+ /** Creates and returns an enumeration of all open documents of the same type
+     as the specified document.
 -    
++
+     First, the global module manager (com.sun.star.frame.ModuleManager) is
+     asked for the type of the passed model, and all open documents with the
+     same type will be stored in an enumeration object.
 -    
++
+     @param rxModel
+         A document model determining the type of the documents.
+  */
+ ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > createDocumentsEnumeration(
+     const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >& rxModel );
+ 
+ // ============================================================================
+ 
  /** Locks or unlocks the controllers of all documents that have the same type
      as the specified document.
  
@@@ -80,6 -97,38 +97,38 @@@ void enableContainerWindowsOfAllDocumen
  
  // ============================================================================
  
+ /** Registers the passed path as working directory for the application the
+     passed document belongs to.
 -    
++
+     @param rxModel
+         A document model determining the type of the application whose working
+         directory has been changed.
 -        
++
+     @param rPath
+         The new working directory.
+  */
+ void registerCurrentDirectory(
+     const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >& rxModel,
+     const ::rtl::OUString& rPath );
+ 
+ // ============================================================================
+ 
+ /** Returns the working directory of the application the passed document
+     belongs to.
+ 
+     @param rxModel
+         A document model determining the type of the application whose working
+         directory is querried.
+ 
+     @return
+         The working directory of the specified application, or an empty string
+         on error (e.g. if the passed document reference is empty).
+  */
+ ::rtl::OUString getCurrentDirectory(
+     const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >& rxModel );
+ 
+ // ============================================================================
+ 
  } // namespace vba
  } // namespace basic
  
diff --cc basic/source/classes/sbxmod.cxx
index d503cef,4f0fe18..1e6b59e
--- a/basic/source/classes/sbxmod.cxx
+++ b/basic/source/classes/sbxmod.cxx
@@@ -2451,8 -2517,7 +2517,7 @@@ void SbUserFormModule::triggerMethod( c
      // Search method
      SbxVariable* pMeth = SbObjModule::Find( aMethodToRun, SbxCLASS_METHOD );
      if( pMeth )
 -    {		
 +    {
- 
          if ( aArguments.getLength() > 0 )   // Setup parameters
          {
              SbxArrayRef xArray = new SbxArray;
diff --cc basic/source/inc/namecont.hxx
index 3d4a1ff,5c19d3b..b9bfd9b
--- a/basic/source/inc/namecont.hxx
+++ b/basic/source/inc/namecont.hxx
@@@ -738,30 -781,33 +781,33 @@@ protected
      com::sun::star::uno::Reference< com::sun::star::deployment::XPackage >
          implGetNextBundledScriptPackage( bool& rbPureDialogLib );
  
-     com::sun::star::uno::Reference< com::sun::star::uno::XComponentContext >	m_xContext;
+     com::sun::star::uno::Reference< com::sun::star::uno::XComponentContext > m_xContext;
 -    
 +
-     IteratorState																m_eState;
+     enum IteratorState
+     {
+         USER_EXTENSIONS,
+         SHARED_EXTENSIONS,
+         BUNDLED_EXTENSIONS,
+         END_REACHED
+     } m_eState;
  
      com::sun::star::uno::Sequence< com::sun::star::uno::Reference
-         < com::sun::star::deployment::XPackage > >								m_aUserPackagesSeq;
-     bool																		m_bUserPackagesLoaded;
+         < com::sun::star::deployment::XPackage > > m_aUserPackagesSeq;
+     bool m_bUserPackagesLoaded;
  
      com::sun::star::uno::Sequence< com::sun::star::uno::Reference
-         < com::sun::star::deployment::XPackage > >								m_aSharedPackagesSeq;
-     bool																		m_bSharedPackagesLoaded;
+         < com::sun::star::deployment::XPackage > > m_aSharedPackagesSeq;
+     bool m_bSharedPackagesLoaded;
  
        com::sun::star::uno::Sequence< com::sun::star::uno::Reference
-         < com::sun::star::deployment::XPackage > >								m_aBundledPackagesSeq;
-     bool																		m_bBundledPackagesLoaded;
- 
+         < com::sun::star::deployment::XPackage > > m_aBundledPackagesSeq;
+     bool m_bBundledPackagesLoaded;
  
-     int																			m_iUserPackage;
-     int																			m_iSharedPackage;
-        int																			m_iBundledPackage;
+     int m_iUserPackage;
+     int m_iSharedPackage;
+        int m_iBundledPackage;
  
- 
- 
-     ScriptSubPackageIterator*													m_pScriptSubPackageIterator;
+     ScriptSubPackageIterator* m_pScriptSubPackageIterator;
  
  }; // end class ScriptExtensionIterator
  
diff --cc basic/source/uno/namecont.cxx
index 444a4ed,097ec93..5a52b81
--- a/basic/source/uno/namecont.cxx
+++ b/basic/source/uno/namecont.cxx
@@@ -2919,11 -3002,14 +3002,14 @@@ Any SAL_CALL SfxLibrary::queryInterface
  {
      Any aRet;
  
-     aRet = Any( ::cppu::queryInterface( rType,
-         static_cast< XContainer * >( this ),
-         static_cast< XNameContainer * >( this ),
-         static_cast< XNameAccess * >( this ) ) );
- 
 -    aRet = Any( 
 -        ::cppu::queryInterface( 
++    aRet = Any(
++        ::cppu::queryInterface(
+             rType,
+             static_cast< XContainer * >( this ),
+             static_cast< XNameContainer * >( this ),
+             static_cast< XNameAccess * >( this ),
+             static_cast< XElementAccess * >( this ),
+             static_cast< XChangesNotifier * >( this ) ) );
      if( !aRet.hasValue() )
          aRet = OComponentHelper::queryInterface( rType );
      return aRet;
diff --cc connectivity/qa/connectivity/tools/CRMDatabase.java
index aa5811e,0e55318..c6287bd
--- a/connectivity/qa/connectivity/tools/CRMDatabase.java
+++ b/connectivity/qa/connectivity/tools/CRMDatabase.java
@@@ -284,9 -286,10 +286,10 @@@ public class CRMDatabas
  
          m_database.getDataSource().createQuery( "parseable", "SELECT * FROM \"customers\"" );
          m_database.getDataSource().createQuery( "parseable native", "SELECT * FROM INFORMATION_SCHEMA.SYSTEM_VIEWS", false );
 -/*        
++/*
          m_database.getDataSource().createQuery( "unparseable",
              "SELECT {fn DAYOFMONTH ('2001-01-01')} AS \"ID_VARCHAR\" FROM \"products\"", false );
- 
+ */
          validateUnparseable();
      }
  }
diff --cc connectivity/source/commontools/FValue.cxx
index 8661c0f,4864716..1f49fc6
--- a/connectivity/source/commontools/FValue.cxx
+++ b/connectivity/source/commontools/FValue.cxx
@@@ -809,10 -825,24 +825,24 @@@ bool ORowSetValue::operator==(const ORo
          {
              ::rtl::OUString aVal1(m_aValue.m_pString);
              ::rtl::OUString aVal2(_rRH.m_aValue.m_pString);
-             bRet = aVal1 == aVal2;
-             break;
+             return aVal1 == aVal2;
          }
+         default:
+             if ( m_bSigned != _rRH.m_bSigned )
+                 return false;
+             break;
+     }
 -    
 +
+     switch(m_eTypeKind)
+     {
+         case DataType::DECIMAL:
+         case DataType::NUMERIC:
+             {
+                 ::rtl::OUString aVal1(m_aValue.m_pString);
+                 ::rtl::OUString aVal2(_rRH.m_aValue.m_pString);
+                 bRet = aVal1 == aVal2;
+             }
+             break;
          case DataType::FLOAT:
              bRet = *(float*)m_aValue.m_pValue == *(float*)_rRH.m_aValue.m_pValue;
              break;
diff --cc connectivity/source/commontools/predicateinput.cxx
index a4bd5ae,0c264e0..1bba5da
--- a/connectivity/source/commontools/predicateinput.cxx
+++ b/connectivity/source/commontools/predicateinput.cxx
@@@ -326,50 -328,102 +328,102 @@@ namespace dbtool
  
              ::rtl::OUString sError;
              OSQLParseNode* pParseNode = implPredicateTree( sError, sValue, _rxField );
-             if ( _pErrorMessage ) *_pErrorMessage = sError;
 -            if ( _pErrorMessage ) 
++            if ( _pErrorMessage )
+                 *_pErrorMessage = sError;
  
-             if ( pParseNode )
+             sReturn = implParseNode(pParseNode,_bForStatementUse);
+         }
+ 
+         return sReturn;
+     }
+ 
+     ::rtl::OUString OPredicateInputController::getPredicateValue(
+         const ::rtl::OUString& _sField, const ::rtl::OUString& _rPredicateValue, sal_Bool _bForStatementUse, ::rtl::OUString* _pErrorMessage ) const
+     {
+         ::rtl::OUString sReturn = _rPredicateValue;
+         ::rtl::OUString sError;
+         ::rtl::OUString sField = _sField;
+         sal_Int32 nIndex = 0;
+         sField = sField.getToken(0,'(',nIndex);
+         if(nIndex == -1)
+             sField = _sField;
+         sal_Int32 nType = ::connectivity::OSQLParser::getFunctionReturnType(sField,&m_aParser.getContext());
+         if ( nType == DataType::OTHER || !sField.getLength() )
+         {
+             // first try the international version
+             ::rtl::OUString sSql;
+             sSql += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SELECT * "));
+             sSql += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" FROM x WHERE "));
+             sSql += sField;
+             sSql += _rPredicateValue;
+             ::std::auto_ptr<OSQLParseNode> pParseNode( const_cast< OSQLParser& >( m_aParser ).parseTree( sError, sSql, sal_True ) );
+             nType = DataType::DOUBLE;
+             if ( pParseNode.get() )
              {
-                 OSQLParseNode* pOdbcSpec = pParseNode->getByRule( OSQLParseNode::odbc_fct_spec );
-                 if ( pOdbcSpec )
+                 OSQLParseNode* pColumnRef = pParseNode->getByRule(OSQLParseNode::column_ref);
+                 if ( pColumnRef )
                  {
-                     if ( !_bForStatementUse )
-                     {
-                         if	(	( pOdbcSpec->count() >= 2 )
-                             &&	( SQL_NODE_STRING == pOdbcSpec->getChild(1)->getNodeType() )
-                             )
-                         {
+                 }
+             }
+         }
  
-                             sReturn = pOdbcSpec->getChild(1)->getTokenValue();
-                         }
-                         else
-                             OSL_FAIL( "OPredicateInputController::getPredicateValue: unknown/invalid structure (odbc + param use)!" );
-                     }
-                     else
-                     {
-                         OSQLParseNode* pFuncSpecParent = pOdbcSpec->getParent();
-                         OSL_ENSURE( pFuncSpecParent, "OPredicateInputController::getPredicateValue: an ODBC func spec node without parent?" );
-                         if ( pFuncSpecParent )
-                             pFuncSpecParent->parseNodeToStr(
-                                 sReturn, m_xConnection, &m_aParser.getContext(), sal_False, sal_True
-                             );
-                     }
+         Reference<XDatabaseMetaData> xMeta = m_xConnection->getMetaData();
+         parse::OParseColumn* pColumn = new parse::OParseColumn(	sField,
+                                                                 ::rtl::OUString(),
+                                                                 ::rtl::OUString(),
+                                                                 ::rtl::OUString(),
+                                                                 ColumnValue::NULLABLE_UNKNOWN,
+                                                                 0,
+                                                                 0,
+                                                                 nType,
+                                                                 sal_False,
+                                                                 sal_False,
+                                                                 xMeta.is() && xMeta->supportsMixedCaseQuotedIdentifiers());
+         Reference<XPropertySet> xColumn = pColumn;
+         pColumn->setFunction(sal_True);
+         pColumn->setRealName(sField);
 -        
++
+         OSQLParseNode* pParseNode = implPredicateTree( sError, _rPredicateValue, xColumn );
 -        if ( _pErrorMessage ) 
++        if ( _pErrorMessage )
+             *_pErrorMessage = sError;
+         return pParseNode ? implParseNode(pParseNode,_bForStatementUse) : sReturn;
+     }
+ 
+     ::rtl::OUString OPredicateInputController::implParseNode(OSQLParseNode* pParseNode,sal_Bool _bForStatementUse) const
+     {
+         ::rtl::OUString sReturn;
+         if ( pParseNode )
+         {
+             ::std::auto_ptr<OSQLParseNode> pTemp(pParseNode);
+             OSQLParseNode* pOdbcSpec = pParseNode->getByRule( OSQLParseNode::odbc_fct_spec );
+             if ( pOdbcSpec )
+             {
+                 if ( _bForStatementUse )
+                 {
+                     OSQLParseNode* pFuncSpecParent = pOdbcSpec->getParent();
+                     OSL_ENSURE( pFuncSpecParent, "OPredicateInputController::getPredicateValue: an ODBC func spec node without parent?" );
+                     if ( pFuncSpecParent )
 -                        pFuncSpecParent->parseNodeToStr(sReturn, m_xConnection, &m_aParser.getContext(), sal_False, sal_True);						
++                        pFuncSpecParent->parseNodeToStr(sReturn, m_xConnection, &m_aParser.getContext(), sal_False, sal_True);
                  }
                  else
                  {
-                     if	( pParseNode->count() >= 3 )
+                     OSQLParseNode* pValueNode = pOdbcSpec->getChild(1);
+                     if ( SQL_NODE_STRING == pValueNode->getNodeType() )
+                         sReturn = pValueNode->getTokenValue();
+                     else
 -                        pValueNode->parseNodeToStr(sReturn, m_xConnection, &m_aParser.getContext(), sal_False, sal_True);						
++                        pValueNode->parseNodeToStr(sReturn, m_xConnection, &m_aParser.getContext(), sal_False, sal_True);
+                 }
+             }
+             else
+             {
+                 if	( pParseNode->count() >= 3 )
+                 {
+                     OSQLParseNode* pValueNode = pParseNode->getChild(2);
+                     OSL_ENSURE( pValueNode, "OPredicateInputController::getPredicateValue: invalid node child!" );
+                     if ( !_bForStatementUse )
                      {
-                         OSQLParseNode* pValueNode = pParseNode->getChild(2);
-                         OSL_ENSURE( pValueNode, "OPredicateInputController::getPredicateValue: invalid node child!" );
-                         if ( !_bForStatementUse )
-                         {
-                             if ( SQL_NODE_STRING == pValueNode->getNodeType() )
-                                 sReturn = pValueNode->getTokenValue();
-                             else
-                                 pValueNode->parseNodeToStr(
-                                     sReturn, m_xConnection, &m_aParser.getContext(), sal_False, sal_True
-                                 );
-                         }
+                         if ( SQL_NODE_STRING == pValueNode->getNodeType() )
+                             sReturn = pValueNode->getTokenValue();
                          else
                              pValueNode->parseNodeToStr(
                                  sReturn, m_xConnection, &m_aParser.getContext(), sal_False, sal_True
diff --cc connectivity/source/drivers/odbcbase/OResultSet.cxx
index c454823,06a225c..59273ac
--- a/connectivity/source/drivers/odbcbase/OResultSet.cxx
+++ b/connectivity/source/drivers/odbcbase/OResultSet.cxx
@@@ -1373,10 -1377,15 +1377,15 @@@ void OResultSet::setFetchDirection(sal_
  //------------------------------------------------------------------------------
  void OResultSet::setFetchSize(sal_Int32 _par0)
  {
-     N3SQLSetStmtAttr(m_aStatementHandle,SQL_ATTR_ROW_ARRAY_SIZE,(SQLPOINTER)(sal_IntPtr)_par0,SQL_IS_UINTEGER);
-     delete m_pRowStatusArray;
-     m_pRowStatusArray = new SQLUSMALLINT[_par0];
-     N3SQLSetStmtAttr(m_aStatementHandle,SQL_ATTR_ROW_STATUS_PTR,m_pRowStatusArray,SQL_IS_POINTER);
+     OSL_ENSURE(_par0>0,"Illegal fetch size!");
+     if ( _par0 > 0 )
+     {
+         N3SQLSetStmtAttr(m_aStatementHandle,SQL_ATTR_ROW_ARRAY_SIZE,(SQLPOINTER)(sal_IntPtr)_par0,SQL_IS_UINTEGER);
+         delete m_pRowStatusArray;
 -    
++
+         m_pRowStatusArray = new SQLUSMALLINT[_par0];
+         N3SQLSetStmtAttr(m_aStatementHandle,SQL_ATTR_ROW_STATUS_PTR,m_pRowStatusArray,SQL_IS_POINTER);
+     }
  }
  // -------------------------------------------------------------------------
  IPropertyArrayHelper* OResultSet::createArrayHelper( ) const
diff --cc desktop/source/deployment/dp_services.cxx
index a992ce2,cee0c9c..07ee2e6
--- a/desktop/source/deployment/dp_services.cxx
+++ b/desktop/source/deployment/dp_services.cxx
@@@ -85,9 -85,7 +85,7 @@@ bool singleton_entries( uno::Reference<
  
  extern "C" {
  
- struct uno_Environment;
- 
 -void SAL_CALL component_getImplementationEnvironment(
 +SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment(
      const sal_Char ** ppEnvTypeName, uno_Environment ** )
  {
      *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
diff --cc drawinglayer/Library_drawinglayer.mk
index fa9cef0,0000000..7aab083
mode 100644,000000..100644
--- a/drawinglayer/Library_drawinglayer.mk
+++ b/drawinglayer/Library_drawinglayer.mk
@@@ -1,181 -1,0 +1,182 @@@
 +# Version: MPL 1.1 / GPLv3+ / LGPLv3+
 +#
 +# The contents of this file are subject to the Mozilla Public License Version
 +# 1.1 (the "License"); you may not use this file except in compliance with
 +# the License or as specified alternatively below. You may obtain a copy of
 +# the License at http://www.mozilla.org/MPL/
 +#
 +# Software distributed under the License is distributed on an "AS IS" basis,
 +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
 +# for the specific language governing rights and limitations under the
 +# License.
 +#
 +# The Initial Developer of the Original Code is
 +#       David Tardon, Red Hat Inc. <dtardon at redhat.com>
 +# Portions created by the Initial Developer are Copyright (C) 2010 the
 +# Initial Developer. All Rights Reserved.
 +#
 +# Major Contributor(s):
 +#
 +# For minor contributions see the git repository.
 +#
 +# Alternatively, the contents of this file may be used under the terms of
 +# either the GNU General Public License Version 3 or later (the "GPLv3+"), or
 +# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
 +# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
 +# instead of those above.
 +
 +$(eval $(call gb_Library_Library,drawinglayer))
 +
 +$(eval $(call gb_Library_add_package_headers,drawinglayer,drawinglayer_inc))
 +
 +$(eval $(call gb_Library_add_precompiled_header,drawinglayer,$(SRCDIR)/drawinglayer/inc/pch/precompiled_drawinglayer))
 +
 +$(eval $(call gb_Library_set_include,drawinglayer,\
 +    $$(INCLUDE) \
 +    -I$(realpath $(SRCDIR)/drawinglayer/inc/pch) \
 +    -I$(OUTDIR)/inc \
 +    -I$(OUTDIR)/inc/offuh \
 +))
 +
 +$(eval $(call gb_Library_set_defs,drawinglayer,\
 +	$$(DEFS) \
 +	-DDRAWINGLAYER_DLLIMPLEMENTATION \
 +))
 +
 +$(eval $(call gb_Library_add_linked_libs,drawinglayer,\
 +    avmedia \
 +    basegfx \
 +    canvastools \
 +    comphelper \
 +    cppcanvas \
 +    cppu \
 +    cppuhelper \
 +    i18nisolang1 \
 +    sal \
 +    svl \
 +    svt \
 +    tk \
 +    tl \
 +    vcl \
 +    $(gb_STDLIBS) \
 +))
 +
 +$(eval $(call gb_Library_add_exception_objects,drawinglayer,\
 +    drawinglayer/source/animation/animationtiming \
 +    drawinglayer/source/attribute/fillbitmapattribute \
 +    drawinglayer/source/attribute/fillgradientattribute \
 +    drawinglayer/source/attribute/fillhatchattribute \
 +    drawinglayer/source/attribute/fontattribute \
 +    drawinglayer/source/attribute/lineattribute \
 +    drawinglayer/source/attribute/linestartendattribute \
 +    drawinglayer/source/attribute/materialattribute3d \
 +    drawinglayer/source/attribute/sdrallattribute3d \
 +    drawinglayer/source/attribute/sdrfillattribute \
 +    drawinglayer/source/attribute/sdrfillbitmapattribute \
 +    drawinglayer/source/attribute/sdrlightattribute3d \
 +    drawinglayer/source/attribute/sdrlightingattribute3d \
 +    drawinglayer/source/attribute/sdrlineattribute \
 +    drawinglayer/source/attribute/sdrlinestartendattribute \
 +    drawinglayer/source/attribute/sdrobjectattribute3d \
 +    drawinglayer/source/attribute/sdrsceneattribute3d \
 +    drawinglayer/source/attribute/sdrshadowattribute \
 +    drawinglayer/source/attribute/strokeattribute \
 +    drawinglayer/source/primitive2d/animatedprimitive2d \
 +    drawinglayer/source/primitive2d/backgroundcolorprimitive2d \
 +    drawinglayer/source/primitive2d/baseprimitive2d \
 +    drawinglayer/source/primitive2d/bitmapprimitive2d \
 +    drawinglayer/source/primitive2d/borderlineprimitive2d \
 +    drawinglayer/source/primitive2d/chartprimitive2d \
 +    drawinglayer/source/primitive2d/clippedborderlineprimitive2d \
 +    drawinglayer/source/primitive2d/controlprimitive2d \
 +    drawinglayer/source/primitive2d/discretebitmapprimitive2d \
 +    drawinglayer/source/primitive2d/discreteshadowprimitive2d \
 +    drawinglayer/source/primitive2d/embedded3dprimitive2d \
 +    drawinglayer/source/primitive2d/epsprimitive2d \
 +    drawinglayer/source/primitive2d/fillbitmapprimitive2d \
 +    drawinglayer/source/primitive2d/fillgradientprimitive2d \
 +    drawinglayer/source/primitive2d/fillhatchprimitive2d \
 +    drawinglayer/source/primitive2d/graphicprimitive2d \
 +    drawinglayer/source/primitive2d/gridprimitive2d \
 +    drawinglayer/source/primitive2d/groupprimitive2d \
 +    drawinglayer/source/primitive2d/helplineprimitive2d \
 +    drawinglayer/source/primitive2d/hiddengeometryprimitive2d \
 +    drawinglayer/source/primitive2d/invertprimitive2d \
 +    drawinglayer/source/primitive2d/markerarrayprimitive2d \
 +    drawinglayer/source/primitive2d/maskprimitive2d \
 +    drawinglayer/source/primitive2d/mediaprimitive2d \
 +    drawinglayer/source/primitive2d/metafileprimitive2d \
 +    drawinglayer/source/primitive2d/modifiedcolorprimitive2d \
 +    drawinglayer/source/primitive2d/pagepreviewprimitive2d \
 +    drawinglayer/source/primitive2d/pointarrayprimitive2d \
 +    drawinglayer/source/primitive2d/polygonprimitive2d \
 +    drawinglayer/source/primitive2d/polypolygonprimitive2d \
 +    drawinglayer/source/primitive2d/primitivetools2d \
++    drawinglayer/source/primitive2d/rendergraphicprimitive2d \
 +    drawinglayer/source/primitive2d/sceneprimitive2d \
 +    drawinglayer/source/primitive2d/sdrdecompositiontools2d \
 +    drawinglayer/source/primitive2d/shadowprimitive2d \
 +    drawinglayer/source/primitive2d/structuretagprimitive2d \
 +    drawinglayer/source/primitive2d/textdecoratedprimitive2d \
 +    drawinglayer/source/primitive2d/texteffectprimitive2d \
 +    drawinglayer/source/primitive2d/textenumsprimitive2d \
 +    drawinglayer/source/primitive2d/texthierarchyprimitive2d \
 +    drawinglayer/source/primitive2d/textlayoutdevice \
 +    drawinglayer/source/primitive2d/textlineprimitive2d \
 +    drawinglayer/source/primitive2d/textprimitive2d \
 +    drawinglayer/source/primitive2d/textstrikeoutprimitive2d \
 +    drawinglayer/source/primitive2d/transformprimitive2d \
 +    drawinglayer/source/primitive2d/transparenceprimitive2d \
 +    drawinglayer/source/primitive2d/unifiedtransparenceprimitive2d \
 +    drawinglayer/source/primitive2d/wallpaperprimitive2d \
 +    drawinglayer/source/primitive2d/wrongspellprimitive2d \
 +    drawinglayer/source/primitive3d/baseprimitive3d \
 +    drawinglayer/source/primitive3d/groupprimitive3d \
 +    drawinglayer/source/primitive3d/hatchtextureprimitive3d \
 +    drawinglayer/source/primitive3d/hiddengeometryprimitive3d \
 +    drawinglayer/source/primitive3d/modifiedcolorprimitive3d \
 +    drawinglayer/source/primitive3d/polygonprimitive3d \
 +    drawinglayer/source/primitive3d/polygontubeprimitive3d \
 +    drawinglayer/source/primitive3d/polypolygonprimitive3d \
 +    drawinglayer/source/primitive3d/sdrcubeprimitive3d \
 +    drawinglayer/source/primitive3d/sdrdecompositiontools3d \
 +    drawinglayer/source/primitive3d/sdrextrudelathetools3d \
 +    drawinglayer/source/primitive3d/sdrextrudeprimitive3d \
 +    drawinglayer/source/primitive3d/sdrlatheprimitive3d \
 +    drawinglayer/source/primitive3d/sdrpolypolygonprimitive3d \
 +    drawinglayer/source/primitive3d/sdrprimitive3d \
 +    drawinglayer/source/primitive3d/sdrsphereprimitive3d \
 +    drawinglayer/source/primitive3d/shadowprimitive3d \
 +    drawinglayer/source/primitive3d/textureprimitive3d \
 +    drawinglayer/source/primitive3d/transformprimitive3d \
 +    drawinglayer/source/processor2d/baseprocessor2d \
 +    drawinglayer/source/processor2d/canvasprocessor \
 +    drawinglayer/source/processor2d/contourextractor2d \
 +    drawinglayer/source/processor2d/helperchartrenderer \
 +    drawinglayer/source/processor2d/helperwrongspellrenderer \
 +    drawinglayer/source/processor2d/hittestprocessor2d \
 +    drawinglayer/source/processor2d/linegeometryextractor2d \
 +    drawinglayer/source/processor2d/textaspolygonextractor2d \
 +    drawinglayer/source/processor2d/vclhelperbitmaprender \
 +    drawinglayer/source/processor2d/vclhelperbitmaptransform \
 +    drawinglayer/source/processor2d/vclhelperbufferdevice \
 +    drawinglayer/source/processor2d/vclhelpergradient \
 +    drawinglayer/source/processor2d/vclmetafileprocessor2d \
 +    drawinglayer/source/processor2d/vclpixelprocessor2d \
 +    drawinglayer/source/processor2d/vclprocessor2d \
 +    drawinglayer/source/processor3d/baseprocessor3d \
 +    drawinglayer/source/processor3d/cutfindprocessor3d \
 +    drawinglayer/source/processor3d/defaultprocessor3d \
 +    drawinglayer/source/processor3d/geometry2dextractor \
 +    drawinglayer/source/processor3d/shadow3dextractor \
 +    drawinglayer/source/processor3d/zbufferprocessor3d \
 +    drawinglayer/source/texture/texture3d \
 +    drawinglayer/source/texture/texture \
 +))
 +
 +$(eval $(call gb_Library_add_noexception_objects,drawinglayer,\
 +    drawinglayer/source/geometry/viewinformation2d \
 +    drawinglayer/source/geometry/viewinformation3d \
 +))
 +
 +# vim: set noet ts=4 sw=4:
diff --cc drawinglayer/Package_inc.mk
index d4c81dc,0000000..df4a75b
mode 100644,000000..100644
--- a/drawinglayer/Package_inc.mk
+++ b/drawinglayer/Package_inc.mk
@@@ -1,139 -1,0 +1,140 @@@
 +# Version: MPL 1.1 / GPLv3+ / LGPLv3+
 +#
 +# The contents of this file are subject to the Mozilla Public License Version
 +# 1.1 (the "License"); you may not use this file except in compliance with
 +# the License or as specified alternatively below. You may obtain a copy of
 +# the License at http://www.mozilla.org/MPL/
 +#
 +# Software distributed under the License is distributed on an "AS IS" basis,
 +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
 +# for the specific language governing rights and limitations under the
 +# License.
 +#
 +# The Initial Developer of the Original Code is
 +#       David Tardon, Red Hat Inc. <dtardon at redhat.com>
 +# Portions created by the Initial Developer are Copyright (C) 2010 the
 +# Initial Developer. All Rights Reserved.
 +#
 +# Major Contributor(s):
 +#
 +# For minor contributions see the git repository.
 +#
 +# Alternatively, the contents of this file may be used under the terms of
 +# either the GNU General Public License Version 3 or later (the "GPLv3+"), or
 +# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
 +# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
 +# instead of those above.
 +
 +$(eval $(call gb_Package_Package,drawinglayer_inc,$(SRCDIR)/drawinglayer/inc))
 +
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/animation/animationtiming.hxx,drawinglayer/animation/animationtiming.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/attribute/fillbitmapattribute.hxx,drawinglayer/attribute/fillbitmapattribute.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/attribute/fillgradientattribute.hxx,drawinglayer/attribute/fillgradientattribute.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/attribute/fillhatchattribute.hxx,drawinglayer/attribute/fillhatchattribute.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/attribute/fontattribute.hxx,drawinglayer/attribute/fontattribute.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/attribute/lineattribute.hxx,drawinglayer/attribute/lineattribute.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/attribute/linestartendattribute.hxx,drawinglayer/attribute/linestartendattribute.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/attribute/materialattribute3d.hxx,drawinglayer/attribute/materialattribute3d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/attribute/sdrallattribute3d.hxx,drawinglayer/attribute/sdrallattribute3d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/attribute/sdrfillattribute.hxx,drawinglayer/attribute/sdrfillattribute.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/attribute/sdrfillbitmapattribute.hxx,drawinglayer/attribute/sdrfillbitmapattribute.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/attribute/sdrlightattribute3d.hxx,drawinglayer/attribute/sdrlightattribute3d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/attribute/sdrlightingattribute3d.hxx,drawinglayer/attribute/sdrlightingattribute3d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/attribute/sdrlineattribute.hxx,drawinglayer/attribute/sdrlineattribute.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/attribute/sdrlinestartendattribute.hxx,drawinglayer/attribute/sdrlinestartendattribute.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/attribute/sdrobjectattribute3d.hxx,drawinglayer/attribute/sdrobjectattribute3d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/attribute/sdrsceneattribute3d.hxx,drawinglayer/attribute/sdrsceneattribute3d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/attribute/sdrshadowattribute.hxx,drawinglayer/attribute/sdrshadowattribute.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/attribute/strokeattribute.hxx,drawinglayer/attribute/strokeattribute.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/drawinglayerdllapi.h,drawinglayer/drawinglayerdllapi.h))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/geometry/viewinformation2d.hxx,drawinglayer/geometry/viewinformation2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/geometry/viewinformation3d.hxx,drawinglayer/geometry/viewinformation3d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive2d/animatedprimitive2d.hxx,drawinglayer/primitive2d/animatedprimitive2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive2d/backgroundcolorprimitive2d.hxx,drawinglayer/primitive2d/backgroundcolorprimitive2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive2d/baseprimitive2d.hxx,drawinglayer/primitive2d/baseprimitive2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive2d/bitmapprimitive2d.hxx,drawinglayer/primitive2d/bitmapprimitive2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive2d/borderlineprimitive2d.hxx,drawinglayer/primitive2d/borderlineprimitive2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive2d/chartprimitive2d.hxx,drawinglayer/primitive2d/chartprimitive2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive2d/clippedborderlineprimitive2d.hxx,drawinglayer/primitive2d/clippedborderlineprimitive2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive2d/controlprimitive2d.hxx,drawinglayer/primitive2d/controlprimitive2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive2d/discretebitmapprimitive2d.hxx,drawinglayer/primitive2d/discretebitmapprimitive2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive2d/discreteshadowprimitive2d.hxx,drawinglayer/primitive2d/discreteshadowprimitive2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive2d/drawinglayer_primitivetypes2d.hxx,drawinglayer/primitive2d/drawinglayer_primitivetypes2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive2d/embedded3dprimitive2d.hxx,drawinglayer/primitive2d/embedded3dprimitive2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive2d/epsprimitive2d.hxx,drawinglayer/primitive2d/epsprimitive2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive2d/fillbitmapprimitive2d.hxx,drawinglayer/primitive2d/fillbitmapprimitive2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive2d/fillgradientprimitive2d.hxx,drawinglayer/primitive2d/fillgradientprimitive2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive2d/fillhatchprimitive2d.hxx,drawinglayer/primitive2d/fillhatchprimitive2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive2d/graphicprimitive2d.hxx,drawinglayer/primitive2d/graphicprimitive2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive2d/gridprimitive2d.hxx,drawinglayer/primitive2d/gridprimitive2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive2d/groupprimitive2d.hxx,drawinglayer/primitive2d/groupprimitive2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive2d/helplineprimitive2d.hxx,drawinglayer/primitive2d/helplineprimitive2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive2d/hiddengeometryprimitive2d.hxx,drawinglayer/primitive2d/hiddengeometryprimitive2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive2d/invertprimitive2d.hxx,drawinglayer/primitive2d/invertprimitive2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive2d/markerarrayprimitive2d.hxx,drawinglayer/primitive2d/markerarrayprimitive2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive2d/maskprimitive2d.hxx,drawinglayer/primitive2d/maskprimitive2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive2d/mediaprimitive2d.hxx,drawinglayer/primitive2d/mediaprimitive2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive2d/metafileprimitive2d.hxx,drawinglayer/primitive2d/metafileprimitive2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive2d/modifiedcolorprimitive2d.hxx,drawinglayer/primitive2d/modifiedcolorprimitive2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive2d/pagepreviewprimitive2d.hxx,drawinglayer/primitive2d/pagepreviewprimitive2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive2d/pointarrayprimitive2d.hxx,drawinglayer/primitive2d/pointarrayprimitive2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive2d/polygonprimitive2d.hxx,drawinglayer/primitive2d/polygonprimitive2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive2d/polypolygonprimitive2d.hxx,drawinglayer/primitive2d/polypolygonprimitive2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive2d/primitivetools2d.hxx,drawinglayer/primitive2d/primitivetools2d.hxx))
++$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive2d/rendergraphicprimitive2d.hxx,drawinglayer/primitive2d/rendergraphicprimitive2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive2d/sceneprimitive2d.hxx,drawinglayer/primitive2d/sceneprimitive2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive2d/sdrdecompositiontools2d.hxx,drawinglayer/primitive2d/sdrdecompositiontools2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive2d/shadowprimitive2d.hxx,drawinglayer/primitive2d/shadowprimitive2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive2d/structuretagprimitive2d.hxx,drawinglayer/primitive2d/structuretagprimitive2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive2d/textdecoratedprimitive2d.hxx,drawinglayer/primitive2d/textdecoratedprimitive2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive2d/texteffectprimitive2d.hxx,drawinglayer/primitive2d/texteffectprimitive2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive2d/textenumsprimitive2d.hxx,drawinglayer/primitive2d/textenumsprimitive2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive2d/texthierarchyprimitive2d.hxx,drawinglayer/primitive2d/texthierarchyprimitive2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive2d/textlayoutdevice.hxx,drawinglayer/primitive2d/textlayoutdevice.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive2d/textlineprimitive2d.hxx,drawinglayer/primitive2d/textlineprimitive2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive2d/textprimitive2d.hxx,drawinglayer/primitive2d/textprimitive2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive2d/textstrikeoutprimitive2d.hxx,drawinglayer/primitive2d/textstrikeoutprimitive2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive2d/transformprimitive2d.hxx,drawinglayer/primitive2d/transformprimitive2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive2d/transparenceprimitive2d.hxx,drawinglayer/primitive2d/transparenceprimitive2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive2d/unifiedtransparenceprimitive2d.hxx,drawinglayer/primitive2d/unifiedtransparenceprimitive2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive2d/wallpaperprimitive2d.hxx,drawinglayer/primitive2d/wallpaperprimitive2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive2d/wrongspellprimitive2d.hxx,drawinglayer/primitive2d/wrongspellprimitive2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive3d/baseprimitive3d.hxx,drawinglayer/primitive3d/baseprimitive3d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive3d/drawinglayer_primitivetypes3d.hxx,drawinglayer/primitive3d/drawinglayer_primitivetypes3d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive3d/groupprimitive3d.hxx,drawinglayer/primitive3d/groupprimitive3d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive3d/hatchtextureprimitive3d.hxx,drawinglayer/primitive3d/hatchtextureprimitive3d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive3d/hiddengeometryprimitive3d.hxx,drawinglayer/primitive3d/hiddengeometryprimitive3d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive3d/modifiedcolorprimitive3d.hxx,drawinglayer/primitive3d/modifiedcolorprimitive3d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive3d/polygonprimitive3d.hxx,drawinglayer/primitive3d/polygonprimitive3d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive3d/polygontubeprimitive3d.hxx,drawinglayer/primitive3d/polygontubeprimitive3d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive3d/polypolygonprimitive3d.hxx,drawinglayer/primitive3d/polypolygonprimitive3d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive3d/sdrcubeprimitive3d.hxx,drawinglayer/primitive3d/sdrcubeprimitive3d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive3d/sdrdecompositiontools3d.hxx,drawinglayer/primitive3d/sdrdecompositiontools3d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive3d/sdrextrudelathetools3d.hxx,drawinglayer/primitive3d/sdrextrudelathetools3d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive3d/sdrextrudeprimitive3d.hxx,drawinglayer/primitive3d/sdrextrudeprimitive3d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive3d/sdrlatheprimitive3d.hxx,drawinglayer/primitive3d/sdrlatheprimitive3d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive3d/sdrpolypolygonprimitive3d.hxx,drawinglayer/primitive3d/sdrpolypolygonprimitive3d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive3d/sdrprimitive3d.hxx,drawinglayer/primitive3d/sdrprimitive3d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive3d/sdrsphereprimitive3d.hxx,drawinglayer/primitive3d/sdrsphereprimitive3d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive3d/shadowprimitive3d.hxx,drawinglayer/primitive3d/shadowprimitive3d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive3d/textureprimitive3d.hxx,drawinglayer/primitive3d/textureprimitive3d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/primitive3d/transformprimitive3d.hxx,drawinglayer/primitive3d/transformprimitive3d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/processor2d/baseprocessor2d.hxx,drawinglayer/processor2d/baseprocessor2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/processor2d/canvasprocessor.hxx,drawinglayer/processor2d/canvasprocessor.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/processor2d/contourextractor2d.hxx,drawinglayer/processor2d/contourextractor2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/processor2d/hittestprocessor2d.hxx,drawinglayer/processor2d/hittestprocessor2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/processor2d/linegeometryextractor2d.hxx,drawinglayer/processor2d/linegeometryextractor2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/processor2d/textaspolygonextractor2d.hxx,drawinglayer/processor2d/textaspolygonextractor2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/processor2d/vclmetafileprocessor2d.hxx,drawinglayer/processor2d/vclmetafileprocessor2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/processor2d/vclpixelprocessor2d.hxx,drawinglayer/processor2d/vclpixelprocessor2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/processor2d/vclprocessor2d.hxx,drawinglayer/processor2d/vclprocessor2d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/processor3d/baseprocessor3d.hxx,drawinglayer/processor3d/baseprocessor3d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/processor3d/cutfindprocessor3d.hxx,drawinglayer/processor3d/cutfindprocessor3d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/processor3d/defaultprocessor3d.hxx,drawinglayer/processor3d/defaultprocessor3d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/processor3d/geometry2dextractor.hxx,drawinglayer/processor3d/geometry2dextractor.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/processor3d/shadow3dextractor.hxx,drawinglayer/processor3d/shadow3dextractor.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/processor3d/zbufferprocessor3d.hxx,drawinglayer/processor3d/zbufferprocessor3d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/texture/texture3d.hxx,drawinglayer/texture/texture3d.hxx))
 +$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/texture/texture.hxx,drawinglayer/texture/texture.hxx))
 +
 +# vim: set noet ts=4 sw=4:
diff --cc drawinglayer/prj/d.lst
index e69de29,2aa9246..e8c0ccc
--- a/drawinglayer/prj/d.lst
+++ b/drawinglayer/prj/d.lst
@@@ -1,0 -1,123 +1,2 @@@
+ 
 -..\%__SRC%\lib\idrawinglayer.lib %_DEST%\lib%_EXT%\idrawinglayer.lib
 -..\%__SRC%\bin\drawingl*.dll %_DEST%\bin%_EXT%\drawingl*.dll
 -..\%__SRC%\lib\libdrawinglayer?????.* %_DEST%\lib%_EXT%\libdrawinglayer?????.*
 -..\%__SRC%\lib\*.a %_DEST%\lib%_EXT%\*.a
 -..\%__SRC%\lib\*.dylib %_DEST%\lib%_EXT%\*.dylib
 -mkdir: %_DEST%\inc%_EXT%\drawinglayer
 -
 -mkdir: %_DEST%\inc%_EXT%\drawinglayer\primitive2d
 -..\inc\drawinglayer\primitive2d\drawinglayer_primitivetypes2d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive2d\drawinglayer_primitivetypes2d.hxx
 -..\inc\drawinglayer\primitive2d\transparenceprimitive2d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive2d\transparenceprimitive2d.hxx
 -..\inc\drawinglayer\primitive2d\animatedprimitive2d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive2d\animatedprimitive2d.hxx
 -..\inc\drawinglayer\primitive2d\backgroundcolorprimitive2d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive2d\backgroundcolorprimitive2d.hxx
 -..\inc\drawinglayer\primitive2d\baseprimitive2d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive2d\baseprimitive2d.hxx
 -..\inc\drawinglayer\primitive2d\bitmapprimitive2d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive2d\bitmapprimitive2d.hxx
 -..\inc\drawinglayer\primitive2d\rendergraphicprimitive2d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive2d\rendergraphicprimitive2d.hxx
 -..\inc\drawinglayer\primitive2d\borderlineprimitive2d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive2d\borderlineprimitive2d.hxx
 -..\inc\drawinglayer\primitive2d\clippedborderlineprimitive2d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive2d\clippedborderlineprimitive2d.hxx
 -..\inc\drawinglayer\primitive2d\chartprimitive2d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive2d\chartprimitive2d.hxx
 -..\inc\drawinglayer\primitive2d\controlprimitive2d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive2d\controlprimitive2d.hxx
 -..\inc\drawinglayer\primitive2d\discretebitmapprimitive2d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive2d\discretebitmapprimitive2d.hxx
 -..\inc\drawinglayer\primitive2d\discreteshadowprimitive2d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive2d\discreteshadowprimitive2d.hxx
 -..\inc\drawinglayer\primitive2d\embedded3dprimitive2d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive2d\embedded3dprimitive2d.hxx
 -..\inc\drawinglayer\primitive2d\fillbitmapprimitive2d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive2d\fillbitmapprimitive2d.hxx
 -..\inc\drawinglayer\primitive2d\fillgradientprimitive2d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive2d\fillgradientprimitive2d.hxx
 -..\inc\drawinglayer\primitive2d\fillhatchprimitive2d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive2d\fillhatchprimitive2d.hxx
 -..\inc\drawinglayer\primitive2d\graphicprimitive2d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive2d\graphicprimitive2d.hxx
 -..\inc\drawinglayer\primitive2d\gridprimitive2d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive2d\gridprimitive2d.hxx
 -..\inc\drawinglayer\primitive2d\groupprimitive2d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive2d\groupprimitive2d.hxx
 -..\inc\drawinglayer\primitive2d\helplineprimitive2d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive2d\helplineprimitive2d.hxx
 -..\inc\drawinglayer\primitive2d\hiddengeometryprimitive2d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive2d\hiddengeometryprimitive2d.hxx
 -..\inc\drawinglayer\primitive2d\invertprimitive2d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive2d\invertprimitive2d.hxx
 -..\inc\drawinglayer\primitive2d\markerarrayprimitive2d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive2d\markerarrayprimitive2d.hxx
 -..\inc\drawinglayer\primitive2d\maskprimitive2d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive2d\maskprimitive2d.hxx
 -..\inc\drawinglayer\primitive2d\mediaprimitive2d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive2d\mediaprimitive2d.hxx
 -..\inc\drawinglayer\primitive2d\metafileprimitive2d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive2d\metafileprimitive2d.hxx
 -..\inc\drawinglayer\primitive2d\modifiedcolorprimitive2d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive2d\modifiedcolorprimitive2d.hxx
 -..\inc\drawinglayer\primitive2d\pagepreviewprimitive2d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive2d\pagepreviewprimitive2d.hxx
 -..\inc\drawinglayer\primitive2d\pointarrayprimitive2d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive2d\pointarrayprimitive2d.hxx
 -..\inc\drawinglayer\primitive2d\polygonprimitive2d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive2d\polygonprimitive2d.hxx
 -..\inc\drawinglayer\primitive2d\polypolygonprimitive2d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive2d\polypolygonprimitive2d.hxx
 -..\inc\drawinglayer\primitive2d\primitivetools2d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive2d\primitivetools2d.hxx
 -..\inc\drawinglayer\primitive2d\sdrdecompositiontools2d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive2d\sdrdecompositiontools2d.hxx
 -..\inc\drawinglayer\primitive2d\sceneprimitive2d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive2d\sceneprimitive2d.hxx
 -..\inc\drawinglayer\primitive2d\shadowprimitive2d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive2d\shadowprimitive2d.hxx
 -..\inc\drawinglayer\primitive2d\structuretagprimitive2d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive2d\structuretagprimitive2d.hxx
 -..\inc\drawinglayer\primitive2d\textenumsprimitive2d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive2d\textenumsprimitive2d.hxx
 -..\inc\drawinglayer\primitive2d\texteffectprimitive2d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive2d\texteffectprimitive2d.hxx
 -..\inc\drawinglayer\primitive2d\textlayoutdevice.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive2d\textlayoutdevice.hxx
 -..\inc\drawinglayer\primitive2d\textprimitive2d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive2d\textprimitive2d.hxx
 -..\inc\drawinglayer\primitive2d\textdecoratedprimitive2d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive2d\textdecoratedprimitive2d.hxx
 -..\inc\drawinglayer\primitive2d\texthierarchyprimitive2d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive2d\texthierarchyprimitive2d.hxx
 -..\inc\drawinglayer\primitive2d\transformprimitive2d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive2d\transformprimitive2d.hxx
 -..\inc\drawinglayer\primitive2d\unifiedtransparenceprimitive2d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive2d\unifiedtransparenceprimitive2d.hxx
 -..\inc\drawinglayer\primitive2d\wrongspellprimitive2d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive2d\wrongspellprimitive2d.hxx
 -
 -mkdir: %_DEST%\inc%_EXT%\drawinglayer\primitive3d
 -..\inc\drawinglayer\primitive3d\drawinglayer_primitivetypes3d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive3d\drawinglayer_primitivetypes3d.hxx
 -..\inc\drawinglayer\primitive3d\baseprimitive3d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive3d\baseprimitive3d.hxx
 -..\inc\drawinglayer\primitive3d\groupprimitive3d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive3d\groupprimitive3d.hxx
 -..\inc\drawinglayer\primitive3d\hatchtextureprimitive3d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive3d\hatchtextureprimitive3d.hxx
 -..\inc\drawinglayer\primitive3d\modifiedcolorprimitive3d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive3d\modifiedcolorprimitive3d.hxx
 -..\inc\drawinglayer\primitive3d\polygonprimitive3d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive3d\polygonprimitive3d.hxx
 -..\inc\drawinglayer\primitive3d\polygontubeprimitive3d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive3d\polygontubeprimitive3d.hxx
 -..\inc\drawinglayer\primitive3d\polypolygonprimitive3d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive3d\polypolygonprimitive3d.hxx
 -..\inc\drawinglayer\primitive3d\sdrcubeprimitive3d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive3d\sdrcubeprimitive3d.hxx
 -..\inc\drawinglayer\primitive3d\sdrdecompositiontools3d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive3d\sdrdecompositiontools3d.hxx
 -..\inc\drawinglayer\primitive3d\sdrextrudelathetools3d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive3d\sdrextrudelathetools3d.hxx
 -..\inc\drawinglayer\primitive3d\sdrextrudeprimitive3d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive3d\sdrextrudeprimitive3d.hxx
 -..\inc\drawinglayer\primitive3d\sdrlatheprimitive3d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive3d\sdrlatheprimitive3d.hxx
 -..\inc\drawinglayer\primitive3d\sdrpolypolygonprimitive3d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive3d\sdrpolypolygonprimitive3d.hxx
 -..\inc\drawinglayer\primitive3d\sdrprimitive3d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive3d\sdrprimitive3d.hxx
 -..\inc\drawinglayer\primitive3d\sdrsphereprimitive3d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive3d\sdrsphereprimitive3d.hxx
 -..\inc\drawinglayer\primitive3d\shadowprimitive3d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive3d\shadowprimitive3d.hxx
 -..\inc\drawinglayer\primitive3d\textureprimitive3d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive3d\textureprimitive3d.hxx
 -..\inc\drawinglayer\primitive3d\transformprimitive3d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive3d\transformprimitive3d.hxx
 -
 -mkdir: %_DEST%\inc%_EXT%\drawinglayer\animation
 -..\inc\drawinglayer\animation\animationtiming.hxx %_DEST%\inc%_EXT%\drawinglayer\animation\animationtiming.hxx
 -
 -mkdir: %_DEST%\inc%_EXT%\drawinglayer\geometry
 -..\inc\drawinglayer\geometry\viewinformation2d.hxx %_DEST%\inc%_EXT%\drawinglayer\geometry\viewinformation2d.hxx
 -..\inc\drawinglayer\geometry\viewinformation3d.hxx %_DEST%\inc%_EXT%\drawinglayer\geometry\viewinformation3d.hxx
 -
 -mkdir: %_DEST%\inc%_EXT%\drawinglayer\processor2d
 -..\inc\drawinglayer\processor2d\baseprocessor2d.hxx %_DEST%\inc%_EXT%\drawinglayer\processor2d\baseprocessor2d.hxx
 -..\inc\drawinglayer\processor2d\vclprocessor2d.hxx %_DEST%\inc%_EXT%\drawinglayer\processor2d\vclprocessor2d.hxx
 -..\inc\drawinglayer\processor2d\vclpixelprocessor2d.hxx %_DEST%\inc%_EXT%\drawinglayer\processor2d\vclpixelprocessor2d.hxx
 -..\inc\drawinglayer\processor2d\vclmetafileprocessor2d.hxx %_DEST%\inc%_EXT%\drawinglayer\processor2d\vclmetafileprocessor2d.hxx
 -..\inc\drawinglayer\processor2d\canvasprocessor.hxx %_DEST%\inc%_EXT%\drawinglayer\processor2d\canvasprocessor.hxx
 -..\inc\drawinglayer\processor2d\contourextractor2d.hxx %_DEST%\inc%_EXT%\drawinglayer\processor2d\contourextractor2d.hxx
 -..\inc\drawinglayer\processor2d\linegeometryextractor2d.hxx %_DEST%\inc%_EXT%\drawinglayer\processor2d\linegeometryextractor2d.hxx
 -..\inc\drawinglayer\processor2d\hittestprocessor2d.hxx %_DEST%\inc%_EXT%\drawinglayer\processor2d\hittestprocessor2d.hxx
 -..\inc\drawinglayer\processor2d\textaspolygonextractor2d.hxx %_DEST%\inc%_EXT%\drawinglayer\processor2d\textaspolygonextractor2d.hxx
 -
 -mkdir: %_DEST%\inc%_EXT%\drawinglayer\processor3d
 -..\inc\drawinglayer\processor3d\baseprocessor3d.hxx %_DEST%\inc%_EXT%\drawinglayer\processor3d\baseprocessor3d.hxx
 -..\inc\drawinglayer\processor3d\cutfindprocessor3d.hxx %_DEST%\inc%_EXT%\drawinglayer\processor3d\cutfindprocessor3d.hxx
 -..\inc\drawinglayer\processor3d\defaultprocessor3d.hxx %_DEST%\inc%_EXT%\drawinglayer\processor3d\defaultprocessor3d.hxx
 -..\inc\drawinglayer\processor3d\zbufferprocessor3d.hxx %_DEST%\inc%_EXT%\drawinglayer\processor3d\zbufferprocessor3d.hxx
 -
 -mkdir: %_DEST%\inc%_EXT%\drawinglayer\attribute
 -..\inc\drawinglayer\attribute\fillgradientattribute.hxx %_DEST%\inc%_EXT%\drawinglayer\attribute\fillgradientattribute.hxx
 -..\inc\drawinglayer\attribute\fillhatchattribute.hxx %_DEST%\inc%_EXT%\drawinglayer\attribute\fillhatchattribute.hxx
 -..\inc\drawinglayer\attribute\fillbitmapattribute.hxx %_DEST%\inc%_EXT%\drawinglayer\attribute\fillbitmapattribute.hxx
 -..\inc\drawinglayer\attribute\fontattribute.hxx %_DEST%\inc%_EXT%\drawinglayer\attribute\fontattribute.hxx
 -..\inc\drawinglayer\attribute\materialattribute3d.hxx %_DEST%\inc%_EXT%\drawinglayer\attribute\materialattribute3d.hxx
 -..\inc\drawinglayer\attribute\sdrallattribute3d.hxx %_DEST%\inc%_EXT%\drawinglayer\attribute\sdrallattribute3d.hxx
 -..\inc\drawinglayer\attribute\sdrlineattribute.hxx %_DEST%\inc%_EXT%\drawinglayer\attribute\sdrlineattribute.hxx
 -..\inc\drawinglayer\attribute\sdrlinestartendattribute.hxx %_DEST%\inc%_EXT%\drawinglayer\attribute\sdrlinestartendattribute.hxx
 -..\inc\drawinglayer\attribute\sdrshadowattribute.hxx %_DEST%\inc%_EXT%\drawinglayer\attribute\sdrshadowattribute.hxx
 -..\inc\drawinglayer\attribute\sdrfillattribute.hxx %_DEST%\inc%_EXT%\drawinglayer\attribute\sdrfillattribute.hxx
 -..\inc\drawinglayer\attribute\sdrobjectattribute3d.hxx %_DEST%\inc%_EXT%\drawinglayer\attribute\sdrobjectattribute3d.hxx
 -..\inc\drawinglayer\attribute\sdrlightattribute3d.hxx %_DEST%\inc%_EXT%\drawinglayer\attribute\sdrlightattribute3d.hxx
 -..\inc\drawinglayer\attribute\sdrlightingattribute3d.hxx %_DEST%\inc%_EXT%\drawinglayer\attribute\sdrlightingattribute3d.hxx
 -..\inc\drawinglayer\attribute\sdrsceneattribute3d.hxx %_DEST%\inc%_EXT%\drawinglayer\attribute\sdrsceneattribute3d.hxx
 -..\inc\drawinglayer\attribute\sdrfillbitmapattribute.hxx %_DEST%\inc%_EXT%\drawinglayer\attribute\sdrfillbitmapattribute.hxx
 -..\inc\drawinglayer\attribute\strokeattribute.hxx %_DEST%\inc%_EXT%\drawinglayer\attribute\strokeattribute.hxx
 -..\inc\drawinglayer\attribute\lineattribute.hxx %_DEST%\inc%_EXT%\drawinglayer\attribute\lineattribute.hxx
 -..\inc\drawinglayer\attribute\linestartendattribute.hxx %_DEST%\inc%_EXT%\drawinglayer\attribute\linestartendattribute.hxx
 -
 -mkdir: %_DEST%\inc%_EXT%\drawinglayer\texture
 -..\inc\drawinglayer\texture\texture.hxx %_DEST%\inc%_EXT%\drawinglayer\texture\texture.hxx
++..\inc\drawinglayer\primitive2d\rendergraphicprimitive2d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive2d\rendergraphicprimitive2d.hxx
diff --cc drawinglayer/source/primitive2d/graphicprimitive2d.cxx
index 6447d78,4088854..55ed96d
--- a/drawinglayer/source/primitive2d/graphicprimitive2d.cxx
+++ b/drawinglayer/source/primitive2d/graphicprimitive2d.cxx
@@@ -247,7 -249,9 +249,9 @@@ namespace drawinglaye
                  aSuppressGraphicAttr.SetCrop(0, 0, 0, 0);
                  aSuppressGraphicAttr.SetRotation(0);
                  aSuppressGraphicAttr.SetMirrorFlags(0);
-                 const Graphic aTransformedGraphic(getGraphicObject().GetTransformedGraphic(&aSuppressGraphicAttr));
 -                
++
+                 const GraphicObject&    rGraphicObject = getGraphicObject();
+                 const Graphic           aTransformedGraphic(rGraphicObject.GetTransformedGraphic(&aSuppressGraphicAttr));
  
                  switch(aTransformedGraphic.GetType())
                  {
@@@ -291,34 -295,43 +295,43 @@@
                      case GRAPHIC_GDIMETAFILE :
                      {
                              // create MetafilePrimitive2D
-                             const Graphic aGraphic(getGraphicObject().GetGraphic());
                              const GDIMetaFile& rMetafile = aTransformedGraphic.GetGDIMetaFile();
  
-                             xPrimitive = Primitive2DReference(
-                                 new MetafilePrimitive2D(
-                                     aTransform, 
-                                     rMetafile));
- 
-                             // #i100357# find out if clipping is needed for this primitive. Unfortunately,
-                             // there exist Metafiles who's content is bigger than the proposed PrefSize set
-                             // at them. This is an error, but we need to work around this
-                             const Size aMetaFilePrefSize(rMetafile.GetPrefSize());
-                             const Size aMetaFileRealSize(
-                                 const_cast< GDIMetaFile& >(rMetafile).GetBoundRect(
-                                     *Application::GetDefaultDevice()).GetSize());
- 
-                             if(aMetaFileRealSize.getWidth() > aMetaFilePrefSize.getWidth()
-                                 || aMetaFileRealSize.getHeight() > aMetaFilePrefSize.getHeight())
+                             if( aTransformedGraphic.IsRenderGraphic() )
+                             {
+                                 xPrimitive = Primitive2DReference(
 -                                    new RenderGraphicPrimitive2D(                                        
++                                    new RenderGraphicPrimitive2D(
+                                         static_cast< MetaRenderGraphicAction* >(rMetafile.GetAction(0))->GetRenderGraphic(),
+                                         aTransform));
+                             }
+                             else
                              {
-                                 // clipping needed. Embed to MaskPrimitive2D. Create childs and mask polygon
-                                 const primitive2d::Primitive2DSequence aChildContent(&xPrimitive, 1);
-                                 basegfx::B2DPolygon aMaskPolygon(basegfx::tools::createUnitPolygon());
-                                 aMaskPolygon.transform(aTransform);
- 
                                  xPrimitive = Primitive2DReference(
-                                     new MaskPrimitive2D(
-                                         basegfx::B2DPolyPolygon(aMaskPolygon), 
-                                         aChildContent));
+                                     new MetafilePrimitive2D(
+                                         aTransform,
+                                         rMetafile));
+ 
+                                 // #i100357# find out if clipping is needed for this primitive. Unfortunately,
+                                 // there exist Metafiles who's content is bigger than the proposed PrefSize set
+                                 // at them. This is an error, but we need to work around this
+                                 const Size aMetaFilePrefSize(rMetafile.GetPrefSize());
+                                 const Size aMetaFileRealSize(
+                                     const_cast< GDIMetaFile& >(rMetafile).GetBoundRect(
+                                         *Application::GetDefaultDevice()).GetSize());
+ 
+                                 if(aMetaFileRealSize.getWidth() > aMetaFilePrefSize.getWidth()
+                                     || aMetaFileRealSize.getHeight() > aMetaFilePrefSize.getHeight())
+                                 {
+                                     // clipping needed. Embed to MaskPrimitive2D. Create childs and mask polygon
+                                     const primitive2d::Primitive2DSequence aChildContent(&xPrimitive, 1);
+                                     basegfx::B2DPolygon aMaskPolygon(basegfx::tools::createUnitPolygon());
+                                     aMaskPolygon.transform(aTransform);
+ 
+                                     xPrimitive = Primitive2DReference(
+                                         new MaskPrimitive2D(
+                                             basegfx::B2DPolyPolygon(aMaskPolygon),
+                                             aChildContent));
+                                 }
                              }
  
                          break;
diff --cc formula/source/core/resource/core_resource.src
index eaa326a,81d49d0..1724ea4
--- a/formula/source/core/resource/core_resource.src
+++ b/formula/source/core/resource/core_resource.src
@@@ -88,6 -88,10 +88,10 @@@ Resource RID_STRLIST_FUNCTION_NAMES_ENG
      String SC_OPCODE_ARC_COS_HYP { Text = "ACOSH" ; };
      String SC_OPCODE_ARC_TAN_HYP { Text = "ATANH" ; };
      String SC_OPCODE_ARC_COT_HYP { Text = "ACOTH" ; };
+     String SC_OPCODE_COSECANT { Text = "CSC" ; };
+     String SC_OPCODE_SECANT { Text = "SEC" ; };
+     String SC_OPCODE_COSECANT_HYP { Text = "CSCH" ; };
 -    String SC_OPCODE_SECANT_HYP { Text = "SECH" ; }; 
++    String SC_OPCODE_SECANT_HYP { Text = "SECH" ; };
      String SC_OPCODE_EXP { Text = "EXP" ; };
      String SC_OPCODE_LN { Text = "LN" ; };
      String SC_OPCODE_SQRT { Text = "SQRT" ; };
diff --cc fpicker/source/win32/filepicker/VistaFilePicker.cxx
index ce38abf,7192c3f..e61a9b0
--- a/fpicker/source/win32/filepicker/VistaFilePicker.cxx
+++ b/fpicker/source/win32/filepicker/VistaFilePicker.cxx
@@@ -264,7 -264,7 +264,7 @@@ void SAL_CALL VistaFilePicker::setCurre
  
  //-----------------------------------------------------------------------------------------
  void SAL_CALL VistaFilePicker::appendFilterGroup(const ::rtl::OUString&                              /*sGroupTitle*/,
-                                                  const css::uno::Sequence< css::beans::StringPair >& lFilters   ) 
 -                                                 const css::uno::Sequence< css::beans::StringPair >& rFilters   ) 
++                                                 const css::uno::Sequence< css::beans::StringPair >& rFilters   )
      throw (css::lang::IllegalArgumentException,
             css::uno::RuntimeException         )
  {
diff --cc fpicker/source/win32/filepicker/VistaFilePickerEventHandler.cxx
index 14cefe3,826ab9f..7bb206d
--- a/fpicker/source/win32/filepicker/VistaFilePickerEventHandler.cxx
+++ b/fpicker/source/win32/filepicker/VistaFilePickerEventHandler.cxx
@@@ -264,33 -264,16 +264,16 @@@ STDMETHODIMP VistaFilePickerEventHandle
  }
  
  //-----------------------------------------------------------------------------------------
- STDMETHODIMP VistaFilePickerEventHandler::OnTypeChange(IFileDialog* /*pDialog*/)
+ STDMETHODIMP VistaFilePickerEventHandler::OnTypeChange(IFileDialog* pDialog)
  {
-     /*
-     IFileDialogCustomize               *iCustomize;
-     pDialog->QueryInterface(IID_IFileDialogCustomize, (void**)(&iCustomize));
+     UINT nFileTypeIndex;
+     HRESULT hResult = pDialog->GetFileTypeIndex( &nFileTypeIndex );
 -    
 +
-     BOOL bValue = FALSE;
-     HRESULT hResult = iCustomize->GetCheckButtonState( css::ui::dialogs::ExtendedFilePickerElementIds::CHECKBOX_AUTOEXTENSION, &bValue);
- 
-     if ( bValue )
+     if ( hResult == S_OK )
      {
-         UINT nIndex;
- 
-         pDialog->GetFileTypeIndex( &nIndex );
- 
-         LPCWSTR lpFilterExt = lFilters[nIndex].pszSpec;
- 
-         lpFilterExt = wcschr( lpFilterExt, '.' );
-         if ( lpFilterExt )
-             lpFilterExt++;
-         pDialog->SetDefaultExtension( lpFilterExt );
+         if ( m_pInternalNotify->onFileTypeChanged( nFileTypeIndex ))
+             impl_sendEvent(E_CONTROL_STATE_CHANGED, css::ui::dialogs::CommonFilePickerElementIds::LISTBOX_FILTER);
      }
-     return S_OK;
- 
-     */
- 
-     impl_sendEvent(E_CONTROL_STATE_CHANGED, css::ui::dialogs::CommonFilePickerElementIds::LISTBOX_FILTER);
  
      return S_OK;
  }
diff --cc fpicker/source/win32/filepicker/VistaFilePickerImpl.cxx
index b13069c,c523207..8016b74
--- a/fpicker/source/win32/filepicker/VistaFilePickerImpl.cxx
+++ b/fpicker/source/win32/filepicker/VistaFilePickerImpl.cxx
@@@ -332,6 -339,28 +339,28 @@@ void VistaFilePickerImpl::impl_sta_appe
  }
  
  //-------------------------------------------------------------------------------
+ void VistaFilePickerImpl::impl_sta_appendFilterGroup(const RequestRef& rRequest)
+ {
 -    const css::uno::Sequence< css::beans::StringPair > aFilterGroup  = 
++    const css::uno::Sequence< css::beans::StringPair > aFilterGroup  =
+         rRequest->getArgumentOrDefault(PROP_FILTER_GROUP, css::uno::Sequence< css::beans::StringPair >());
+ 
+     // SYNCHRONIZED->
+     ::rtl::OUString aEmpty;
+     ::osl::ResettableMutexGuard aLock(m_aMutex);
+ 
+     if ( m_lFilters.numFilter() > 0 && aFilterGroup.getLength() > 0 )
+         m_lFilters.addFilter( STRING_SEPARATOR, aEmpty, sal_True );
 -    
++
+     ::sal_Int32 c = aFilterGroup.getLength();
+     ::sal_Int32 i = 0;
+     for (i=0; i<c; ++i)
+     {
+         const css::beans::StringPair& rFilter = aFilterGroup[i];
+         m_lFilters.addFilter(rFilter.First, rFilter.Second);
+     }
+ }
+ 
+ //-------------------------------------------------------------------------------
  void VistaFilePickerImpl::impl_sta_setCurrentFilter(const RequestRef& rRequest)
  {
      const ::rtl::OUString sTitle  = rRequest->getArgumentOrDefault(PROP_FILTER_TITLE, ::rtl::OUString());
diff --cc fpicker/source/win32/filepicker/VistaFilePickerImpl.hxx
index 823141d,c550f49..04669a2
--- a/fpicker/source/win32/filepicker/VistaFilePickerImpl.hxx
+++ b/fpicker/source/win32/filepicker/VistaFilePickerImpl.hxx
@@@ -187,6 -193,10 +193,10 @@@ class VistaFilePickerImpl : private ::c
          void impl_sta_appendFilter(const RequestRef& rRequest);
      
          //---------------------------------------------------------------------
+         /// implementation of request E_APPEND_FILTERGROUP
+         void impl_sta_appendFilterGroup(const RequestRef& rRequest);
 -        
++
+         //---------------------------------------------------------------------
          /// implementation of request E_SET_CURRENT_FILTER
          void impl_sta_setCurrentFilter(const RequestRef& rRequest);
      
diff --cc fpicker/source/win32/filepicker/WinFileOpenImpl.cxx
index 6f549cf,1ed03f5..e38493b
--- a/fpicker/source/win32/filepicker/WinFileOpenImpl.cxx
+++ b/fpicker/source/win32/filepicker/WinFileOpenImpl.cxx
@@@ -315,6 -315,18 +315,18 @@@ void SAL_CALL CWinFileOpenImpl::appendF
  // XExtendedFilePicker
  //=================================================================================================================
  
+ // #i90917: Due to a different feature set for the system-dependent file pickers
 -// it's possible that generic code (e.g. sfx2) provides control ids 
++// it's possible that generic code (e.g. sfx2) provides control ids
+ // (see ExtendedFilePickerElementIds::LISTBOX_FILTER_SELECTOR) which are NOT
+ // available on all platforms. This filter function should filter out control ids
+ // which are only available on KDE/GTK file pickers.
+ static bool filterControlCommand( sal_Int16 nControlId )
+ {
+     if ( nControlId == LISTBOX_FILTER_SELECTOR )
+         return true;
+     return false;
+ }
+ 
  void SAL_CALL CWinFileOpenImpl::setValue(sal_Int16 aControlId, sal_Int16 aControlAction, const uno::Any& aValue) 
      throw(uno::RuntimeException)
  {
diff --cc framework/inc/xml/imagesconfiguration.hxx
index 0000000,e800b73..c7ea2b6
mode 000000,100644..100644
--- a/framework/inc/xml/imagesconfiguration.hxx
+++ b/framework/inc/xml/imagesconfiguration.hxx
@@@ -1,0 -1,128 +1,128 @@@
+ /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+ /*************************************************************************
+  *
+  * 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
+  *
+  * 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 FRAMEWORK_XML_IMAGESCONFIGURATION_HXX_
+ #define FRAMEWORK_XML_IMAGESCONFIGURATION_HXX_
+ 
+ #include <framework/fwedllapi.h>
+ #include <svl/svarray.hxx>
+ #include <tools/string.hxx>
+ #include <tools/stream.hxx>
+ #include <tools/color.hxx>
+ 
+ #include <com/sun/star/lang/XMultiServiceFactory.hpp>
+ #include <com/sun/star/io/XInputStream.hpp>
+ #include <com/sun/star/io/XOutputStream.hpp>
+ 
+ #include <vector>
+ 
+ namespace framework
+ {
+ 
+ enum ImageMaskMode
+ {
+     ImageMaskMode_Color,
+     ImageMaskMode_Bitmap
+ };
+ 
+ struct ImageItemDescriptor
+ {
+     ImageItemDescriptor() : nIndex( -1 ) {}
+ 
+     String	aCommandURL;				// URL command to dispatch
+     long	nIndex;						// index of the bitmap inside the bitmaplist
+ };
+ 
+ struct ExternalImageItemDescriptor
+ {
+     String	aCommandURL;				// URL command to dispatch
+     String	aURL;						// a URL to an external bitmap
+ };
+ 
+ typedef ImageItemDescriptor* ImageItemDescriptorPtr;
+ SV_DECL_PTRARR_DEL( ImageItemListDescriptor, ImageItemDescriptorPtr, 10, 2)
+ 
+ typedef ExternalImageItemDescriptor* ExternalImageItemDescriptorPtr;
 -SV_DECL_PTRARR_DEL( ExternalImageItemListDescriptor, ExternalImageItemDescriptorPtr, 10, 2) 
++SV_DECL_PTRARR_DEL( ExternalImageItemListDescriptor, ExternalImageItemDescriptorPtr, 10, 2)
+ 
+ struct ImageListItemDescriptor
+ {
+     ImageListItemDescriptor() : nMaskMode( ImageMaskMode_Color ),
+                                 pImageItemList( 0 ) {}
+ 
+     ~ImageListItemDescriptor() { delete pImageItemList; }
+ 
+     String						aURL;				// an URL to a bitmap with several images inside
+     Color						aMaskColor;			// a color used as transparent
+     String						aMaskURL;			// an URL to an optional bitmap used as a mask
+     ImageMaskMode				      nMaskMode;			// an enum to describe the current mask mode
+     ImageItemListDescriptor*              pImageItemList;		// an array	of ImageItemDescriptors that describes every image
+     String						aHighContrastURL;		// an URL to an optional high contrast bitmap with serveral images inside
+     String						aHighContrastMaskURL;	// an URL to an optional high contrast bitmap as a mask
+ };
+ 
+ typedef ImageListItemDescriptor* ImageListItemDescriptorPtr;
+ SV_DECL_PTRARR_DEL( ImageListDescriptor, ImageListItemDescriptorPtr, 10, 2)
+ 
+ struct ImageListsDescriptor
+ {
+     ImageListsDescriptor() : pImageList( 0 ),
+                      pExternalImageList( 0 ) {}
+     ~ImageListsDescriptor() { delete pImageList; delete pExternalImageList; }
+ 
+     ImageListDescriptor*			pImageList;
+     ExternalImageItemListDescriptor*	pExternalImageList;
+ };
+ 
+ class ImagesConfiguration
+ {
+     public:
 -        static sal_Bool	LoadImages( 
++        static sal_Bool	LoadImages(
+             const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory,
+             SvStream& rInStream, ImageListsDescriptor& aItems );
+ 
 -        static sal_Bool	StoreImages( 
++        static sal_Bool	StoreImages(
+             const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory,
+             SvStream& rOutStream, const ImageListsDescriptor& aItems );
+ 
+         static sal_Bool LoadImages(
+             const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory,
+             const ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream >& rInputStream,
+             ImageListsDescriptor& rItems );
+ 
+         static sal_Bool StoreImages(
+             const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory,
+             const ::com::sun::star::uno::Reference< ::com::sun::star::io::XOutputStream >& rOutputStream,
+             const ImageListsDescriptor& rItems );
+ };
+ 
+ } // namespace framework
+ 
+ #endif // __FRAMEWORK_CLASSES_IMAGES
+ 
+ /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --cc framework/source/helper/persistentwindowstate.cxx
index 7bae786,d92a61e..1e09aad
--- a/framework/source/helper/persistentwindowstate.cxx
+++ b/framework/source/helper/persistentwindowstate.cxx
@@@ -338,7 -339,9 +339,9 @@@ void PersistentWindowState::implst_setW
      if (pWorkWindow->IsMinimized())
          return;
  
-     pSystemWindow->SetWindowState(U2B_ENC(sWindowState,RTL_TEXTENCODING_UTF8));
+     ::rtl::OUString sOldWindowState = ::rtl::OStringToOUString( pSystemWindow->GetWindowState(), RTL_TEXTENCODING_ASCII_US );
+     if ( sOldWindowState != sWindowState )
 -        pSystemWindow->SetWindowState(U2B_ENC(sWindowState,RTL_TEXTENCODING_UTF8));    
++        pSystemWindow->SetWindowState(U2B_ENC(sWindowState,RTL_TEXTENCODING_UTF8));
      // <- SOLAR SAFE ------------------------
  }
  
diff --cc framework/source/layoutmanager/toolbarlayoutmanager.cxx
index cbd396f,240fce9..2c1a3ac
--- a/framework/source/layoutmanager/toolbarlayoutmanager.cxx
+++ b/framework/source/layoutmanager/toolbarlayoutmanager.cxx
@@@ -421,6 -421,14 +421,14 @@@ bool ToolbarLayoutManager::requestToolb
      bool bNotify( false );
      bool bMustCallCreate( false );
      uno::Reference< ui::XUIElement > xUIElement;
+ 
+     ReadGuard aReadLock( m_aLock );
+     uno::Reference< frame::XFrame > xFrame( m_xFrame );
+     aReadLock.unlock();
 -    
++
+     uno::Reference< frame::XModel > xModel( impl_getModelFromFrame( xFrame ));
+     if ( implts_isPreviewModel( xModel ))
+         return false; // no toolbars for preview frame!
      
      UIElement aRequestedToolbar = impl_findToolbar( rResourceURL );
      if ( aRequestedToolbar.m_aName != rResourceURL  )
diff --cc framework/source/uielement/menubarmanager.cxx
index f31f6ba,fd604cf..132c555
--- a/framework/source/uielement/menubarmanager.cxx
+++ b/framework/source/uielement/menubarmanager.cxx
@@@ -1783,6 -1786,13 +1786,13 @@@ void MenuBarManager::FillMenu
                             nBits |= MIB_RADIOCHECK;
                          pMenu->SetItemBits( nId, nBits );
                      }
 -            
++
+                     if ( !bShow )
+                         pMenu->HideItem( nId );
 -                    
++
+                     if ( !bEnabled)
+                         pMenu->EnableItem( nId, sal_False );
 -                    
++
                      if ( xIndexContainer.is() )
                      {
                          PopupMenu* pNewPopupMenu = new PopupMenu;
diff --cc framework/source/xml/imagesconfiguration.cxx
index 0000000,aa41b39..07365cb
mode 000000,100644..100644
--- a/framework/source/xml/imagesconfiguration.cxx
+++ b/framework/source/xml/imagesconfiguration.cxx
@@@ -1,0 -1,228 +1,228 @@@
+ /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+ /*************************************************************************
+  *
+  * 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
+  *
+  * 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_framework.hxx"
+ 
+ #include <xml/imagesconfiguration.hxx>
+ #include <services.h>
+ 
+ #include <xml/imagesdocumenthandler.hxx>
+ #include <xml/saxnamespacefilter.hxx>
+ 
+ //_________________________________________________________________________________________________________________
+ //	interface includes
+ //_________________________________________________________________________________________________________________
+ #include <com/sun/star/xml/sax/XParser.hpp>
+ #include <com/sun/star/io/XActiveDataSource.hpp>
+ #include <com/sun/star/io/XInputStream.hpp>
+ #include <com/sun/star/lang/XMultiServiceFactory.hpp>
+ 
+ //_________________________________________________________________________________________________________________
+ //	other includes
+ //_________________________________________________________________________________________________________________
+ 
+ #include <comphelper/processfactory.hxx>
+ #include <unotools/streamwrap.hxx>
+ #include <tools/debug.hxx>
+ 
+ //_________________________________________________________________________________________________________________
+ //	namespace
+ //_________________________________________________________________________________________________________________
+ 
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::xml::sax;
+ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::io;
+ 
+ 
+ namespace framework
+ {
+ 
+ SV_IMPL_PTRARR( ImageItemListDescriptor, ImageItemDescriptorPtr );
+ SV_IMPL_PTRARR( ExternalImageItemListDescriptor, ExternalImageItemDescriptorPtr );
+ SV_IMPL_PTRARR( ImageListDescriptor, ImageListItemDescriptorPtr );
+ 
+ static Reference< XParser > GetSaxParser(
+     const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory
+     )
+ {
+     return Reference< XParser >( xServiceFactory->createInstance( SERVICENAME_SAXPARSER), UNO_QUERY);
+ }
+ 
+ static Reference< XDocumentHandler > GetSaxWriter(
+     const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory
+     )
+ {
+     return Reference< XDocumentHandler >( xServiceFactory->createInstance( SERVICENAME_SAXWRITER), UNO_QUERY) ;
+ }
+ 
+ sal_Bool ImagesConfiguration::LoadImages(
+     const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory,
+     SvStream& rInStream, ImageListsDescriptor& aItems )
+ {
+     Reference< XParser > xParser( GetSaxParser( xServiceFactory ) );
+     Reference< XInputStream > xInputStream(
+                                 (::cppu::OWeakObject *)new utl::OInputStreamWrapper( rInStream ),
+                                 UNO_QUERY );
+ 
+     // connect stream to input stream to the parser
+     InputSource aInputSource;
+ 
+     aInputSource.aInputStream = xInputStream;
+ 
+     // create namespace filter and set document handler inside to support xml namespaces
+     Reference< XDocumentHandler > xDocHandler( new OReadImagesDocumentHandler( aItems ));
+     Reference< XDocumentHandler > xFilter( new SaxNamespaceFilter( xDocHandler ));
+ 
+     // connect parser and filter
+     xParser->setDocumentHandler( xFilter );
+ 
+     try
+     {
+         xParser->parseStream( aInputSource );
+         return sal_True;
+     }
+     catch ( RuntimeException& )
+     {
+         return sal_False;
+     }
+     catch( SAXException& )
+     {
+         return sal_False;
+     }
+     catch( ::com::sun::star::io::IOException& )
+     {
+         return sal_False;
+     }
+ }
+ 
+ sal_Bool ImagesConfiguration::StoreImages(
+     const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory,
+     SvStream& rOutStream, const ImageListsDescriptor& aItems )
+ {
+     Reference< XDocumentHandler > xWriter( GetSaxWriter( xServiceFactory ) );
+ 
+     Reference< XOutputStream > xOutputStream(
+                                 (::cppu::OWeakObject *)new utl::OOutputStreamWrapper( rOutStream ),
+                                 UNO_QUERY );
+ 
+     Reference< ::com::sun::star::io::XActiveDataSource> xDataSource( xWriter , UNO_QUERY );
+     xDataSource->setOutputStream( xOutputStream );
+ 
+     try
+     {
+         OWriteImagesDocumentHandler aWriteImagesDocumentHandler( aItems, xWriter );
+         aWriteImagesDocumentHandler.WriteImagesDocument();
+         return sal_True;
+     }
+     catch ( RuntimeException& )
+     {
+         return sal_False;
+     }
+     catch ( SAXException& )
+     {
+         return sal_False;
+     }
+     catch ( ::com::sun::star::io::IOException& )
+     {
+         return sal_False;
+     }
+ }
+ 
+ sal_Bool ImagesConfiguration::LoadImages(
+     const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory,
+     const ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream >& rInputStream,
+     ImageListsDescriptor& rItems )
+ {
+     Reference< XParser > xParser( GetSaxParser( xServiceFactory ) );
+ 
+     // connect stream to input stream to the parser
+     InputSource aInputSource;
+ 
+     aInputSource.aInputStream = rInputStream;
+ 
+     // create namespace filter and set document handler inside to support xml namespaces
+     Reference< XDocumentHandler > xDocHandler( new OReadImagesDocumentHandler( rItems ));
+     Reference< XDocumentHandler > xFilter( new SaxNamespaceFilter( xDocHandler ));
+ 
+     // connect parser and filter
+     xParser->setDocumentHandler( xFilter );
+ 
+     try
+     {
+         xParser->parseStream( aInputSource );
+         return sal_True;
+     }
+     catch ( RuntimeException& )
+     {
+         return sal_False;
+     }
+     catch( SAXException& )
+     {
+         return sal_False;
+     }
+     catch( ::com::sun::star::io::IOException& )
+     {
+         return sal_False;
+     }
+ }
+ 
+ sal_Bool ImagesConfiguration::StoreImages(
+     const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory,
+     const ::com::sun::star::uno::Reference< ::com::sun::star::io::XOutputStream >& rOutputStream,
+     const ImageListsDescriptor& rItems )
+ {
+     Reference< XDocumentHandler > xWriter( GetSaxWriter( xServiceFactory ) );
+ 
+     Reference< ::com::sun::star::io::XActiveDataSource> xDataSource( xWriter , UNO_QUERY );
+     xDataSource->setOutputStream( rOutputStream );
+ 
+     try
+     {
+         OWriteImagesDocumentHandler aWriteImagesDocumentHandler( rItems, xWriter );
+         aWriteImagesDocumentHandler.WriteImagesDocument();
+         return sal_True;
+     }
+     catch ( RuntimeException& )
+     {
+         return sal_False;
+     }
+     catch ( SAXException& )
+     {
+         return sal_False;
+     }
+     catch ( ::com::sun::star::io::IOException& )
+     {
+         return sal_False;
+     }
+ }
+ 
+ }
+ 
+ /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --cc framework/source/xml/imagesdocumenthandler.cxx
index 0000000,b68d178..354d0ca
mode 000000,100644..100644
--- a/framework/source/xml/imagesdocumenthandler.cxx
+++ b/framework/source/xml/imagesdocumenthandler.cxx
@@@ -1,0 -1,851 +1,853 @@@
+ /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+ /*************************************************************************
+  *
+  * 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
+  *
+  * 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_framework.hxx"
+ 
+ #include <stdio.h>
+ 
+ //_________________________________________________________________________________________________________________
+ //	my own includes
+ //_________________________________________________________________________________________________________________
+ 
+ #include <threadhelp/resetableguard.hxx>
+ #include <xml/imagesdocumenthandler.hxx>
+ #include <macros/debug.hxx>
+ 
+ //_________________________________________________________________________________________________________________
+ //	interface includes
+ //_________________________________________________________________________________________________________________
+ 
+ #include <com/sun/star/xml/sax/XExtendedDocumentHandler.hpp>
+ 
+ //_________________________________________________________________________________________________________________
+ //	other includes
+ //_________________________________________________________________________________________________________________
+ #include <vcl/svapp.hxx>
+ #include <vcl/toolbox.hxx>
+ #include <rtl/ustrbuf.hxx>
+ 
+ #include <comphelper/attributelist.hxx>
+ 
+ //_________________________________________________________________________________________________________________
+ //	namespace
+ //_________________________________________________________________________________________________________________
+ 
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::xml::sax;
+ 
+ #define ELEMENT_IMAGECONTAINER		"imagescontainer"
+ #define ELEMENT_IMAGES				"images"
+ #define ELEMENT_ENTRY				"entry"
+ #define ELEMENT_EXTERNALIMAGES		"externalimages"
+ #define ELEMENT_EXTERNALENTRY		"externalentry"
+ 
+ #define ELEMENT_NS_IMAGESCONTAINER	"image:imagescontainer"
+ #define ELEMENT_NS_IMAGES			"image:images"
+ #define ELEMENT_NS_ENTRY			"image:entry"
+ #define ELEMENT_NS_EXTERNALIMAGES	"image:externalimages"
+ #define ELEMENT_NS_EXTERNALENTRY	"image:externalentry"
+ 
+ #define ATTRIBUTE_HREF					"href"
+ #define ATTRIBUTE_MASKCOLOR				"maskcolor"
+ #define ATTRIBUTE_COMMAND				"command"
+ #define ATTRIBUTE_BITMAPINDEX			"bitmap-index"
+ #define ATTRIBUTE_MASKURL				"maskurl"
+ #define ATTRIBUTE_MASKMODE				"maskmode"
+ #define ATTRIBUTE_HIGHCONTRASTURL		"highcontrasturl"
+ #define ATTRIBUTE_HIGHCONTRASTMASKURL	"highcontrastmaskurl"
+ #define ATTRIBUTE_TYPE_CDATA			"CDATA"
+ 
+ #define ATTRIBUTE_MASKMODE_BITMAP	"maskbitmap"
+ #define ATTRIBUTE_MASKMODE_COLOR	"maskcolor"
+ 
+ #define ATTRIBUTE_XMLNS_IMAGE		"xmlns:image"
+ #define ATTRIBUTE_XMLNS_XLINK		"xmlns:xlink"
+ 
+ #define ATTRIBUTE_XLINK_TYPE		"xlink:type"
+ #define ATTRIBUTE_XLINK_TYPE_VALUE	"simple"
+ 
+ #define XMLNS_IMAGE					"http://openoffice.org/2001/image"
+ #define XMLNS_XLINK					"http://www.w3.org/1999/xlink"
+ #define XMLNS_IMAGE_PREFIX			"image:"
+ #define XMLNS_XLINK_PREFIX			"xlink:"
+ 
+ #define XMLNS_FILTER_SEPARATOR		"^"
+ 
+ #define IMAGES_DOCTYPE	"<!DOCTYPE image:imagecontainer PUBLIC \"-//OpenOffice.org//DTD OfficeDocument 1.0//EN\" \"image.dtd\">"
+ 
+ namespace framework
+ {
+ 
+ struct ImageXMLEntryProperty
+ {
+     OReadImagesDocumentHandler::Image_XML_Namespace	nNamespace;
+     char											aEntryName[20];
+ };
+ 
+ ImageXMLEntryProperty ImagesEntries[OReadImagesDocumentHandler::IMG_XML_ENTRY_COUNT] =
+ {
+     { OReadImagesDocumentHandler::IMG_NS_IMAGE,	ELEMENT_IMAGECONTAINER			},
+     { OReadImagesDocumentHandler::IMG_NS_IMAGE,	ELEMENT_IMAGES					},
+     { OReadImagesDocumentHandler::IMG_NS_IMAGE,	ELEMENT_ENTRY					},
+     { OReadImagesDocumentHandler::IMG_NS_IMAGE,	ELEMENT_EXTERNALIMAGES			},
+     { OReadImagesDocumentHandler::IMG_NS_IMAGE,	ELEMENT_EXTERNALENTRY			},
+     { OReadImagesDocumentHandler::IMG_NS_XLINK,	ATTRIBUTE_HREF					},
+     { OReadImagesDocumentHandler::IMG_NS_IMAGE,	ATTRIBUTE_MASKCOLOR				},
+     { OReadImagesDocumentHandler::IMG_NS_IMAGE,	ATTRIBUTE_COMMAND				},
+     { OReadImagesDocumentHandler::IMG_NS_IMAGE, ATTRIBUTE_BITMAPINDEX			},
+     { OReadImagesDocumentHandler::IMG_NS_IMAGE, ATTRIBUTE_MASKURL				},
+     { OReadImagesDocumentHandler::IMG_NS_IMAGE, ATTRIBUTE_MASKMODE				},
+     { OReadImagesDocumentHandler::IMG_NS_IMAGE, ATTRIBUTE_HIGHCONTRASTURL		},
+     { OReadImagesDocumentHandler::IMG_NS_IMAGE, ATTRIBUTE_HIGHCONTRASTMASKURL	}
+ };
+ 
+ 
+ OReadImagesDocumentHandler::OReadImagesDocumentHandler( ImageListsDescriptor& aItems ) :
+     ThreadHelpBase( &Application::GetSolarMutex() ),
+     m_aImageList( aItems ),
+     m_pImages( 0 ),
+     m_pExternalImages( 0 )
+ {
+     m_aImageList.pImageList			= NULL;
+     m_aImageList.pExternalImageList = NULL;
+ 
+     m_nHashMaskModeBitmap	= ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_MASKMODE_BITMAP )).hashCode();
+     m_nHashMaskModeColor	= ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_MASKMODE_COLOR )).hashCode();
+ 
+     // create hash map to speed up lookup
+     for ( int i = 0; i < (int)IMG_XML_ENTRY_COUNT; i++ )
+     {
+         ::rtl::OUStringBuffer temp( 20 );
+ 
+         if ( ImagesEntries[i].nNamespace == IMG_NS_IMAGE )
+             temp.appendAscii( XMLNS_IMAGE );
+         else
+             temp.appendAscii( XMLNS_XLINK );
+ 
+         temp.appendAscii( XMLNS_FILTER_SEPARATOR );
+         temp.appendAscii( ImagesEntries[i].aEntryName );
+         m_aImageMap.insert( ImageHashMap::value_type( temp.makeStringAndClear(), (Image_XML_Entry)i ) );
+     }
+ 
+     // reset states
+     m_bImageContainerStartFound		= sal_False;
+     m_bImageContainerEndFound		= sal_False;
+     m_bImagesStartFound				= sal_False;
+     m_bImagesEndFound				= sal_False;
+     m_bImageStartFound				= sal_False;
+     m_bExternalImagesStartFound		= sal_False;
+     m_bExternalImagesEndFound		= sal_False;
+     m_bExternalImageStartFound		= sal_False;
+ }
+ 
+ OReadImagesDocumentHandler::~OReadImagesDocumentHandler()
+ {
+ }
+ 
+ // XDocumentHandler
+ void SAL_CALL OReadImagesDocumentHandler::startDocument(void)
+ throw (	SAXException, RuntimeException )
+ {
+ }
+ 
+ void SAL_CALL OReadImagesDocumentHandler::endDocument(void)
+ throw(	SAXException, RuntimeException )
+ {
+     ResetableGuard aGuard( m_aLock );
+ 
+     if (( m_bImageContainerStartFound && !m_bImageContainerEndFound ) ||
+         ( !m_bImageContainerStartFound && m_bImageContainerEndFound )	 )
+     {
+         ::rtl::OUString aErrorMessage = getErrorLineString();
+         aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "No matching start or end element 'image:imagecontainer' found!" ));
+         throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
+     }
+ }
+ 
+ void SAL_CALL OReadImagesDocumentHandler::startElement(
+     const ::rtl::OUString& aName, const Reference< XAttributeList > &xAttribs )
+ throw(	SAXException, RuntimeException )
+ {
+     ResetableGuard aGuard( m_aLock );
+ 
+     ImageHashMap::const_iterator pImageEntry = m_aImageMap.find( aName ) ;
+     if ( pImageEntry != m_aImageMap.end() )
+     {
+         switch ( pImageEntry->second )
+         {
+             case IMG_ELEMENT_IMAGECONTAINER:
+             {
+                 // image:imagecontainer element (container element for all further image elements)
+                 if ( m_bImageContainerStartFound )
+                 {
+                     ::rtl::OUString aErrorMessage = getErrorLineString();
+                     aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Element 'image:imagecontainer' cannot be embeded into 'image:imagecontainer'!" ));
+                     throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
+                 }
+ 
+                 m_bImageContainerStartFound = sal_True;
+             }
+             break;
+ 
+             case IMG_ELEMENT_IMAGES:
+             {
+                 if ( !m_bImageContainerStartFound )
+                 {
+                     ::rtl::OUString aErrorMessage = getErrorLineString();
+                     aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Element 'image:images' must be embeded into element 'image:imagecontainer'!" ));
+                     throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
+                 }
+ 
+                 if ( m_bImagesStartFound )
+                 {
+                     ::rtl::OUString aErrorMessage = getErrorLineString();
+                     aErrorMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Element 'image:images' cannot be embeded into 'image:images'!" ));
+                     throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
+                 }
+ 
+                 if ( !m_aImageList.pImageList )
+                     m_aImageList.pImageList = new ImageListDescriptor;
+ 
+                 m_bImagesStartFound = sal_True;
+                 m_pImages = new ImageListItemDescriptor;
+ 
+                 for ( sal_Int16 n = 0; n < xAttribs->getLength(); n++ )
+                 {
+                     pImageEntry = m_aImageMap.find( xAttribs->getNameByIndex( n ) );
+                     if ( pImageEntry != m_aImageMap.end() )
+                     {
+                         switch ( pImageEntry->second )
+                         {
+                             case IMG_ATTRIBUTE_HREF:

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list