summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--avmedia/prj/build.lst4
-rw-r--r--avmedia/source/framework/mediacontrol.cxx4
-rw-r--r--avmedia/source/gstreamer/exports.dxp3
-rw-r--r--avmedia/source/gstreamer/gstcommon.hxx68
-rw-r--r--avmedia/source/gstreamer/gstframegrabber.cxx307
-rw-r--r--avmedia/source/gstreamer/gstframegrabber.hxx81
-rw-r--r--avmedia/source/gstreamer/gstmanager.cxx85
-rw-r--r--avmedia/source/gstreamer/gstmanager.hxx74
-rw-r--r--avmedia/source/gstreamer/gstplayer.cxx938
-rw-r--r--avmedia/source/gstreamer/gstplayer.hxx236
-rw-r--r--avmedia/source/gstreamer/gstuno.cxx106
-rw-r--r--avmedia/source/gstreamer/gstwindow.cxx668
-rw-r--r--avmedia/source/gstreamer/gstwindow.hxx197
-rw-r--r--avmedia/source/gstreamer/makefile.mk71
-rw-r--r--avmedia/source/inc/mediamisc.hxx24
-rw-r--r--avmedia/source/java/PlayerWindow.java4
-rw-r--r--avmedia/source/java/avmedia.jarbin16420 -> 15776 bytes
-rw-r--r--avmedia/source/viewer/mediawindow.cxx47
-rw-r--r--avmedia/source/viewer/mediawindow_impl.cxx47
-rw-r--r--avmedia/source/viewer/mediawindow_impl.hxx9
-rw-r--r--avmedia/source/viewer/mediawindowbase_impl.cxx61
-rw-r--r--avmedia/source/viewer/mediawindowbase_impl.hxx5
-rw-r--r--avmedia/source/win/winuno.cxx6
-rw-r--r--basic/inc/basic/process.hxx6
-rw-r--r--basic/source/app/process.cxx38
-rw-r--r--basic/source/classes/eventatt.cxx2
-rw-r--r--[-rwxr-xr-x]basic/source/classes/sb.cxx0
-rwxr-xr-xbasic/source/classes/sbunoobj.cxx10
-rw-r--r--basic/source/runtime/methods.cxx83
-rw-r--r--basic/source/runtime/methods1.cxx33
-rw-r--r--basic/source/runtime/step0.cxx7
-rw-r--r--basic/source/sbx/sbxbase.cxx7
-rw-r--r--basic/source/sbx/sbxdate.cxx8
-rw-r--r--connectivity/source/drivers/adabas/BDriver.cxx44
-rw-r--r--connectivity/source/drivers/adabas/BFunctions.cxx2
-rw-r--r--connectivity/source/drivers/dbase/DTable.cxx8
-rw-r--r--connectivity/source/drivers/file/FResultSet.cxx9
-rw-r--r--connectivity/source/drivers/hsqldb/HStorageMap.cxx2
-rw-r--r--connectivity/source/drivers/kab/makefile.mk3
-rw-r--r--connectivity/source/drivers/mozab/MDriver.cxx2
-rw-r--r--connectivity/source/drivers/odbc/OFunctions.cxx4
-rw-r--r--connectivity/source/inc/odbc/OFunctiondefs.hxx2
-rw-r--r--desktop/source/app/app.cxx2
-rw-r--r--desktop/source/app/officeipcthread.cxx2
-rwxr-xr-x[-rw-r--r--]desktop/source/migration/services/cexportsoo3.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/migration/services/oo3extensionmigration.cxx0
-rwxr-xr-x[-rw-r--r--]desktop/source/migration/services/oo3extensionmigration.hxx0
-rw-r--r--drawinglayer/inc/drawinglayer/primitive2d/discreteshadowprimitive2d.hxx128
-rw-r--r--drawinglayer/inc/drawinglayer/primitive2d/drawinglayer_primitivetypes2d.hxx18
-rw-r--r--drawinglayer/prj/d.lst2
-rw-r--r--drawinglayer/source/primitive2d/discreteshadowprimitive2d.cxx339
-rw-r--r--drawinglayer/source/primitive2d/makefile.mk1
-rw-r--r--drawinglayer/source/processor2d/vclhelperbitmaprender.cxx36
-rw-r--r--editeng/source/editeng/editattr.cxx9
-rw-r--r--editeng/source/misc/txtrange.cxx8
-rw-r--r--fpicker/source/unx/gnome/SalGtkFilePicker.cxx52
-rw-r--r--fpicker/source/unx/gnome/SalGtkFolderPicker.cxx3
-rw-r--r--fpicker/source/unx/gnome/SalGtkPicker.cxx41
-rw-r--r--fpicker/source/unx/gnome/SalGtkPicker.hxx2
-rw-r--r--framework/inc/macros/debug/memorymeasure.hxx2
-rw-r--r--idl/source/cmptools/hash.cxx4
-rw-r--r--idl/source/cmptools/lex.cxx8
-rw-r--r--idl/source/prj/database.cxx6
-rw-r--r--idl/source/prj/globals.cxx10
-rw-r--r--idl/source/prj/idldll.cxx79
-rw-r--r--idl/source/prj/makefile.mk1
-rw-r--r--officecfg/registry/data/org/openoffice/Office/Paths.xcu3
-rw-r--r--officecfg/registry/data/org/openoffice/Office/makefile.mk2
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/Common.xcs356
-rw-r--r--sfx2/inc/sfx2/docfile.hxx3
-rw-r--r--sfx2/inc/sfx2/titledockwin.hxx10
-rw-r--r--sfx2/qa/cppunit/makefile.mk7
-rw-r--r--sfx2/qa/cppunit/test_metadatable.cxx2
-rw-r--r--sfx2/source/appl/app.cxx2
-rw-r--r--sfx2/source/appl/appquit.cxx3
-rw-r--r--sfx2/source/appl/impldde.cxx8
-rw-r--r--sfx2/source/appl/makefile.mk1
-rw-r--r--[-rwxr-xr-x]sfx2/source/dialog/dinfdlg.cxx13
-rw-r--r--sfx2/source/dialog/filedlghelper.cxx4
-rw-r--r--sfx2/source/dialog/titledockwin.cxx24
-rw-r--r--[-rwxr-xr-x]sfx2/source/doc/objmisc.cxx0
-rw-r--r--sfx2/source/view/viewfrm.cxx7
-rwxr-xr-xshell/inc/internal/utilities.hxx6
-rwxr-xr-x[-rw-r--r--]shell/source/win32/shlxthandler/columninfo/columninfo.cxx5
-rwxr-xr-x[-rw-r--r--]shell/source/win32/shlxthandler/infotips/infotips.cxx2
-rwxr-xr-xshell/source/win32/shlxthandler/ooofilt/ooofilt.cxx3
-rwxr-xr-x[-rw-r--r--]shell/source/win32/shlxthandler/prophdl/propertyhdl.cxx4
-rwxr-xr-xshell/source/win32/shlxthandler/propsheets/propsheets.cxx93
-rwxr-xr-x[-rw-r--r--]shell/source/win32/shlxthandler/thumbviewer/thumbviewer.cxx3
-rwxr-xr-x[-rw-r--r--]shell/source/win32/shlxthandler/util/fileextensions.cxx9
-rwxr-xr-x[-rw-r--r--]shell/source/win32/shlxthandler/util/utilities.cxx22
-rw-r--r--svx/inc/svdstr.hrc1
-rw-r--r--svx/inc/svimbase.hxx4
-rw-r--r--[-rwxr-xr-x]svx/inc/svx/dialogs.hrc0
-rw-r--r--svx/inc/svx/svdedtv.hxx12
-rw-r--r--svx/inc/svx/svdmodel.hxx4
-rw-r--r--svx/inc/svx/xpoly.hxx4
-rwxr-xr-x[-rw-r--r--]svx/source/dialog/svxruler.cxx25
-rw-r--r--svx/source/engine3d/scene3d.cxx2
-rw-r--r--svx/source/gengal/gengal.cxx5
-rw-r--r--svx/source/sdr/contact/viewcontactofsdrpage.cxx81
-rw-r--r--svx/source/sdr/contact/viewobjectcontactofsdrpage.cxx6
-rw-r--r--svx/source/svdraw/svdedtv.cxx40
-rw-r--r--svx/source/svdraw/svdocirc.cxx2
-rw-r--r--svx/source/svdraw/svdpagv.cxx4
-rw-r--r--svx/source/svdraw/svdstr.src5
-rw-r--r--svx/util/svxpch.cxx2
-rw-r--r--sysui/desktop/cleanversion/makefile.mk2
-rw-r--r--sysui/desktop/debian/makefile.mk20
-rw-r--r--sysui/desktop/productversion.mk2
-rw-r--r--sysui/desktop/slackware/makefile.mk20
-rw-r--r--ucb/source/ucp/odma/odma_lib.cxx4
-rw-r--r--uui/source/iahndl-authentication.cxx1
-rwxr-xr-xuui/source/iahndl.cxx73
-rwxr-xr-xuui/source/iahndl.hxx3
-rw-r--r--[-rwxr-xr-x]uui/source/ids.hrc8
-rwxr-xr-xuui/source/loginerr.hxx2
-rwxr-xr-x[-rw-r--r--]uui/source/makefile.mk4
-rwxr-xr-xuui/source/nameclashdlg.cxx107
-rwxr-xr-x[-rw-r--r--]uui/source/nameclashdlg.hrc (renamed from uui/source/passcrtdlg.hrc)26
-rwxr-xr-x[-rw-r--r--]uui/source/nameclashdlg.hxx (renamed from sfx2/source/appl/sfxdll.cxx)66
-rwxr-xr-xuui/source/nameclashdlg.src113
-rw-r--r--uui/source/passcrtdlg.cxx128
-rw-r--r--uui/source/passcrtdlg.hxx63
-rw-r--r--uui/source/passcrtdlg.src108
125 files changed, 4282 insertions, 1325 deletions
diff --git a/avmedia/prj/build.lst b/avmedia/prj/build.lst
index 1ef04ca0f7d5..6651d9d74f8f 100644
--- a/avmedia/prj/build.lst
+++ b/avmedia/prj/build.lst
@@ -6,6 +6,6 @@ av avmedia\source\viewer nmake - all av_viewer NULL
av avmedia\source\framework nmake - all av_framework NULL
av avmedia\source\win nmake - all av_win NULL
av avmedia\source\java nmake - all av_java NULL
-av avmedia\source\xine nmake - all av_xine NULL
av avmedia\source\quicktime nmake - all av_quicktime NULL
-av avmedia\util nmake - all av_util av_viewer av_framework av_win av_java av_quicktime av_xine NULL
+av avmedia\source\gstreamer nmake - all av_gstreamer NULL
+av avmedia\util nmake - all av_util av_viewer av_framework av_win av_java av_quicktime av_gstreamer NULL
diff --git a/avmedia/source/framework/mediacontrol.cxx b/avmedia/source/framework/mediacontrol.cxx
index a71b5268abd7..2eb18cb164d9 100644
--- a/avmedia/source/framework/mediacontrol.cxx
+++ b/avmedia/source/framework/mediacontrol.cxx
@@ -91,8 +91,6 @@ MediaControl::MediaControl( Window* pParent, MediaControlStyle eControlStyle ) :
if( MEDIACONTROLSTYLE_SINGLELINE != meControlStyle )
{
-
-
maPlayToolBox.InsertItem( AVMEDIA_TOOLBOXITEM_OPEN, implGetImage( AVMEDIA_IMG_OPEN ), String( AVMEDIA_RESID( AVMEDIA_STR_OPEN ) ) );
maPlayToolBox.SetHelpId( AVMEDIA_TOOLBOXITEM_OPEN, HID_AVMEDIA_TOOLBOXITEM_OPEN );
@@ -103,8 +101,6 @@ MediaControl::MediaControl( Window* pParent, MediaControlStyle eControlStyle ) :
}
else
{
- maTimeSlider.SetBackground();
- maVolumeSlider.SetBackground();
mpZoomListBox->SetBackground();
maZoomToolBox.SetBackground();
diff --git a/avmedia/source/gstreamer/exports.dxp b/avmedia/source/gstreamer/exports.dxp
new file mode 100644
index 000000000000..9630d7e06768
--- /dev/null
+++ b/avmedia/source/gstreamer/exports.dxp
@@ -0,0 +1,3 @@
+component_getImplementationEnvironment
+component_writeInfo
+component_getFactory
diff --git a/avmedia/source/gstreamer/gstcommon.hxx b/avmedia/source/gstreamer/gstcommon.hxx
new file mode 100644
index 000000000000..83bb818aefdc
--- /dev/null
+++ b/avmedia/source/gstreamer/gstcommon.hxx
@@ -0,0 +1,68 @@
+/*************************************************************************
+ *
+ * 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 _GSTCOMMON_HXX
+#define _GSTCOMMON_HXX
+
+#include <osl/mutex.hxx>
+#include <rtl/ustring.hxx>
+#include <tools/debug.hxx>
+#include <tools/stream.hxx>
+#include <tools/string.hxx>
+#include <tools/urlobj.hxx>
+#include <cppuhelper/implbase2.hxx>
+#include <cppuhelper/implbase3.hxx>
+#include <cppuhelper/weak.hxx>
+#include <cppuhelper/factory.hxx>
+
+#include <com/sun/star/uno/Reference.h>
+#include <com/sun/star/uno/RuntimeException.hpp>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/lang/XComponent.hpp>
+#include <com/sun/star/registry/XRegistryKey.hpp>
+#include <com/sun/star/lang/XComponent.hpp>
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#include <com/sun/star/awt/Rectangle.hpp>
+#include <com/sun/star/awt/KeyModifier.hpp>
+#include <com/sun/star/awt/MouseButton.hpp>
+#include <com/sun/star/media/XManager.hpp>
+
+#include <memory>
+
+#define AVMEDIA_GSTREAMER_MANAGER_IMPLEMENTATIONNAME "com.sun.star.comp.avmedia.Manager_GStreamer"
+#define AVMEDIA_GSTREAMER_MANAGER_SERVICENAME "com.sun.star.media.Manager_GStreamer"
+
+#define AVMEDIA_GSTREAMER_PLAYER_IMPLEMENTATIONNAME "com.sun.star.comp.avmedia.Player_GStreamer"
+#define AVMEDIA_GSTREAMER_PLAYER_SERVICENAME "com.sun.star.media.Player_GStreamer"
+
+#define AVMEDIA_GSTREAMER_WINDOW_IMPLEMENTATIONNAME "com.sun.star.comp.avmedia.Window_GStreamer"
+#define AVMEDIA_GSTREAMER_WINDOW_SERVICENAME "com.sun.star.media.Window_GStreamer"
+
+#define AVMEDIA_GSTREAMER_FRAMEGRABBER_IMPLEMENTATIONNAME "com.sun.star.comp.avmedia.FrameGrabber_GStreamer"
+#define AVMEDIA_GSTREAMER_FRAMEGRABBER_SERVICENAME "com.sun.star.media.FrameGrabber_GStreamer"
+
+#endif // _GSTCOMMOM_HXX
diff --git a/avmedia/source/gstreamer/gstframegrabber.cxx b/avmedia/source/gstreamer/gstframegrabber.cxx
new file mode 100644
index 000000000000..bd55e11f8afe
--- /dev/null
+++ b/avmedia/source/gstreamer/gstframegrabber.cxx
@@ -0,0 +1,307 @@
+/*************************************************************************
+ *
+ * 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.
+ *
+ ************************************************************************/
+
+#include "gstframegrabber.hxx"
+#include "gstplayer.hxx"
+
+#include <vcl/graph.hxx>
+#include <vcl/bmpacc.hxx>
+
+using namespace ::com::sun::star;
+
+namespace avmedia { namespace gst {
+
+const gulong GRAB_TIMEOUT = 10000000;
+
+// ----------------
+// - FrameGrabber -
+// ----------------
+
+FrameGrabber::FrameGrabber( GString* pURI ) :
+ Player( pURI ),
+ mpFrameMutex( g_mutex_new() ),
+ mpFrameCond( g_cond_new() ),
+ mpLastPixbuf( NULL ),
+ mbIsInGrabMode( false )
+{
+}
+
+// ------------------------------------------------------------------------------
+
+FrameGrabber::~FrameGrabber()
+{
+ if( g_atomic_pointer_get( &mpPlayer ) )
+ {
+ implQuitThread();
+ }
+
+ // thread has ended, so that no more synchronization is necessary
+ if( mpLastPixbuf )
+ {
+ g_object_unref( mpLastPixbuf );
+ mpLastPixbuf = NULL;
+ }
+
+ g_cond_free( mpFrameCond );
+ g_mutex_free( mpFrameMutex );
+}
+
+// ------------------------------------------------------------------------------
+
+FrameGrabber* FrameGrabber::create( const GString* pURI )
+{
+ FrameGrabber* pFrameGrabber = NULL;
+
+ if( pURI && pURI->len )
+ {
+ // safely initialize GLib threading framework
+ try
+ {
+ if( !g_thread_supported() )
+ {
+ g_thread_init( NULL );
+ }
+ }
+ catch( ... )
+ {}
+
+ if( g_thread_supported() )
+ {
+ pFrameGrabber = new FrameGrabber( g_string_new( pURI->str ) );
+
+ // wait until thread signals that it has finished initialization
+ if( pFrameGrabber->mpThread )
+ {
+ g_mutex_lock( pFrameGrabber->mpMutex );
+
+ while( !pFrameGrabber->implIsInitialized() )
+ {
+ g_cond_wait( pFrameGrabber->mpCond, pFrameGrabber->mpMutex );
+ }
+
+ g_mutex_unlock( pFrameGrabber->mpMutex );
+ }
+
+ GstElement* pPixbufSink = gst_element_factory_make( "gdkpixbufsink", NULL );
+
+ // check if player pipeline and GdkPixbufSink could be initialized
+ if( !pFrameGrabber->mpPlayer || !pPixbufSink )
+ {
+ delete pFrameGrabber;
+ pFrameGrabber = NULL;
+ }
+ else
+ {
+ g_object_set( pFrameGrabber->mpPlayer, "audio-sink", gst_element_factory_make( "fakesink", NULL ), NULL );
+ g_object_set( pFrameGrabber->mpPlayer, "video-sink", pPixbufSink, NULL );
+ }
+ }
+ }
+
+ return( pFrameGrabber );
+}
+
+// ------------------------------------------------------------------------------
+
+gboolean FrameGrabber::busCallback( GstBus* pBus, GstMessage* pMsg )
+{
+ bool bDone = false;
+
+ if( pMsg && pMsg->structure )
+ {
+ GstStructure* pStruct = pMsg->structure;
+ const gchar* pStructName = gst_structure_get_name( pStruct );
+
+ if( ( ::std::string( pStructName ).find( "pixbuf" ) != ::std::string::npos ) &&
+ gst_structure_has_field ( pStruct, "pixbuf") )
+ {
+ bool bFrameGrabbed = false;
+
+ g_mutex_lock( mpFrameMutex );
+
+ if( mbIsInGrabMode && ( getMediaTime() >= mfGrabTime ) )
+ {
+ OSL_TRACE( "Grabbing frame at %fs", getMediaTime() );
+
+ if( mpLastPixbuf )
+ {
+ g_object_unref( mpLastPixbuf );
+ mpLastPixbuf = NULL;
+ }
+
+ mpLastPixbuf = GDK_PIXBUF( g_value_dup_object( gst_structure_get_value( pStruct, "pixbuf" ) ) );
+ bFrameGrabbed = true;
+ }
+
+ g_mutex_unlock( mpFrameMutex );
+
+ if( bFrameGrabbed )
+ {
+ g_cond_signal( mpFrameCond );
+ }
+
+ bDone = true;
+ }
+ }
+
+ return( bDone || Player::busCallback( pBus, pMsg ) );
+}
+
+// ------------------------------------------------------------------------------
+
+uno::Reference< graphic::XGraphic > SAL_CALL FrameGrabber::grabFrame( double fMediaTime )
+ throw (uno::RuntimeException)
+{
+ uno::Reference< graphic::XGraphic > xRet;
+
+ if( implInitPlayer() )
+ {
+ OSL_TRACE( "Trying to grab frame at %fs", fMediaTime );
+
+ GTimeVal aTimeoutTime;
+
+ g_get_current_time( &aTimeoutTime );
+ g_time_val_add( &aTimeoutTime, GRAB_TIMEOUT );
+ setMediaTime( fMediaTime );
+ start();
+
+ if( isPlaying() )
+ {
+ g_mutex_lock( mpFrameMutex );
+
+ mbIsInGrabMode = true;
+ mfGrabTime = fMediaTime;
+ g_cond_timed_wait( mpFrameCond, mpFrameMutex, &aTimeoutTime );
+ mbIsInGrabMode = false;
+
+ g_mutex_unlock( mpFrameMutex );
+
+ stop();
+ }
+
+ OSL_ENSURE( g_atomic_pointer_get( &mpLastPixbuf ), "FrameGrabber timed out without receiving a Pixbuf" );
+
+ if( g_atomic_pointer_get( &mpLastPixbuf ) )
+ {
+ OSL_TRACE( "FrameGrabber received a GdkPixbuf");
+
+ g_mutex_lock( mpFrameMutex );
+
+ const int nWidth = gdk_pixbuf_get_width( mpLastPixbuf );
+ const int nHeight = gdk_pixbuf_get_height( mpLastPixbuf );
+ const int nChannels = gdk_pixbuf_get_n_channels( mpLastPixbuf );
+ const guchar* pBuffer = gdk_pixbuf_get_pixels( mpLastPixbuf );
+
+ if( pBuffer && ( nWidth > 0 ) && ( nHeight > 0 ) )
+ {
+ Bitmap aFrame( Size( nWidth, nHeight), 24 );
+ bool bInit = false;
+
+ if( ( gdk_pixbuf_get_colorspace( mpLastPixbuf ) == GDK_COLORSPACE_RGB ) &&
+ ( nChannels >= 3 ) && ( nChannels <= 4 ) &&
+ ( gdk_pixbuf_get_bits_per_sample( mpLastPixbuf ) == 8 ) )
+ {
+ BitmapWriteAccess* pAcc = aFrame.AcquireWriteAccess();
+
+ if( pAcc )
+ {
+ BitmapColor aPixel( 0, 0, 0 );
+ const int nRowStride = gdk_pixbuf_get_rowstride( mpLastPixbuf );
+ const bool bAlpha = ( nChannels == 4 );
+
+ for( int nRow = 0; nRow < nHeight; ++nRow )
+ {
+ guchar* pCur = const_cast< guchar* >( pBuffer + nRow * nRowStride );
+
+ for( int nCol = 0; nCol < nWidth; ++nCol )
+ {
+ aPixel.SetRed( *pCur++ );
+ aPixel.SetGreen( *pCur++ );
+ aPixel.SetBlue( *pCur++ );
+
+ // ignore alpha channel
+ if( bAlpha )
+ {
+ ++pCur;
+ }
+
+ pAcc->SetPixel( nRow, nCol, aPixel );
+ }
+ }
+
+ aFrame.ReleaseAccess( pAcc );
+ bInit = true;
+ }
+ }
+
+ if( !bInit )
+ {
+ aFrame.Erase( Color( COL_BLACK ) );
+ }
+
+ xRet = Graphic( aFrame ).GetXGraphic();
+ }
+
+ g_object_unref( mpLastPixbuf );
+ mpLastPixbuf = NULL;
+
+ g_mutex_unlock( mpFrameMutex );
+ }
+ }
+
+ return xRet;
+}
+
+// ------------------------------------------------------------------------------
+
+::rtl::OUString SAL_CALL FrameGrabber::getImplementationName( )
+ throw (uno::RuntimeException)
+{
+ return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( AVMEDIA_GSTREAMER_FRAMEGRABBER_IMPLEMENTATIONNAME ) );
+}
+
+// ------------------------------------------------------------------------------
+
+sal_Bool SAL_CALL FrameGrabber::supportsService( const ::rtl::OUString& ServiceName )
+ throw (uno::RuntimeException)
+{
+ return ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( AVMEDIA_GSTREAMER_FRAMEGRABBER_SERVICENAME ) );
+}
+
+// ------------------------------------------------------------------------------
+
+uno::Sequence< ::rtl::OUString > SAL_CALL FrameGrabber::getSupportedServiceNames( )
+ throw (uno::RuntimeException)
+{
+ uno::Sequence< ::rtl::OUString > aRet(1);
+ aRet[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( AVMEDIA_GSTREAMER_FRAMEGRABBER_SERVICENAME ) );
+
+ return aRet;
+}
+
+} // namespace win
+} // namespace avmedia
diff --git a/avmedia/source/gstreamer/gstframegrabber.hxx b/avmedia/source/gstreamer/gstframegrabber.hxx
new file mode 100644
index 000000000000..9a7ec1b74102
--- /dev/null
+++ b/avmedia/source/gstreamer/gstframegrabber.hxx
@@ -0,0 +1,81 @@
+/*************************************************************************
+ *
+ * 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 _FRAMEGRABBER_HXX
+#define _FRAMEGRABBER_HXX
+
+#include "gstplayer.hxx"
+#include <gdk-pixbuf/gdk-pixbuf.h>
+
+#ifndef _COM_SUN_STAR_MEDIA_XFRAMEGRABBER_HDL_
+#include "com/sun/star/media/XFrameGrabber.hdl"
+#endif
+
+namespace avmedia { namespace gst {
+
+// ----------------
+// - FrameGrabber -
+// ----------------
+
+class FrameGrabber : public Player,
+ public ::cppu::WeakImplHelper2 < ::com::sun::star::media::XFrameGrabber,
+ ::com::sun::star::lang::XServiceInfo >
+{
+public:
+
+ // static create method instead of public Ctor
+ static FrameGrabber* create( const GString* pUri );
+
+ ~FrameGrabber();
+
+ // XFrameGrabber
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::graphic::XGraphic > SAL_CALL grabFrame( double fMediaTime ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) throw (::com::sun::star::uno::RuntimeException);
+
+protected: FrameGrabber( GString* pURI = NULL );
+
+ virtual gboolean busCallback( GstBus* pBus,
+ GstMessage* pMsg );
+
+private: FrameGrabber( const FrameGrabber& );
+ FrameGrabber& operator=( const FrameGrabber& );
+
+ GMutex* mpFrameMutex;
+ GCond* mpFrameCond;
+ GdkPixbuf* mpLastPixbuf;
+ double mfGrabTime;
+ bool mbIsInGrabMode;
+};
+
+} // namespace gst
+} // namespace avmedia
+
+#endif // _FRAMEGRABBER_HXX
diff --git a/avmedia/source/gstreamer/gstmanager.cxx b/avmedia/source/gstreamer/gstmanager.cxx
new file mode 100644
index 000000000000..61ee4ce22cd8
--- /dev/null
+++ b/avmedia/source/gstreamer/gstmanager.cxx
@@ -0,0 +1,85 @@
+/*************************************************************************
+ *
+ * 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.
+ *
+ ************************************************************************/
+
+#include "gstmanager.hxx"
+#include "gstplayer.hxx"
+
+using namespace ::com::sun::star;
+
+namespace avmedia
+{
+namespace gst
+{
+// ----------------
+// - Manager -
+// ----------------
+
+Manager::Manager( const uno::Reference< lang::XMultiServiceFactory >& rxMgr ) :
+ mxMgr( rxMgr )
+{}
+
+// ------------------------------------------------------------------------------
+
+Manager::~Manager()
+{}
+
+// ------------------------------------------------------------------------------
+
+uno::Reference< media::XPlayer > SAL_CALL Manager::createPlayer( const ::rtl::OUString& rURL )
+ throw( uno::RuntimeException )
+{
+ return( ::avmedia::gst::Player::create( rURL ) );
+}
+
+// ------------------------------------------------------------------------------
+
+::rtl::OUString SAL_CALL Manager::getImplementationName()
+ throw( uno::RuntimeException )
+{
+ return( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( AVMEDIA_GSTREAMER_MANAGER_IMPLEMENTATIONNAME ) ) );
+}
+
+// ------------------------------------------------------------------------------
+
+sal_Bool SAL_CALL Manager::supportsService( const ::rtl::OUString& ServiceName )
+ throw( uno::RuntimeException )
+{
+ return( ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( AVMEDIA_GSTREAMER_MANAGER_SERVICENAME ) ) );
+}
+
+// ------------------------------------------------------------------------------
+
+uno::Sequence< ::rtl::OUString > SAL_CALL Manager::getSupportedServiceNames()
+ throw( uno::RuntimeException )
+{
+ uno::Sequence< ::rtl::OUString > aRet( 1 );
+ aRet[ 0 ] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( AVMEDIA_GSTREAMER_MANAGER_SERVICENAME ) );
+
+ return( aRet );
+}
+} // namespace gst
+} // namespace avmedia
diff --git a/avmedia/source/gstreamer/gstmanager.hxx b/avmedia/source/gstreamer/gstmanager.hxx
new file mode 100644
index 000000000000..9f80e8c1a901
--- /dev/null
+++ b/avmedia/source/gstreamer/gstmanager.hxx
@@ -0,0 +1,74 @@
+/*************************************************************************
+ *
+ * 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 _GSTMANAGER_HXX
+#define _GSTMANAGER_HXX
+
+#include "gstcommon.hxx"
+
+#ifndef _COM_SUN_STAR_MEDIA_XMANAGER_HDL_
+#include "com/sun/star/media/XManager.hdl"
+#endif
+
+// -----------
+// - Manager -
+// -----------
+
+namespace avmedia
+{
+namespace gst
+{
+class Manager : public ::cppu::WeakImplHelper2< ::com::sun::star::media::XManager,
+ ::com::sun::star::lang::XServiceInfo >
+{
+public: Manager( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& rxMgr );
+ ~Manager();
+
+ // XManager
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::media::XPlayer > SAL_CALL createPlayer(
+ const ::rtl::OUString& aURL )
+ throw( ::com::sun::star::uno::RuntimeException );
+
+ // XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName()
+ throw( ::com::sun::star::uno::RuntimeException );
+
+ virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName )
+ throw( ::com::sun::star::uno::RuntimeException );
+
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames()
+ throw( ::com::sun::star::uno::RuntimeException );
+
+
+private:
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > mxMgr;
+};
+} // namespace gst
+} // namespace avmedia
+
+#endif // _GSTMANAGER_HXX
diff --git a/avmedia/source/gstreamer/gstplayer.cxx b/avmedia/source/gstreamer/gstplayer.cxx
new file mode 100644
index 000000000000..f082cfc5c513
--- /dev/null
+++ b/avmedia/source/gstreamer/gstplayer.cxx
@@ -0,0 +1,938 @@
+/*************************************************************************
+ *
+ * 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.
+ *
+ ************************************************************************/
+
+#include "gstplayer.hxx"
+#include "gstwindow.hxx"
+#include "gstframegrabber.hxx"
+#include <stdio.h>
+#include <unistd.h>
+#include <math.h>
+#include <string>
+#include <gst/gstelement.h>
+#include <gst/interfaces/xoverlay.h>
+
+
+// maximum timeout time in nanoseconds
+#define GST_MAX_TIMEOUT (2500 * GST_MSECOND)
+
+using namespace ::com::sun::star;
+
+namespace avmedia
+{
+namespace gst
+{
+const double NANO_TIME_FACTOR = 1000000000.0;
+
+const long VIDEO_DEFAULT_WIDTH = 256;
+const long VIDEO_DEFAULT_HEIGHT = 192;
+
+// ----------------
+// - GstBusSource -
+// ----------------
+
+struct GstBusSource : public GSource
+{
+ GstBus* mpBus;
+
+ GstBusSource() :
+ mpBus( NULL )
+ {}
+
+ ~GstBusSource()
+ {}
+};
+
+// ---------------
+// - Player -
+// ---------------
+Player::Player( GString* pURI ) :
+ mpMutex( g_mutex_new() ),
+ mpCond( g_cond_new() ),
+ mpThread( NULL ),
+ mpContext( NULL ),
+ mpLoop( NULL ),
+ mpPlayer( NULL ),
+ mpURI( pURI ),
+ mpPlayerWindow( NULL ),
+ mnIsVideoSource( 0 ),
+ mnVideoWidth( 0 ),
+ mnVideoHeight( 0 ),
+ mnInitialized( 0 ),
+ mnVolumeDB( 0 ),
+ mnLooping( 0 ),
+ mnQuit( 0 ),
+ mnVideoWindowSet( 0 ),
+ mnInitFail( 0 )
+{
+ // initialize GStreamer framework only once
+ static bool bGstInitialized = false;
+
+ if( !bGstInitialized )
+ {
+ gst_init( NULL, NULL );
+ bGstInitialized = true;
+ }
+
+ if( pURI )
+ {
+ OSL_TRACE( ">>> --------------------------------" );
+ OSL_TRACE( ">>> Creating Player object with URL: %s", pURI->str );
+
+ mpThread = g_thread_create( Player::implThreadFunc, this, true, NULL );
+ }
+}
+
+// ------------------------------------------------------------------------------
+
+Player::~Player()
+{
+ if( g_atomic_pointer_get( &mpPlayer ) )
+ {
+ implQuitThread();
+ }
+
+ // cleanup
+ g_cond_free( mpCond );
+ g_mutex_free( mpMutex );
+ g_string_free( mpURI, false );
+}
+
+// ------------------------------------------------------------------------------
+Player* Player::create( const ::rtl::OUString& rURL )
+{
+ Player* pPlayer = NULL;
+
+ if( rURL.getLength() )
+ {
+ // safely initialize GLib threading framework
+ try
+ {
+ if( !g_thread_supported() )
+ {
+ g_thread_init( NULL );
+ }
+ }
+ catch( ... )
+ {}
+
+ if( g_thread_supported() )
+ {
+ const INetURLObject aURL( rURL );
+
+ if( aURL.GetProtocol() != INET_PROT_NOT_VALID )
+ {
+ GString* pURI = g_string_new( ::rtl::OUStringToOString(
+ aURL.GetMainURL( INetURLObject::NO_DECODE ),
+ RTL_TEXTENCODING_UTF8 ).getStr() );
+
+ if( pURI->len )
+ {
+ pPlayer = new Player( pURI );
+
+ // wait until thread signals that it has finished initialization
+ if( pPlayer->mpThread )
+ {
+ g_mutex_lock( pPlayer->mpMutex );
+
+ while( !pPlayer->implIsInitialized() )
+ {
+ g_cond_wait( pPlayer->mpCond, pPlayer->mpMutex );
+ }
+
+ g_mutex_unlock( pPlayer->mpMutex );
+ }
+
+ // check if player pipeline could be initialized
+ if( !pPlayer->mpPlayer )
+ {
+ delete pPlayer;
+ pPlayer = NULL;
+ }
+ }
+ else
+ {
+ g_string_free( pURI, false );
+ }
+ }
+ }
+ }
+
+ return( pPlayer );
+}
+
+// ------------------------------------------------------------------------------
+void SAL_CALL Player::start()
+ throw( uno::RuntimeException )
+{
+ if( implInitPlayer() && !isPlaying() )
+ {
+ gst_element_set_state( mpPlayer, GST_STATE_PLAYING );
+ }
+}
+
+// ------------------------------------------------------------------------------
+void SAL_CALL Player::stop()
+ throw( uno::RuntimeException )
+{
+ if( implInitPlayer() && isPlaying() )
+ {
+ gst_element_set_state( mpPlayer, GST_STATE_PAUSED );
+ }
+}
+
+// ------------------------------------------------------------------------------
+sal_Bool SAL_CALL Player::isPlaying()
+ throw( uno::RuntimeException )
+{
+ GstState aState = GST_STATE_NULL;
+
+ if( mpPlayer )
+ {
+ gst_element_get_state( mpPlayer, &aState, NULL, GST_MAX_TIMEOUT );
+ }
+
+ return( GST_STATE_PLAYING == aState );
+}
+
+// ------------------------------------------------------------------------------
+double SAL_CALL Player::getDuration()
+ throw( uno::RuntimeException )
+{
+ gint64 nDuration = 0;
+
+ if( implInitPlayer() )
+ {
+ GstFormat aFormat = GST_FORMAT_TIME;
+
+ if( !gst_element_query_duration( mpPlayer, &aFormat, &nDuration ) ||
+ ( GST_FORMAT_TIME != aFormat ) ||
+ ( nDuration < 0 ) )
+ {
+ nDuration = 0;
+ }
+ }
+
+ return( static_cast< double >( nDuration ) / NANO_TIME_FACTOR );
+}
+
+// ------------------------------------------------------------------------------
+void SAL_CALL Player::setMediaTime( double fTime )
+ throw( uno::RuntimeException )
+{
+ if( implInitPlayer() )
+ {
+ fTime = ::std::min( ::std::max( fTime, 0.0 ), getDuration() );
+
+ gst_element_seek_simple( mpPlayer, GST_FORMAT_TIME,
+ (GstSeekFlags) ( GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_KEY_UNIT ),
+ static_cast< gint64 >( fTime * NANO_TIME_FACTOR ) );
+ }
+}
+
+// ------------------------------------------------------------------------------
+double SAL_CALL Player::getMediaTime()
+ throw( uno::RuntimeException )
+{
+ double fRet = 0.0;
+
+ if( implInitPlayer() )
+ {
+ GstFormat aFormat = GST_FORMAT_TIME;
+ gint64 nCurTime = 0;
+
+ if( gst_element_query_position( mpPlayer, &aFormat, &nCurTime ) &&
+ ( GST_FORMAT_TIME == aFormat ) &&
+ ( nCurTime >= 0 ) )
+ {
+ fRet = static_cast< double >( nCurTime ) / NANO_TIME_FACTOR;
+ }
+ }
+
+ return( fRet );
+}
+
+// ------------------------------------------------------------------------------
+void SAL_CALL Player::setStopTime( double /* fTime */ )
+ throw( uno::RuntimeException )
+{
+ OSL_TRACE( "GStreamer method avmedia::gst::Player::setStopTime needs to be implemented" );
+
+ /* Currently no need for implementation since higher levels of code don't use this method at all
+ !!! TODO: needs to be implemented if this functionality is needed at a later point of time
+ if( implInitPlayer() )
+ {
+ }
+
+ */
+}
+
+// ------------------------------------------------------------------------------
+double SAL_CALL Player::getStopTime()
+ throw( uno::RuntimeException )
+{
+ /*
+ Currently no need for implementation since higher levels of code don't set a stop time ATM
+ !!! TODO: needs to be fully implemented if this functionality is needed at a later point of time
+ */
+
+ return( getDuration() );
+}
+
+// ------------------------------------------------------------------------------
+void SAL_CALL Player::setRate( double /* fRate */ )
+ throw( uno::RuntimeException )
+{
+ OSL_TRACE( "GStreamer method avmedia::gst::Player::setRate needs to be implemented" );
+
+ /* Currently no need for implementation since higher levels of code don't use this method at all
+ !!! TODO: needs to be implemented if this functionality is needed at a later point of time
+ */
+}
+
+// ------------------------------------------------------------------------------
+double SAL_CALL Player::getRate()
+ throw( uno::RuntimeException )
+{
+ /*
+ Currently no need for implementation since higher levels of code don't set a different rate than 1 ATM
+ !!! TODO: needs to be fully implemented if this functionality is needed at a later point of time
+ */
+
+ return( 1.0 );
+}
+
+// ------------------------------------------------------------------------------
+void SAL_CALL Player::setPlaybackLoop( sal_Bool bSet )
+ throw( uno::RuntimeException )
+{
+ if( bSet && !isPlaybackLoop() )
+ g_atomic_int_inc( &mnLooping );
+ else if( !bSet && isPlaybackLoop() )
+ g_atomic_int_dec_and_test( &mnLooping );
+}
+
+// ------------------------------------------------------------------------------
+sal_Bool SAL_CALL Player::isPlaybackLoop()
+ throw( uno::RuntimeException )
+{
+ return( g_atomic_int_get( &mnLooping ) > 0 );
+}
+
+// ------------------------------------------------------------------------------
+void SAL_CALL Player::setMute( sal_Bool bSet )
+ throw( uno::RuntimeException )
+{
+ if( implInitPlayer() && ( bSet != isMute() ) )
+ {
+ if( bSet )
+ {
+ g_object_set( mpPlayer, "volume", 0.0, NULL );
+ }
+ else
+ {
+ setVolumeDB( mnVolumeDB );
+ }
+ }
+}
+
+// ------------------------------------------------------------------------------
+sal_Bool SAL_CALL Player::isMute()
+ throw( uno::RuntimeException )
+{
+ gdouble fGstVolume = 1.0;
+
+ if( implInitPlayer() )
+ {
+ g_object_get( mpPlayer, "volume", &fGstVolume, NULL );
+ }
+
+ return( 0.0 == fGstVolume );
+}
+
+// ------------------------------------------------------------------------------
+void SAL_CALL Player::setVolumeDB( sal_Int16 nVolumeDB )
+ throw( uno::RuntimeException )
+{
+ if( implInitPlayer() )
+ {
+ g_mutex_lock( mpMutex );
+ mnVolumeDB = nVolumeDB;
+ g_mutex_unlock( mpMutex );
+
+ // maximum gain for gstreamer volume is 10
+ double fGstVolume = pow( 10.0, static_cast< double >( ::std::min(
+ nVolumeDB, static_cast< sal_Int16 >( 20 ) ) / 20.0 ) );
+
+ g_object_set( mpPlayer, "volume", fGstVolume, NULL );
+ }
+}
+
+// ------------------------------------------------------------------------------
+sal_Int16 SAL_CALL Player::getVolumeDB()
+ throw( uno::RuntimeException )
+{
+ return( static_cast< sal_Int16 >( g_atomic_int_get( &mnVolumeDB ) ) );
+}
+
+// ------------------------------------------------------------------------------
+awt::Size SAL_CALL Player::getPreferredPlayerWindowSize()
+ throw( uno::RuntimeException )
+{
+ awt::Size aSize( 0, 0 );
+
+ if( implInitPlayer() && ( g_atomic_int_get( &mnIsVideoSource ) > 0 ) )
+ {
+ aSize.Width = g_atomic_int_get( &mnVideoWidth );
+ aSize.Height = g_atomic_int_get( &mnVideoHeight );
+
+ // if we have a video source, but no size is given => use default size
+ if( ( aSize.Width <= 0 ) || ( aSize.Height <= 0 ) )
+ {
+ aSize.Width = VIDEO_DEFAULT_WIDTH;
+ aSize.Height = VIDEO_DEFAULT_HEIGHT;
+ }
+ }
+
+ OSL_TRACE( ">>> Requested preferred video size is: %d x %d pixel", aSize.Width, aSize.Height );
+
+ return( aSize );
+}
+
+// ------------------------------------------------------------------------------
+uno::Reference< ::media::XPlayerWindow > SAL_CALL Player::createPlayerWindow(
+ const uno::Sequence< uno::Any >& rArguments )
+ throw( uno::RuntimeException )
+{
+ uno::Reference< ::media::XPlayerWindow > xRet;
+ awt::Size aSize( getPreferredPlayerWindowSize() );
+
+ OSL_ENSURE( !g_atomic_pointer_get( &mpPlayerWindow ), "::avmedia::gst::Player already has a player window" );
+
+ if( ( aSize.Width > 0 ) && ( aSize.Height > 0 ) )
+ {
+ Window* pPlayerWindow = new Window( *this );
+
+ xRet = pPlayerWindow;
+
+ if( !pPlayerWindow->create( rArguments ) )
+ {
+ xRet.clear();
+ }
+ else
+ {
+ // try to use gconf user configurable video sink first
+ GstElement* pVideoSink = gst_element_factory_make( "gconfvideosink", NULL );
+
+ if( ( NULL != pVideoSink ) ||
+ ( NULL != ( pVideoSink = gst_element_factory_make( "autovideosink", NULL ) ) ) ||
+ ( NULL != ( pVideoSink = gst_element_factory_make( "xvimagesink", NULL ) ) ) ||
+ ( NULL != ( pVideoSink = gst_element_factory_make( "ximagesink", NULL ) ) ) )
+ {
+ GstState aOldState = GST_STATE_NULL;
+
+ mpPlayerWindow = pPlayerWindow;
+ gst_element_get_state( mpPlayer, &aOldState, NULL, GST_MAX_TIMEOUT );
+ gst_element_set_state( mpPlayer, GST_STATE_READY );
+ g_object_set( mpPlayer, "video-sink", pVideoSink, NULL );
+ gst_element_set_state( mpPlayer, aOldState );
+ }
+ }
+ }
+
+ return( xRet );
+}
+
+// ------------------------------------------------------------------------------
+uno::Reference< media::XFrameGrabber > SAL_CALL Player::createFrameGrabber()
+ throw( ::com::sun::star::uno::RuntimeException )
+{
+ FrameGrabber* pFrameGrabber = NULL;
+ const awt::Size aPrefSize( getPreferredPlayerWindowSize() );
+
+ if( ( aPrefSize.Width > 0 ) && ( aPrefSize.Height > 0 ) )
+ {
+ pFrameGrabber = FrameGrabber::create( mpURI );
+ }
+
+ return( pFrameGrabber );
+}
+
+// ------------------------------------------------------------------------------
+void SAL_CALL Player::dispose()
+ throw( uno::RuntimeException )
+{
+ if( mpPlayer )
+ {
+ stop();
+ implQuitThread();
+ }
+
+ OSL_ASSERT( NULL == mpPlayer );
+}
+
+// ------------------------------------------------------------------------------
+void SAL_CALL Player::addEventListener( const uno::Reference< lang::XEventListener >& /*rxListener*/ )
+ throw( uno::RuntimeException )
+{}
+
+// ------------------------------------------------------------------------------
+void SAL_CALL Player::removeEventListener( const uno::Reference< lang::XEventListener >& /*rxListener*/ )
+ throw( uno::RuntimeException )
+{}
+
+// ------------------------------------------------------------------------------
+::rtl::OUString SAL_CALL Player::getImplementationName()
+ throw( uno::RuntimeException )
+{
+ return( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( AVMEDIA_GSTREAMER_PLAYER_IMPLEMENTATIONNAME ) ) );
+}
+
+// ------------------------------------------------------------------------------
+sal_Bool SAL_CALL Player::supportsService( const ::rtl::OUString& ServiceName )
+ throw( uno::RuntimeException )
+{
+ return( ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( AVMEDIA_GSTREAMER_PLAYER_SERVICENAME ) ) );
+}
+
+// ------------------------------------------------------------------------------
+uno::Sequence< ::rtl::OUString > SAL_CALL Player::getSupportedServiceNames()
+ throw( uno::RuntimeException )
+{
+ uno::Sequence< ::rtl::OUString > aRet( 1 );
+ aRet[ 0 ] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( AVMEDIA_GSTREAMER_PLAYER_SERVICENAME ) );
+
+ return( aRet );
+}
+
+// ------------------------------------------------------------------------------
+void Player::implQuitThread()
+{
+ if( mpThread )
+ {
+ // set quit flag to 1 so that the main loop will be quit in idle
+ // handler the next time it is called from the thread's main loop
+ g_atomic_int_inc( &mnQuit );
+
+ // wait until loop and as such the thread has quit
+ g_thread_join( mpThread );
+ mpThread = NULL;
+ }
+}
+
+// ------------------------------------------------------------------------------
+bool Player::implInitPlayer()
+{
+ bool bRet = false;
+
+ if( mpPlayer && (mnInitFail < 3) )
+ {
+ GstState aState = GST_STATE_NULL;
+
+ if( gst_element_get_state( mpPlayer, &aState, NULL, GST_MAX_TIMEOUT ) == GST_STATE_CHANGE_SUCCESS )
+ {
+ bRet = ( GST_STATE_PAUSED == aState ) || ( GST_STATE_PLAYING == aState );
+
+ if( !bRet )
+ {
+ gst_element_set_state( mpPlayer, GST_STATE_PAUSED );
+ bRet = ( gst_element_get_state( mpPlayer, &aState, NULL,
+ GST_MAX_TIMEOUT ) == GST_STATE_CHANGE_SUCCESS ) &&
+ ( GST_STATE_PAUSED == aState );
+ }
+ }
+
+ if( ! bRet )
+ mnInitFail++;
+ }
+
+ return( bRet );
+}
+
+// ------------------------------------------------------------------------------
+gboolean Player::implBusPrepare( GSource* pSource,
+ gint* pTimeout )
+{
+ if( pTimeout )
+ {
+ *pTimeout = 0;
+ }
+
+ return( implBusCheck( pSource ) );
+}
+
+// ------------------------------------------------------------------------------
+gboolean Player::implBusCheck( GSource* pSource )
+{
+ GstBusSource* pBusSource = static_cast< GstBusSource* >( pSource );
+
+ return( pBusSource &&
+ GST_IS_BUS( pBusSource->mpBus ) &&
+ gst_bus_have_pending( GST_BUS_CAST( pBusSource->mpBus ) ) );
+}
+
+// ------------------------------------------------------------------------------
+gboolean Player::implBusDispatch( GSource* pSource,
+ GSourceFunc /*aCallback*/,
+ gpointer pData )
+{
+ GstBusSource* pBusSource = static_cast< GstBusSource* >( pSource );
+ gboolean bRet = false;
+
+ if( pData && pBusSource && GST_IS_BUS( pBusSource->mpBus ) )
+ {
+ GstMessage* pMsg = gst_bus_pop( pBusSource->mpBus );
+
+ if( pMsg )
+ {
+ bRet = static_cast< Player* >( pData )->busCallback( pBusSource->mpBus, pMsg );
+ gst_message_unref( pMsg );
+ }
+ }
+
+ return( bRet );
+}
+
+// ------------------------------------------------------------------------------
+void Player::implBusFinalize( GSource* pSource )
+{
+ GstBusSource* pBusSource = static_cast< GstBusSource* >( pSource );
+
+ if( pBusSource && pBusSource->mpBus )
+ {
+ gst_object_unref( pBusSource->mpBus );
+ pBusSource->mpBus = NULL;
+ }
+}
+
+// ------------------------------------------------------------------------------
+gboolean Player::busCallback( GstBus* /*pBus*/,
+ GstMessage* pMsg )
+{
+ if( pMsg && mpLoop )
+ {
+ switch( GST_MESSAGE_TYPE( pMsg ) )
+ {
+ case ( GST_MESSAGE_EOS ):
+ {
+ if( g_atomic_int_get( &mnLooping ) > 0 )
+ {
+ setMediaTime( 0.0 );
+ start();
+ }
+ else
+ {
+ stop();
+ }
+ }
+ break;
+
+ case ( GST_MESSAGE_ERROR ):
+ {
+ gchar* pDebug;
+ GError* pErr;
+
+ gst_message_parse_error( pMsg, &pErr, &pDebug );
+ fprintf( stderr, "Error: %s\n", pErr->message );
+
+ g_free( pDebug );
+ g_error_free( pErr );
+ }
+ break;
+
+ default:
+ {
+ break;
+ }
+ }
+ }
+
+ return( true );
+}
+
+// ------------------------------------------------------------------------------
+gboolean Player::implIdleFunc( gpointer pData )
+{
+ return( pData ? static_cast< Player* >( pData )->idle() : true );
+}
+
+// ------------------------------------------------------------------------------
+gpointer Player::implThreadFunc( gpointer pData )
+{
+ return( pData ? static_cast< Player* >( pData )->run() : NULL );
+}
+
+// ------------------------------------------------------------------------------
+GstBusSyncReply Player::implHandleCreateWindowFunc( GstBus* pBus,
+ GstMessage* pMsg,
+ gpointer pData )
+{
+ return( pData ? static_cast< Player* >( pData )->handleCreateWindow( pBus, pMsg ) : GST_BUS_PASS );
+}
+
+// ------------------------------------------------------------------------------
+void Player::implHandleNewElementFunc( GstBin* /* pBin */,
+ GstElement* pElement,
+ gpointer pData )
+{
+ if( pElement )
+ {
+#ifdef DEBUG
+ gchar* pElementName = gst_element_get_name( pElement );
+
+ if( pElementName )
+ {
+ OSL_TRACE( ">>> Bin has element: %s", pElementName );
+ g_free( pElementName );
+ }
+#endif
+
+ if( GST_IS_BIN( pElement ) )
+ {
+ // set this handler in case we have a GstBin element
+ g_signal_connect( GST_BIN( pElement ), "element-added",
+ G_CALLBACK( Player::implHandleNewElementFunc ), pData );
+ }
+
+ // watch for all pads that are going to be added to this element;
+ g_signal_connect( pElement, "pad-added",
+ G_CALLBACK( Player::implHandleNewPadFunc ), pData );
+ }
+}
+
+// ------------------------------------------------------------------------------
+void Player::implHandleNewPadFunc( GstElement* pElement,
+ GstPad* pPad,
+ gpointer pData )
+{
+ Player* pPlayer = static_cast< Player* >( pData );
+
+ if( pPlayer && pElement && pPad )
+ {
+#ifdef DEBUG
+ gchar* pElementName = gst_element_get_name( pElement );
+ gchar* pPadName = gst_pad_get_name( pPad );
+
+ OSL_TRACE( ">>> Element %s has pad: %s", pElementName, pPadName );
+
+ g_free( pPadName );
+ g_free( pElementName );
+#endif
+
+ GstCaps* pCaps = gst_pad_get_caps( pPad );
+
+ // we are interested only in getting video properties
+ // width and height or if we have a video source at all
+ if( pCaps )
+ {
+ for( gint i = 0, nSize = gst_caps_get_size( pCaps ); i < nSize; ++i )
+ {
+ const GstStructure* pStruct = gst_caps_get_structure( pCaps, i );
+
+ if( pStruct )
+ {
+ const gchar* pStructName = gst_structure_get_name( pStruct );
+
+#ifdef DEBUG
+ OSL_TRACE( "\t>>> Pad has structure: %s", pStructName );
+
+ for( gint n = 0, nFields = gst_structure_n_fields( pStruct ); n < nFields; ++n )
+ {
+ OSL_TRACE( "\t\t>>> Structure has field: %s", gst_structure_nth_field_name( pStruct, n ) );
+ }
+#endif
+
+ // just look for structures having 'video' in their names
+ if( ::std::string( pStructName ).find( "video" ) != ::std::string::npos )
+ {
+ g_atomic_int_inc( &pPlayer->mnIsVideoSource );
+
+ for( gint n = 0, nFields = gst_structure_n_fields( pStruct ); n < nFields; ++n )
+ {
+ const gchar* pFieldName = gst_structure_nth_field_name( pStruct, n );
+ gint nValue;
+
+ if( ( ::std::string( pFieldName ).find( "width" ) != ::std::string::npos ) &&
+ gst_structure_get_int( pStruct, pFieldName, &nValue ) )
+ {
+ const gint nDiff = nValue - g_atomic_int_get( &pPlayer->mnVideoWidth );
+ g_atomic_int_add( &pPlayer->mnVideoWidth, ::std::max( nDiff, 0 ) );
+ }
+ else if( ( ::std::string( pFieldName ).find( "height" ) != ::std::string::npos ) &&
+ gst_structure_get_int( pStruct, pFieldName, &nValue ) )
+ {
+ const gint nDiff = nValue - g_atomic_int_get( &pPlayer->mnVideoHeight );
+ g_atomic_int_add( &pPlayer->mnVideoHeight, ::std::max( nDiff, 0 ) );
+ }
+ }
+ }
+ }
+ }
+
+ gst_caps_unref( pCaps );
+ }
+ }
+}
+
+// ------------------------------------------------------------------------------
+gboolean Player::idle()
+{
+ // test if main loop should quit and set flag mnQuit to 1
+ bool bQuit = g_atomic_int_compare_and_exchange( &mnQuit, 1, 1 );
+
+ if( bQuit )
+ {
+ // set mnQuit back to 0 to avoid mutiple g_main_loop_quit calls
+ // in case Player::idle() is called again later;
+ // the flag should have been set only once within Ctor called from
+ // the application thread
+ g_atomic_int_dec_and_test( &mnQuit );
+ g_main_loop_quit( mpLoop );
+ }
+
+ // don't eat up all cpu time
+ usleep( 1000 );
+
+ return( true );
+}
+
+// ------------------------------------------------------------------------------
+gpointer Player::run()
+{
+ static GSourceFuncs aSourceFuncs =
+ {
+ Player::implBusPrepare,
+ Player::implBusCheck,
+ Player::implBusDispatch,
+ Player::implBusFinalize,
+ NULL,
+ NULL
+ };
+
+ if( NULL != ( mpPlayer = gst_element_factory_make( "playbin", NULL ) ) )
+ {
+ // initialization
+ // no mutex necessary since initialization
+ // is synchronous until loop is started
+ mpContext = g_main_context_new();
+ mpLoop = g_main_loop_new( mpContext, false );
+
+ // add idle callback
+ GSource* pIdleSource = g_idle_source_new();
+ g_source_set_callback( pIdleSource, Player::implIdleFunc, this, NULL );
+ g_source_attach( pIdleSource, mpContext );
+
+ // add bus callback
+ GSource* pBusSource = g_source_new( &aSourceFuncs, sizeof( GstBusSource ) );
+ static_cast< GstBusSource* >( pBusSource )->mpBus = gst_pipeline_get_bus( GST_PIPELINE( mpPlayer ) );
+ g_source_set_callback( pBusSource, NULL, this, NULL );
+ g_source_attach( pBusSource, mpContext );
+
+ // add bus sync handler to intercept video window creation for setting our own window
+ gst_bus_set_sync_handler( static_cast< GstBusSource* >( pBusSource )->mpBus,
+ Player::implHandleCreateWindowFunc, this );
+
+ // watch for all elements (and pads) that will be added to the playbin,
+ // in order to retrieve properties like video width and height
+ g_signal_connect( GST_BIN( mpPlayer ), "element-added",
+ G_CALLBACK( Player::implHandleNewElementFunc ), this );
+
+ // set source URI for player
+ g_object_set( mpPlayer, "uri", mpURI->str, NULL );
+
+ // set video fake sink first, since we only create a player without window here
+ // and don't want to have the gstreamer default window appearing
+ g_object_set( mpPlayer, "video-sink", gst_element_factory_make( "fakesink", NULL ), NULL );
+
+ // set state of player to READY or destroy object in case of FAILURE
+ if( gst_element_set_state( mpPlayer, GST_STATE_READY ) == GST_STATE_CHANGE_FAILURE )
+ {
+ gst_object_unref( mpPlayer );
+ mpPlayer = NULL;
+ }
+
+ g_atomic_int_add( &mnInitialized, 1 );
+ g_cond_signal( mpCond );
+
+ // run the main loop
+ g_main_loop_run( mpLoop );
+
+ // clenanup
+ // no mutex necessary since other thread joined us (this thread)
+ // after setting the quit flag
+ if( mpPlayer )
+ {
+ gst_element_set_state( mpPlayer, GST_STATE_NULL );
+ gst_object_unref( mpPlayer );
+ mpPlayer = NULL;
+ }
+
+ g_main_loop_unref( mpLoop );
+ mpLoop = NULL;
+
+ g_source_destroy( pBusSource );
+ g_source_unref( pBusSource );
+
+ g_source_destroy( pIdleSource );
+ g_source_unref( pIdleSource );
+
+ g_main_context_unref( mpContext );
+ mpContext = NULL;
+ }
+ else
+ {
+ g_atomic_int_add( &mnInitialized, 1 );
+ g_cond_signal( mpCond );
+ }
+
+ return( NULL );
+}
+
+// ------------------------------------------------------------------------------
+GstBusSyncReply Player::handleCreateWindow( GstBus* /* pBus */,
+ GstMessage* pMsg )
+{
+ GstBusSyncReply eRet = GST_BUS_PASS;
+
+ if( pMsg &&
+ ( GST_MESSAGE_TYPE( pMsg ) == GST_MESSAGE_ELEMENT ) &&
+ gst_structure_has_name( pMsg->structure, "prepare-xwindow-id" ) &&
+ g_atomic_pointer_get( &mpPlayerWindow ) )
+ {
+ OSL_TRACE( ">>> Got Request to create XOverlay" );
+
+ gst_x_overlay_set_xwindow_id( GST_X_OVERLAY( GST_MESSAGE_SRC( pMsg ) ),
+ static_cast< Window* >( g_atomic_pointer_get(
+ &mpPlayerWindow ) )->getXWindowHandle() );
+
+ gst_message_unref( pMsg );
+ eRet = GST_BUS_DROP;
+ }
+
+ return( eRet );
+}
+} // namespace gst
+} // namespace avmedia
diff --git a/avmedia/source/gstreamer/gstplayer.hxx b/avmedia/source/gstreamer/gstplayer.hxx
new file mode 100644
index 000000000000..d751e381258d
--- /dev/null
+++ b/avmedia/source/gstreamer/gstplayer.hxx
@@ -0,0 +1,236 @@
+/*************************************************************************
+ *
+ * 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 _GSTPLAYER_HXX
+#define _GSTPLAYER_HXX
+
+#include "gstcommon.hxx"
+#include <glib.h>
+#include <glib/gatomic.h>
+
+// necessary for mixed environments with GStreamer-0.10 and GLib versions < 2.8
+#ifndef G_GNUC_NULL_TERMINATED
+#if __GNUC__ >= 4
+#define G_GNUC_NULL_TERMINATED __attribute__((__sentinel__))
+#else
+#define G_GNUC_NULL_TERMINATED
+#endif
+#endif
+
+struct _GOptionGroup;
+typedef struct _GOptionGroup GOptionGroup;
+
+#include <gst/gst.h>
+#include "com/sun/star/media/XPlayer.hdl"
+
+namespace avmedia
+{
+namespace gst
+{
+class Window;
+
+// ---------------
+// - Player_Impl -
+// ---------------
+
+class Player : public ::cppu::WeakImplHelper3< ::com::sun::star::media::XPlayer,
+ ::com::sun::star::lang::XComponent,
+ ::com::sun::star::lang::XServiceInfo >
+{
+public:
+
+ // static create method instead of public Ctor
+ static Player* create( const ::rtl::OUString& rURL );
+
+ ~Player();
+
+ // XPlayer
+ virtual void SAL_CALL start()
+ throw( ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL stop()
+ throw( ::com::sun::star::uno::RuntimeException );
+
+ virtual sal_Bool SAL_CALL isPlaying()
+ throw( ::com::sun::star::uno::RuntimeException );
+
+ virtual double SAL_CALL getDuration()
+ throw( ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL setMediaTime( double fTime )
+ throw( ::com::sun::star::uno::RuntimeException );
+
+ virtual double SAL_CALL getMediaTime()
+ throw( ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL setStopTime( double fTime )
+ throw( ::com::sun::star::uno::RuntimeException );
+
+ virtual double SAL_CALL getStopTime()
+ throw( ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL setRate( double fRate )
+ throw( ::com::sun::star::uno::RuntimeException );
+
+ virtual double SAL_CALL getRate()
+ throw( ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL setPlaybackLoop( sal_Bool bSet )
+ throw( ::com::sun::star::uno::RuntimeException );
+
+ virtual sal_Bool SAL_CALL isPlaybackLoop()
+ throw( ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL setMute( sal_Bool bSet )
+ throw( ::com::sun::star::uno::RuntimeException );
+
+ virtual sal_Bool SAL_CALL isMute()
+ throw( ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL setVolumeDB( sal_Int16 nVolumeDB )
+ throw( ::com::sun::star::uno::RuntimeException );
+
+ virtual sal_Int16 SAL_CALL getVolumeDB()
+ throw( ::com::sun::star::uno::RuntimeException );
+
+ virtual ::com::sun::star::awt::Size SAL_CALL getPreferredPlayerWindowSize()
+ throw( ::com::sun::star::uno::RuntimeException );
+
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::media::XPlayerWindow > SAL_CALL createPlayerWindow(
+ const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments )
+ throw( ::com::sun::star::uno::RuntimeException );
+
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::media::XFrameGrabber > SAL_CALL createFrameGrabber()
+ throw( ::com::sun::star::uno::RuntimeException );
+
+ // XComponent
+ virtual void SAL_CALL dispose()
+ throw( ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL addEventListener(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& xListener )
+ throw( ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL removeEventListener(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& aListener )
+ throw( ::com::sun::star::uno::RuntimeException );
+
+ // XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName()
+ throw( ::com::sun::star::uno::RuntimeException );
+
+ virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName )
+ throw( ::com::sun::star::uno::RuntimeException );
+
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames()
+ throw( ::com::sun::star::uno::RuntimeException );
+
+
+protected:
+
+ Player( GString* pURI = NULL );
+
+ virtual gboolean busCallback( GstBus* pBus,
+ GstMessage* pMsg );
+
+ virtual gboolean idle();
+
+ virtual gpointer run();
+
+ virtual GstBusSyncReply handleCreateWindow( GstBus* pBus,
+ GstMessage* pMsg );
+
+ void implQuitThread();
+
+ bool implInitPlayer();
+
+ bool implIsInitialized() const
+ {
+ return( g_atomic_int_get( &mnInitialized ) > 0 );
+ }
+
+
+private:
+
+ Player( const Player& );
+
+ Player& operator=( const Player& );
+
+ static gboolean implBusPrepare( GSource* pSource,
+ gint* pTimeout );
+
+ static gboolean implBusCheck( GSource* pSource );
+
+ static gboolean implBusDispatch( GSource* pSource,
+ GSourceFunc aCallback,
+ gpointer pData );
+
+ static void implBusFinalize( GSource* pSource );
+
+ static gboolean implIdleFunc( gpointer pData );
+
+ static gpointer implThreadFunc( gpointer pData );
+
+ static GstBusSyncReply implHandleCreateWindowFunc( GstBus* pBus,
+ GstMessage* pMsg,
+ gpointer pDData );
+
+ static void implHandleNewElementFunc( GstBin* pBin,
+ GstElement* pElement,
+ gpointer pData );
+
+ static void implHandleNewPadFunc( GstElement* pElem,
+ GstPad* pPad,
+ gpointer pData );
+
+protected:
+
+ GMutex* mpMutex;
+ GCond* mpCond;
+ GThread* mpThread;
+ GMainContext* mpContext;
+ GMainLoop* mpLoop;
+ GstElement* mpPlayer;
+ GString* mpURI;
+
+private:
+
+ ::avmedia::gst::Window* mpPlayerWindow;
+ gint mnIsVideoSource;
+ gint mnVideoWidth;
+ gint mnVideoHeight;
+ gint mnInitialized;
+ gint mnVolumeDB;
+ gint mnLooping;
+ gint mnQuit;
+ gint mnVideoWindowSet;
+ gint mnInitFail;
+};
+} // namespace gst
+} // namespace avmedia
+
+#endif // _GSTPLAYER_HXX
diff --git a/avmedia/source/gstreamer/gstuno.cxx b/avmedia/source/gstreamer/gstuno.cxx
new file mode 100644
index 000000000000..adcda63fcd9c
--- /dev/null
+++ b/avmedia/source/gstreamer/gstuno.cxx
@@ -0,0 +1,106 @@
+/*************************************************************************
+ *
+ * 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.
+ *
+ ************************************************************************/
+
+#include "gstcommon.hxx"
+#include "gstmanager.hxx"
+
+using namespace ::com::sun::star;
+
+// -------------------
+// - factory methods -
+// -------------------
+
+static uno::Reference< uno::XInterface > SAL_CALL create_MediaPlayer( const uno::Reference< lang::XMultiServiceFactory >& rxFact )
+{
+ return uno::Reference< uno::XInterface >( *new ::avmedia::gst::Manager( rxFact ) );
+}
+
+// ------------------------------------------
+// - component_getImplementationEnvironment -
+// ------------------------------------------
+
+extern "C" void SAL_CALL component_getImplementationEnvironment( const sal_Char ** ppEnvTypeName, uno_Environment ** /* ppEnv */ )
+{
+ *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+}
+
+// -----------------------
+// - component_writeInfo -
+// -----------------------
+
+extern "C" sal_Bool SAL_CALL component_writeInfo( void* /* pServiceManager */, void* pRegistryKey )
+{
+ sal_Bool bRet = sal_False;
+
+ if( pRegistryKey )
+ {
+ try
+ {
+ uno::Reference< registry::XRegistryKey > xNewKey1(
+ static_cast< registry::XRegistryKey* >( pRegistryKey )->createKey(
+ ::rtl::OUString::createFromAscii(
+ "/" AVMEDIA_GSTREAMER_MANAGER_IMPLEMENTATIONNAME "/UNO/SERVICES/"
+ AVMEDIA_GSTREAMER_MANAGER_SERVICENAME ) ) );
+
+ bRet = sal_True;
+ }
+ catch( registry::InvalidRegistryException& )
+ {
+ OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
+ }
+ }
+
+ return bRet;
+}
+
+// ------------------------
+// - component_getFactory -
+// ------------------------
+
+extern "C" void* SAL_CALL component_getFactory( const sal_Char* pImplName, void* pServiceManager, void* /* pRegistryKey */ )
+{
+ uno::Reference< lang::XSingleServiceFactory > xFactory;
+ void* pRet = 0;
+
+ if( rtl_str_compare( pImplName, AVMEDIA_GSTREAMER_MANAGER_IMPLEMENTATIONNAME ) == 0 )
+ {
+ const ::rtl::OUString aServiceName( ::rtl::OUString::createFromAscii( AVMEDIA_GSTREAMER_MANAGER_SERVICENAME ) );
+
+ xFactory = uno::Reference< lang::XSingleServiceFactory >( ::cppu::createSingleFactory(
+ reinterpret_cast< lang::XMultiServiceFactory* >( pServiceManager ),
+ ::rtl::OUString::createFromAscii( AVMEDIA_GSTREAMER_MANAGER_IMPLEMENTATIONNAME ),
+ create_MediaPlayer, uno::Sequence< ::rtl::OUString >( &aServiceName, 1 ) ) );
+ }
+
+ if( xFactory.is() )
+ {
+ xFactory->acquire();
+ pRet = xFactory.get();
+ }
+
+ return pRet;
+}
diff --git a/avmedia/source/gstreamer/gstwindow.cxx b/avmedia/source/gstreamer/gstwindow.cxx
new file mode 100644
index 000000000000..12606ad5e88b
--- /dev/null
+++ b/avmedia/source/gstreamer/gstwindow.cxx
@@ -0,0 +1,668 @@
+/*************************************************************************
+ *
+ * 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.
+ *
+ ************************************************************************/
+
+#include <tools/prex.h>
+#include <tools/postx.h>
+
+#include <com/sun/star/awt/SystemPointer.hdl>
+
+#include "gstwindow.hxx"
+#include "gstplayer.hxx"
+#include <vcl/syschild.hxx>
+#include <vcl/sysdata.hxx>
+
+using namespace ::com::sun::star;
+
+namespace avmedia
+{
+namespace gst
+{
+// ---------------------
+// - PlayerChildWindow -
+// ---------------------
+
+class PlayerChildWindow : public SystemChildWindow
+{
+public:
+
+ PlayerChildWindow( Window* pParent );
+ ~PlayerChildWindow();
+
+protected:
+
+ virtual void MouseMove( const MouseEvent& rMEvt );
+ virtual void MouseButtonDown( const MouseEvent& rMEvt );
+ virtual void MouseButtonUp( const MouseEvent& rMEvt );
+ virtual void KeyInput( const KeyEvent& rKEvt );
+ virtual void KeyUp( const KeyEvent& rKEvt );
+ virtual void Command( const CommandEvent& rCEvt );
+};
+
+// ---------------------------------------------------------------------
+
+PlayerChildWindow::PlayerChildWindow( Window* pParent ) :
+ SystemChildWindow( pParent, WB_CLIPCHILDREN )
+{
+}
+
+// ---------------------------------------------------------------------
+
+PlayerChildWindow::~PlayerChildWindow()
+{
+}
+
+// ---------------------------------------------------------------------
+
+void PlayerChildWindow::MouseMove( const MouseEvent& rMEvt )
+{
+ const MouseEvent aTransformedEvent( GetParent()->ScreenToOutputPixel( OutputToScreenPixel( rMEvt.GetPosPixel() ) ),
+ rMEvt.GetClicks(), rMEvt.GetMode(), rMEvt.GetButtons(), rMEvt.GetModifier() );
+
+ SystemChildWindow::MouseMove( rMEvt );
+ GetParent()->MouseMove( aTransformedEvent );
+}
+
+// ---------------------------------------------------------------------
+
+void PlayerChildWindow::MouseButtonDown( const MouseEvent& rMEvt )
+{
+ const MouseEvent aTransformedEvent( GetParent()->ScreenToOutputPixel( OutputToScreenPixel( rMEvt.GetPosPixel() ) ),
+ rMEvt.GetClicks(), rMEvt.GetMode(), rMEvt.GetButtons(), rMEvt.GetModifier() );
+
+ SystemChildWindow::MouseButtonDown( rMEvt );
+ GetParent()->MouseButtonDown( aTransformedEvent );
+}
+
+// ---------------------------------------------------------------------
+
+void PlayerChildWindow::MouseButtonUp( const MouseEvent& rMEvt )
+{
+ const MouseEvent aTransformedEvent( GetParent()->ScreenToOutputPixel( OutputToScreenPixel( rMEvt.GetPosPixel() ) ),
+ rMEvt.GetClicks(), rMEvt.GetMode(), rMEvt.GetButtons(), rMEvt.GetModifier() );
+
+ SystemChildWindow::MouseButtonUp( rMEvt );
+ GetParent()->MouseButtonUp( aTransformedEvent );
+}
+
+// ---------------------------------------------------------------------
+
+void PlayerChildWindow::KeyInput( const KeyEvent& rKEvt )
+{
+ SystemChildWindow::KeyInput( rKEvt );
+ GetParent()->KeyInput( rKEvt );
+}
+
+// ---------------------------------------------------------------------
+
+void PlayerChildWindow::KeyUp( const KeyEvent& rKEvt )
+{
+ SystemChildWindow::KeyUp( rKEvt );
+ GetParent()->KeyUp( rKEvt );
+}
+
+// ---------------------------------------------------------------------
+
+void PlayerChildWindow::Command( const CommandEvent& rCEvt )
+{
+ const CommandEvent aTransformedEvent( GetParent()->ScreenToOutputPixel( OutputToScreenPixel( rCEvt.GetMousePosPixel() ) ),
+ rCEvt.GetCommand(), rCEvt.IsMouseEvent(), rCEvt.GetData() );
+
+ SystemChildWindow::Command( rCEvt );
+ GetParent()->Command( aTransformedEvent );
+}
+
+// ---------------
+// - Window -
+// ---------------
+Window::Window( ::avmedia::gst::Player& rPlayer ) :
+ maListeners( maMutex ),
+ maWindowRect( 0, 0, 0, 0 ),
+ mrPlayer( rPlayer ),
+ mpPlayerWindow( NULL ),
+ meZoomLevel( media::ZoomLevel_NOT_AVAILABLE ),
+ mnPointerType( awt::SystemPointer::ARROW )
+{}
+
+// ------------------------------------------------------------------------------
+
+Window::~Window()
+{
+ dispose();
+}
+
+// ------------------------------------------------------------------------------
+
+void Window::implLayoutVideoWindow()
+{
+ if( mpPlayerWindow && ( media::ZoomLevel_NOT_AVAILABLE != meZoomLevel ) )
+ {
+ awt::Size aPrefSize( mrPlayer.getPreferredPlayerWindowSize() );
+ awt::Rectangle aRect = getPosSize();
+ int nW = aRect.Width, nH = aRect.Height;
+ int nVideoW = nW, nVideoH = nH;
+ int nX = 0, nY = 0, nWidth = 0, nHeight = 0;
+ bool bDone = false, bZoom = false;
+
+ if( media::ZoomLevel_ORIGINAL == meZoomLevel )
+ {
+ bZoom = true;
+ }
+ else if( media::ZoomLevel_ZOOM_1_TO_4 == meZoomLevel )
+ {
+ aPrefSize.Width >>= 2;
+ aPrefSize.Height >>= 2;
+ bZoom = true;
+ }
+ else if( media::ZoomLevel_ZOOM_1_TO_2 == meZoomLevel )
+ {
+ aPrefSize.Width >>= 1;
+ aPrefSize.Height >>= 1;
+ bZoom = true;
+ }
+ else if( media::ZoomLevel_ZOOM_2_TO_1 == meZoomLevel )
+ {
+ aPrefSize.Width <<= 1;
+ aPrefSize.Height <<= 1;
+ bZoom = true;
+ }
+ else if( media::ZoomLevel_ZOOM_4_TO_1 == meZoomLevel )
+ {
+ aPrefSize.Width <<= 2;
+ aPrefSize.Height <<= 2;
+ bZoom = true;
+ }
+ else if( media::ZoomLevel_FIT_TO_WINDOW == meZoomLevel )
+ {
+ nWidth = nVideoW;
+ nHeight = nVideoH;
+ bDone = true;
+ }
+
+ if( bZoom )
+ {
+ if( ( aPrefSize.Width <= nVideoW ) && ( aPrefSize.Height <= nVideoH ) )
+ {
+ nX = ( nVideoW - aPrefSize.Width ) >> 1;
+ nY = ( nVideoH - aPrefSize.Height ) >> 1;
+ nWidth = aPrefSize.Width;
+ nHeight = aPrefSize.Height;
+ bDone = true;
+ }
+ }
+
+ if( !bDone )
+ {
+ if( ( aPrefSize.Width > 0 ) && ( aPrefSize.Height > 0 ) && ( nVideoW > 0 ) && ( nVideoH > 0 ) )
+ {
+ double fPrefWH = (double) aPrefSize.Width / aPrefSize.Height;
+
+ if( fPrefWH < ( (double) nVideoW / nVideoH ) )
+ {
+ nVideoW = (int) ( nVideoH * fPrefWH );
+ }
+ else
+ {
+ nVideoH = (int) ( nVideoW / fPrefWH );
+ }
+
+ nX = ( nW - nVideoW ) >> 1;
+ nY = ( nH - nVideoH ) >> 1;
+ nWidth = nVideoW;
+ nHeight = nVideoH;
+ }
+ else
+ {
+ nX = nY = nWidth = nHeight = 0;
+ }
+ }
+
+ mpPlayerWindow->SetPosSizePixel( Point( nX, nY ), Size( nWidth, nHeight ) );
+ }
+}
+
+// ------------------------------------------------------------------------------
+
+bool Window::create( const uno::Sequence< uno::Any >& rArguments )
+{
+ OSL_ASSERT( !mpPlayerWindow );
+ OSL_ENSURE( rArguments.getLength() > 2,
+"::avmedia::gst::Windiow::create: GStreamer backend needs \
+valid parent SystemChildWindow pointer (sal_IntPtr) as third Any \
+value in sequence of arguments" );
+
+ bool bRet = false;
+
+ if( !mpPlayerWindow && ( rArguments.getLength() > 2 ) )
+ {
+ SystemChildWindow* pParentWindow = NULL;
+ sal_IntPtr pIntPtr = 0;
+
+ // we are not interested in the first argument, which is a pure X11 window handle;
+ // this backend relies on a SystemChildWindow as parent for the PlayerWindow, given
+ // as third Sal_IntPtr value within the argument Sequence
+ rArguments[ 1 ] >>= maWindowRect;
+
+ rArguments[ 2 ] >>= pIntPtr;
+ pParentWindow = reinterpret_cast< SystemChildWindow* >( pIntPtr );
+
+ if( pParentWindow )
+ {
+ meZoomLevel = media::ZoomLevel_ORIGINAL;
+
+ mpPlayerWindow = new PlayerChildWindow( pParentWindow );
+ mpPlayerWindow->SetBackground( Color( COL_BLACK ) );
+ mpPlayerWindow->SetPosSizePixel( Point( maWindowRect.X, maWindowRect.Y ),
+ Size( maWindowRect.Width, maWindowRect.Height ) );
+ mpPlayerWindow->Show();
+
+ bRet = true;
+ }
+ }
+
+ return( bRet );
+}
+
+// ------------------------------------------------------------------------------
+
+void SAL_CALL Window::update()
+ throw( uno::RuntimeException )
+{
+ if( mpPlayerWindow )
+ {
+ mpPlayerWindow->Invalidate( INVALIDATE_UPDATE );
+ mpPlayerWindow->Sync();
+ }
+}
+
+// ------------------------------------------------------------------------------
+
+sal_Bool SAL_CALL Window::setZoomLevel( media::ZoomLevel eZoomLevel )
+ throw(uno::RuntimeException)
+{
+ bool bRet = false;
+
+ if( ( media::ZoomLevel_NOT_AVAILABLE != meZoomLevel ) &&
+ ( media::ZoomLevel_NOT_AVAILABLE != eZoomLevel ) )
+ {
+ if( eZoomLevel != meZoomLevel )
+ {
+ meZoomLevel = eZoomLevel;
+ implLayoutVideoWindow();
+ }
+
+ bRet = true;
+ }
+
+ return( bRet );
+}
+
+// ------------------------------------------------------------------------------
+
+media::ZoomLevel SAL_CALL Window::getZoomLevel()
+ throw( uno::RuntimeException )
+{
+ return( meZoomLevel );
+}
+
+// ------------------------------------------------------------------------------
+
+void SAL_CALL Window::setPointerType( sal_Int32 nPointerType )
+ throw( uno::RuntimeException )
+{
+ if( mpPlayerWindow )
+ {
+ Pointer ePointer = POINTER_ARROW;
+
+ switch( nPointerType )
+ {
+ case (awt::SystemPointer::CROSS) :
+ {
+ ePointer = POINTER_CROSS;
+ }
+ break;
+
+ case (awt::SystemPointer::HAND) :
+ {
+ ePointer = POINTER_HAND;
+ }
+ break;
+
+ case (awt::SystemPointer::MOVE) :
+ {
+ ePointer = POINTER_MOVE;
+ }
+ break;
+
+ case (awt::SystemPointer::WAIT) :
+ {
+ ePointer = POINTER_WAIT;
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ mpPlayerWindow->SetPointer( ePointer );
+ }
+}
+
+// ------------------------------------------------------------------------------
+
+void SAL_CALL Window::setPosSize( sal_Int32 nX,
+ sal_Int32 nY,
+ sal_Int32 nWidth,
+ sal_Int32 nHeight,
+ sal_Int16 /* Flags */ )
+ throw( uno::RuntimeException )
+{
+ maWindowRect.X = nX;
+ maWindowRect.Y = nY;
+ maWindowRect.Width = nWidth;
+ maWindowRect.Height = nHeight;
+
+ implLayoutVideoWindow();
+}
+
+// ------------------------------------------------------------------------------
+
+awt::Rectangle SAL_CALL Window::getPosSize()
+ throw( uno::RuntimeException )
+{
+ return( maWindowRect );
+}
+
+// ------------------------------------------------------------------------------
+
+void SAL_CALL Window::setVisible( sal_Bool bVisible )
+ throw( uno::RuntimeException )
+{
+ if( mpPlayerWindow )
+ {
+ bVisible ? mpPlayerWindow->Show() : mpPlayerWindow->Hide();
+ }
+}
+
+// ------------------------------------------------------------------------------
+
+void SAL_CALL Window::setEnable( sal_Bool bEnable )
+ throw( uno::RuntimeException )
+{
+ if( mpPlayerWindow )
+ {
+ mpPlayerWindow->Enable( bEnable );
+ }
+}
+
+// ------------------------------------------------------------------------------
+
+void SAL_CALL Window::setFocus()
+ throw( uno::RuntimeException )
+{
+ if( mpPlayerWindow )
+ {
+ mpPlayerWindow->GrabFocus();
+ }
+}
+
+// ------------------------------------------------------------------------------
+
+void SAL_CALL Window::addWindowListener( const uno::Reference< awt::XWindowListener >& xListener )
+ throw( uno::RuntimeException )
+{
+ maListeners.addInterface( getCppuType( &xListener ), xListener );
+}
+
+// ------------------------------------------------------------------------------
+
+void SAL_CALL Window::removeWindowListener( const uno::Reference< awt::XWindowListener >& xListener )
+ throw( uno::RuntimeException )
+{
+ maListeners.removeInterface( getCppuType( &xListener ), xListener );
+}
+
+// ------------------------------------------------------------------------------
+
+void SAL_CALL Window::addFocusListener( const uno::Reference< awt::XFocusListener >& xListener )
+ throw( uno::RuntimeException )
+{
+ maListeners.addInterface( getCppuType( &xListener ), xListener );
+}
+
+// ------------------------------------------------------------------------------
+
+void SAL_CALL Window::removeFocusListener( const uno::Reference< awt::XFocusListener >& xListener )
+ throw( uno::RuntimeException )
+{
+ maListeners.removeInterface( getCppuType( &xListener ), xListener );
+}
+
+// ------------------------------------------------------------------------------
+
+void SAL_CALL Window::addKeyListener( const uno::Reference< awt::XKeyListener >& xListener )
+ throw( uno::RuntimeException )
+{
+ maListeners.addInterface( getCppuType( &xListener ), xListener );
+}
+
+// ------------------------------------------------------------------------------
+
+void SAL_CALL Window::removeKeyListener( const uno::Reference< awt::XKeyListener >& xListener )
+ throw( uno::RuntimeException )
+{
+ maListeners.removeInterface( getCppuType( &xListener ), xListener );
+}
+
+// ------------------------------------------------------------------------------
+
+void SAL_CALL Window::addMouseListener( const uno::Reference< awt::XMouseListener >& xListener )
+ throw( uno::RuntimeException )
+{
+ maListeners.addInterface( getCppuType( &xListener ), xListener );
+}
+
+// ------------------------------------------------------------------------------
+
+void SAL_CALL Window::removeMouseListener( const uno::Reference< awt::XMouseListener >& xListener )
+ throw( uno::RuntimeException )
+{
+ maListeners.removeInterface( getCppuType( &xListener ), xListener );
+}
+
+// ------------------------------------------------------------------------------
+
+void SAL_CALL Window::addMouseMotionListener( const uno::Reference< awt::XMouseMotionListener >& xListener )
+ throw( uno::RuntimeException )
+{
+ maListeners.addInterface( getCppuType( &xListener ), xListener );
+}
+
+// ------------------------------------------------------------------------------
+
+void SAL_CALL Window::removeMouseMotionListener( const uno::Reference< awt::XMouseMotionListener >& xListener )
+ throw( uno::RuntimeException )
+{
+ maListeners.removeInterface( getCppuType( &xListener ), xListener );
+}
+
+// ------------------------------------------------------------------------------
+
+void SAL_CALL Window::addPaintListener( const uno::Reference< awt::XPaintListener >& xListener )
+ throw( uno::RuntimeException )
+{
+ maListeners.addInterface( getCppuType( &xListener ), xListener );
+}
+
+// ------------------------------------------------------------------------------
+
+void SAL_CALL Window::removePaintListener( const uno::Reference< awt::XPaintListener >& xListener )
+ throw( uno::RuntimeException )
+{
+ maListeners.removeInterface( getCppuType( &xListener ), xListener );
+}
+
+// ------------------------------------------------------------------------------
+
+void SAL_CALL Window::dispose()
+ throw( uno::RuntimeException )
+{
+ delete mpPlayerWindow;
+ mpPlayerWindow = NULL;
+}
+
+// ------------------------------------------------------------------------------
+
+void SAL_CALL Window::addEventListener( const uno::Reference< lang::XEventListener >& xListener )
+ throw( uno::RuntimeException )
+{
+ maListeners.addInterface( getCppuType( &xListener ), xListener );
+}
+
+// ------------------------------------------------------------------------------
+
+void SAL_CALL Window::removeEventListener( const uno::Reference< lang::XEventListener >&
+ xListener )
+ throw( uno::RuntimeException )
+{
+ maListeners.removeInterface( getCppuType( &xListener ), xListener );
+}
+
+// ------------------------------------------------------------------------------
+
+void Window::fireMousePressedEvent( const ::com::sun::star::awt::MouseEvent& rEvt )
+{
+ ::cppu::OInterfaceContainerHelper* pContainer =
+ maListeners.getContainer( getCppuType( ( uno::Reference< awt::XMouseListener >* ) 0 ) );
+
+ if( pContainer )
+ {
+ ::cppu::OInterfaceIteratorHelper aIter( *pContainer );
+
+ while( aIter.hasMoreElements() )
+ {
+ uno::Reference< awt::XMouseListener >( aIter.next(),
+ uno::UNO_QUERY )->mousePressed( rEvt );
+ }
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+void Window::fireMouseReleasedEvent( const ::com::sun::star::awt::MouseEvent& rEvt )
+{
+ ::cppu::OInterfaceContainerHelper* pContainer =
+ maListeners.getContainer( getCppuType( ( uno::Reference< awt::XMouseListener >* ) 0 ) );
+
+ if( pContainer )
+ {
+ ::cppu::OInterfaceIteratorHelper aIter( *pContainer );
+
+ while( aIter.hasMoreElements() )
+ {
+ uno::Reference< awt::XMouseListener >( aIter.next(),
+ uno::UNO_QUERY )->mouseReleased( rEvt );
+ }
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+void Window::fireMouseMovedEvent( const ::com::sun::star::awt::MouseEvent& rEvt )
+{
+ ::cppu::OInterfaceContainerHelper* pContainer =
+ maListeners.getContainer( getCppuType( ( uno::Reference< awt::XMouseMotionListener >* )
+ 0 ) );
+
+ if( pContainer )
+ {
+ ::cppu::OInterfaceIteratorHelper aIter( *pContainer );
+
+ while( aIter.hasMoreElements() )
+ {
+ uno::Reference< awt::XMouseMotionListener >( aIter.next(),
+ uno::UNO_QUERY )->mouseMoved( rEvt );
+ }
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+void Window::fireSetFocusEvent( const ::com::sun::star::awt::FocusEvent& rEvt )
+{
+ ::cppu::OInterfaceContainerHelper* pContainer =
+ maListeners.getContainer( getCppuType( ( uno::Reference< awt::XFocusListener >* ) 0 ) );
+
+ if( pContainer )
+ {
+ ::cppu::OInterfaceIteratorHelper aIter( *pContainer );
+
+ while( aIter.hasMoreElements() )
+ {
+ uno::Reference< awt::XFocusListener >( aIter.next(),
+ uno::UNO_QUERY )->focusGained( rEvt );
+ }
+ }
+}
+
+// ------------------------------------------------------------------------------
+
+long Window::getXWindowHandle() const
+{
+ return( mpPlayerWindow ? mpPlayerWindow->GetSystemData()->aWindow : 0 );
+}
+
+
+// ------------------------------------------------------------------------------
+
+::rtl::OUString SAL_CALL Window::getImplementationName()
+ throw( uno::RuntimeException )
+{
+ return( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(
+ AVMEDIA_GSTREAMER_WINDOW_IMPLEMENTATIONNAME ) ) );
+}
+
+// ------------------------------------------------------------------------------
+
+sal_Bool SAL_CALL Window::supportsService( const ::rtl::OUString& ServiceName )
+ throw( uno::RuntimeException )
+{
+ return( ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM(
+ AVMEDIA_GSTREAMER_WINDOW_SERVICENAME ) ) );
+}
+
+// ------------------------------------------------------------------------------
+
+uno::Sequence< ::rtl::OUString > SAL_CALL Window::getSupportedServiceNames()
+ throw( uno::RuntimeException )
+{
+ uno::Sequence< ::rtl::OUString > aRet( 1 );
+ aRet[ 0 ] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( AVMEDIA_GSTREAMER_WINDOW_SERVICENAME ) );
+
+ return( aRet );
+}
+} // namespace gst
+} // namespace avmedia
diff --git a/avmedia/source/gstreamer/gstwindow.hxx b/avmedia/source/gstreamer/gstwindow.hxx
new file mode 100644
index 000000000000..3a55fca9c8bf
--- /dev/null
+++ b/avmedia/source/gstreamer/gstwindow.hxx
@@ -0,0 +1,197 @@
+/*************************************************************************
+ *
+ * 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 _GSTWINDOW_HXX
+#define _GSTWINDOW_HXX
+
+#include "gstcommon.hxx"
+#include <cppuhelper/interfacecontainer.h>
+
+#ifndef _COM_SUN_STAR_MEDIA_XPLAYERWINDOW_HDL_
+#include "com/sun/star/media/XPlayerWindow.hdl"
+#endif
+
+namespace avmedia
+{
+namespace gst
+{
+
+class PlayerChildWindow;
+
+// ---------------
+// - Window -
+// ---------------
+
+class Player;
+
+class Window : public ::cppu::WeakImplHelper2< ::com::sun::star::media::XPlayerWindow,
+ ::com::sun::star::lang::XServiceInfo >
+{
+ friend class Player;
+
+public: Window( ::avmedia::gst::Player& rPlayer );
+ ~Window();
+
+ bool create( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments );
+
+ // XPlayerWindow
+ virtual void SAL_CALL update()
+ throw( ::com::sun::star::uno::RuntimeException );
+
+ virtual sal_Bool SAL_CALL setZoomLevel( ::com::sun::star::media::ZoomLevel ZoomLevel )
+ throw( ::com::sun::star::uno::RuntimeException );
+ virtual ::com::sun::star::media::ZoomLevel SAL_CALL getZoomLevel()
+ throw( ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL setPointerType( sal_Int32 nPointerType )
+ throw( ::com::sun::star::uno::RuntimeException );
+
+ // XWindow
+ virtual void SAL_CALL setPosSize( sal_Int32 X,
+ sal_Int32 Y,
+ sal_Int32 Width,
+ sal_Int32 Height,
+ sal_Int16 Flags )
+ throw( ::com::sun::star::uno::RuntimeException );
+
+ virtual ::com::sun::star::awt::Rectangle SAL_CALL getPosSize()
+ throw( ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL setVisible( sal_Bool Visible )
+ throw( ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL setEnable( sal_Bool Enable )
+ throw( ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL setFocus()
+ throw( ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL addWindowListener(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowListener >& xListener )
+ throw( ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL removeWindowListener(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowListener >& xListener )
+ throw( ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL addFocusListener(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XFocusListener >& xListener )
+ throw( ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL removeFocusListener(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XFocusListener >& xListener )
+ throw( ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL addKeyListener(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XKeyListener >& xListener )
+ throw( ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL removeKeyListener(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XKeyListener >& xListener )
+ throw( ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL addMouseListener(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XMouseListener >& xListener )
+ throw( ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL removeMouseListener(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XMouseListener >& xListener )
+ throw( ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL addMouseMotionListener(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XMouseMotionListener >& xListener )
+ throw( ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL removeMouseMotionListener(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XMouseMotionListener >& xListener )
+ throw( ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL addPaintListener(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XPaintListener >& xListener )
+ throw( ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL removePaintListener(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XPaintListener >& xListener )
+ throw( ::com::sun::star::uno::RuntimeException );
+
+ // XComponent
+ virtual void SAL_CALL dispose()
+ throw( ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL addEventListener(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& xListener )
+ throw( ::com::sun::star::uno::RuntimeException );
+
+ virtual void SAL_CALL removeEventListener(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& aListener )
+ throw( ::com::sun::star::uno::RuntimeException );
+
+ // XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName()
+ throw( ::com::sun::star::uno::RuntimeException );
+
+ virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName )
+ throw( ::com::sun::star::uno::RuntimeException );
+
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames()
+ throw( ::com::sun::star::uno::RuntimeException );
+
+
+public:
+
+ void fireMousePressedEvent( const ::com::sun::star::awt::MouseEvent& rEvt );
+
+ void fireMouseReleasedEvent( const ::com::sun::star::awt::MouseEvent& rEvt );
+
+ void fireMouseMovedEvent( const ::com::sun::star::awt::MouseEvent& rEvt );
+
+ void fireKeyPressedEvent( const ::com::sun::star::awt::KeyEvent& rEvt );
+
+ void fireKeyReleasedEvent( const ::com::sun::star::awt::KeyEvent& rEvt );
+
+ void fireSetFocusEvent( const ::com::sun::star::awt::FocusEvent& rEvt );
+
+protected:
+
+ long getXWindowHandle() const;
+
+private:
+
+ ::osl::Mutex maMutex;
+ ::cppu::OMultiTypeInterfaceContainerHelper maListeners;
+ ::com::sun::star::awt::Rectangle maWindowRect;
+ Player& mrPlayer;
+ PlayerChildWindow* mpPlayerWindow;
+ ::com::sun::star::media::ZoomLevel meZoomLevel;
+ sal_Int32 mnPointerType;
+
+ void implLayoutVideoWindow();
+};
+} // namespace gst
+} // namespace avmedia
+
+#endif // _GSTWINDOW_HXX
diff --git a/avmedia/source/gstreamer/makefile.mk b/avmedia/source/gstreamer/makefile.mk
new file mode 100644
index 000000000000..2f22c7333778
--- /dev/null
+++ b/avmedia/source/gstreamer/makefile.mk
@@ -0,0 +1,71 @@
+#*************************************************************************
+#
+# 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.
+#
+#*************************************************************************
+
+PRJ=..$/..
+PRJNAME=avmediagst
+TARGET=avmediagst
+
+# --- Settings ----------------------------------
+
+.INCLUDE : settings.mk
+
+.IF "$(verbose)"!="" || "$(VERBOSE)"!=""
+CDEFS+= -DVERBOSE
+.ENDIF
+
+# --- Files ----------------------------------
+
+.IF "$(GUI)" == "UNX" && "$(GUIBASE)"!="aqua" && "$(ENABLE_GSTREAMER)" != ""
+
+PKGCONFIG_MODULES=gtk+-2.0 gstreamer-0.10 gstreamer-interfaces-0.10
+.INCLUDE : pkg_config.mk
+
+SLOFILES= \
+ $(SLO)$/gstuno.obj \
+ $(SLO)$/gstmanager.obj \
+ $(SLO)$/gstwindow.obj \
+ $(SLO)$/gstplayer.obj \
+ $(SLO)$/gstframegrabber.obj
+
+EXCEPTIONSFILES= \
+ $(SLO)$/gstuno.obj \
+ $(SLO)$/gstplayer.obj \
+ $(SLO)$/gstframegrabber.obj
+
+SHL1TARGET=$(TARGET)
+SHL1STDLIBS= $(CPPULIB) $(SALLIB) $(COMPHELPERLIB) $(CPPUHELPERLIB) $(TOOLSLIB) $(VCLLIB)
+SHL1STDLIBS+=$(PKGCONFIG_LIBS)
+SHL1IMPLIB=i$(TARGET)
+SHL1LIBS=$(SLB)$/$(TARGET).lib
+SHL1DEF=$(MISC)$/$(SHL1TARGET).def
+
+DEF1NAME=$(SHL1TARGET)
+DEF1EXPORTFILE=exports.dxp
+
+.ENDIF
+
+.INCLUDE : target.mk
diff --git a/avmedia/source/inc/mediamisc.hxx b/avmedia/source/inc/mediamisc.hxx
index fd89e9d4abde..f33bd46568c8 100644
--- a/avmedia/source/inc/mediamisc.hxx
+++ b/avmedia/source/inc/mediamisc.hxx
@@ -30,12 +30,30 @@ class ResMgr;
#define AVMEDIA_RESID( nId ) ResId( nId, * ::avmedia::GetResMgr() )
#ifdef WNT
-#define AVMEDIA_MANAGER_SERVICE_NAME "com.sun.star.media.Manager_DirectX"
+
+#define AVMEDIA_MANAGER_SERVICE_NAME "com.sun.star.comp.avmedia.Manager_DirectX"
+#define AVMEDIA_MANAGER_SERVICE_IS_JAVABASED sal_False
+
+#define AVMEDIA_MANAGER_SERVICE_NAME_FALLBACK1 ""
+#define AVMEDIA_MANAGER_SERVICE_IS_JAVABASED_FALLBACK1 sal_False
+
#else
#ifdef QUARTZ
-#define AVMEDIA_MANAGER_SERVICE_NAME "com.sun.star.comp.avmedia.Manager_QuickTime"
+
+#define AVMEDIA_MANAGER_SERVICE_NAME "com.sun.star.comp.avmedia.Manager_QuickTime"
+#define AVMEDIA_MANAGER_SERVICE_IS_JAVABASED sal_False
+
+#define AVMEDIA_MANAGER_SERVICE_NAME_FALLBACK1 ""
+#define AVMEDIA_MANAGER_SERVICE_IS_JAVABASED_FALLBACK1 sal_False
+
#else
-#define AVMEDIA_MANAGER_SERVICE_NAME "com.sun.star.media.Manager_Java"
+
+#define AVMEDIA_MANAGER_SERVICE_NAME "com.sun.star.comp.avmedia.Manager_GStreamer"
+#define AVMEDIA_MANAGER_SERVICE_IS_JAVABASED sal_False
+
+#define AVMEDIA_MANAGER_SERVICE_NAME_FALLBACK1 "com.sun.star.comp.avmedia.Manager_Java"
+#define AVMEDIA_MANAGER_SERVICE_IS_JAVABASED_FALLBACK1 sal_True
+
#endif
#endif
diff --git a/avmedia/source/java/PlayerWindow.java b/avmedia/source/java/PlayerWindow.java
index 229c651d9f54..2229e4f1644b 100644
--- a/avmedia/source/java/PlayerWindow.java
+++ b/avmedia/source/java/PlayerWindow.java
@@ -67,9 +67,7 @@ public class PlayerWindow implements java.awt.event.KeyListener,
maFrame = new WindowAdapter( AnyConverter.toInt( aArgs[ 0 ] ) );
maFrame.setPosSize( aBoundRect.X, aBoundRect.Y, aBoundRect.Width, aBoundRect.Height, (short) 0 );
-
- if( aArgs.length > 2 )
- mbShowControls = AnyConverter.toBoolean( aArgs[ 2 ] );
+ mbShowControls = false;
java.awt.Panel aPanel = new java.awt.Panel( new java.awt.BorderLayout() );
diff --git a/avmedia/source/java/avmedia.jar b/avmedia/source/java/avmedia.jar
index 55576baa5b34..85a98bbcf33c 100644
--- a/avmedia/source/java/avmedia.jar
+++ b/avmedia/source/java/avmedia.jar
Binary files differ
diff --git a/avmedia/source/viewer/mediawindow.cxx b/avmedia/source/viewer/mediawindow.cxx
index b2d1e5162cb5..5005446633f4 100644
--- a/avmedia/source/viewer/mediawindow.cxx
+++ b/avmedia/source/viewer/mediawindow.cxx
@@ -162,7 +162,9 @@ Size MediaWindow::getPreferredSize() const
void MediaWindow::setPosSize( const Rectangle& rNewRect )
{
if( mpImpl )
+ {
mpImpl->setPosSize( rNewRect );
+ }
}
// -------------------------------------------------------------------------
@@ -368,6 +370,7 @@ void MediaWindow::getMediaFilters( FilterNameVector& rFilterNameVector )
"AU Audio", "au",
"AVI", "avi",
"CD Audio", "cda",
+ "Matroska Media", "mkv",
"MIDI Audio", "mid;midi",
"MPEG Audio", "mp2;mp3;mpa",
"MPEG Video", "mpg;mpeg;mpv;mp4",
@@ -464,39 +467,28 @@ bool MediaWindow::isMediaURL( const ::rtl::OUString& rURL, bool bDeep, Size* pPr
{
if( bDeep || pPreferredSizePixel )
{
- uno::Reference< lang::XMultiServiceFactory > xFactory( ::comphelper::getProcessServiceFactory() );
-
- if( xFactory.is() )
+ try
{
- try
- {
- fprintf(stderr, "-->%s uno reference \n\n",AVMEDIA_MANAGER_SERVICE_NAME);
+ sal_Bool bIsJavaBasedMediaWindow;
+ uno::Reference< media::XPlayer > xPlayer( priv::MediaWindowImpl::createPlayer(
+ aURL.GetMainURL( INetURLObject::DECODE_UNAMBIGUOUS ),
+ bIsJavaBasedMediaWindow ) );
- uno::Reference< ::com::sun::star::media::XManager > xManager(
- xFactory->createInstance( ::rtl::OUString::createFromAscii( AVMEDIA_MANAGER_SERVICE_NAME ) ),
- uno::UNO_QUERY );
+ if( xPlayer.is() )
+ {
+ bRet = true;
- if( xManager.is() )
+ if( pPreferredSizePixel )
{
- uno::Reference< media::XPlayer > xPlayer( xManager->createPlayer( aURL.GetMainURL( INetURLObject::DECODE_UNAMBIGUOUS ) ) );
-
- if( xPlayer.is() )
- {
- bRet = true;
+ const awt::Size aAwtSize( xPlayer->getPreferredPlayerWindowSize() );
- if( pPreferredSizePixel )
- {
- const awt::Size aAwtSize( xPlayer->getPreferredPlayerWindowSize() );
-
- pPreferredSizePixel->Width() = aAwtSize.Width;
- pPreferredSizePixel->Height() = aAwtSize.Height;
- }
- }
+ pPreferredSizePixel->Width() = aAwtSize.Width;
+ pPreferredSizePixel->Height() = aAwtSize.Height;
}
}
- catch( ... )
- {
- }
+ }
+ catch( ... )
+ {
}
}
else
@@ -525,7 +517,8 @@ bool MediaWindow::isMediaURL( const ::rtl::OUString& rURL, bool bDeep, Size* pPr
uno::Reference< media::XPlayer > MediaWindow::createPlayer( const ::rtl::OUString& rURL )
{
- return priv::MediaWindowImpl::createPlayer( rURL );
+ sal_Bool bJavaBased = sal_False;
+ return priv::MediaWindowImpl::createPlayer( rURL, bJavaBased );
}
// -------------------------------------------------------------------------
diff --git a/avmedia/source/viewer/mediawindow_impl.cxx b/avmedia/source/viewer/mediawindow_impl.cxx
index 553eea6196c1..15c830cb97a6 100644
--- a/avmedia/source/viewer/mediawindow_impl.cxx
+++ b/avmedia/source/viewer/mediawindow_impl.cxx
@@ -1,4 +1,4 @@
-/*************************************************************************
+/************************************************************************
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -94,7 +94,7 @@ void MediaWindowControl::execute( const MediaItem& rItem )
// --------------------
MediaChildWindow::MediaChildWindow( Window* pParent ) :
- JavaChildWindow( pParent, WB_CLIPCHILDREN )
+ SystemChildWindow( pParent, WB_CLIPCHILDREN )
{
}
@@ -111,7 +111,7 @@ void MediaChildWindow::MouseMove( const MouseEvent& rMEvt )
const MouseEvent aTransformedEvent( GetParent()->ScreenToOutputPixel( OutputToScreenPixel( rMEvt.GetPosPixel() ) ),
rMEvt.GetClicks(), rMEvt.GetMode(), rMEvt.GetButtons(), rMEvt.GetModifier() );
- JavaChildWindow::MouseMove( rMEvt );
+ SystemChildWindow::MouseMove( rMEvt );
GetParent()->MouseMove( aTransformedEvent );
}
@@ -122,7 +122,7 @@ void MediaChildWindow::MouseButtonDown( const MouseEvent& rMEvt )
const MouseEvent aTransformedEvent( GetParent()->ScreenToOutputPixel( OutputToScreenPixel( rMEvt.GetPosPixel() ) ),
rMEvt.GetClicks(), rMEvt.GetMode(), rMEvt.GetButtons(), rMEvt.GetModifier() );
- JavaChildWindow::MouseButtonDown( rMEvt );
+ SystemChildWindow::MouseButtonDown( rMEvt );
GetParent()->MouseButtonDown( aTransformedEvent );
}
@@ -133,7 +133,7 @@ void MediaChildWindow::MouseButtonUp( const MouseEvent& rMEvt )
const MouseEvent aTransformedEvent( GetParent()->ScreenToOutputPixel( OutputToScreenPixel( rMEvt.GetPosPixel() ) ),
rMEvt.GetClicks(), rMEvt.GetMode(), rMEvt.GetButtons(), rMEvt.GetModifier() );
- JavaChildWindow::MouseButtonUp( rMEvt );
+ SystemChildWindow::MouseButtonUp( rMEvt );
GetParent()->MouseButtonUp( aTransformedEvent );
}
@@ -141,7 +141,7 @@ void MediaChildWindow::MouseButtonUp( const MouseEvent& rMEvt )
void MediaChildWindow::KeyInput( const KeyEvent& rKEvt )
{
- JavaChildWindow::KeyInput( rKEvt );
+ SystemChildWindow::KeyInput( rKEvt );
GetParent()->KeyInput( rKEvt );
}
@@ -149,7 +149,7 @@ void MediaChildWindow::KeyInput( const KeyEvent& rKEvt )
void MediaChildWindow::KeyUp( const KeyEvent& rKEvt )
{
- JavaChildWindow::KeyUp( rKEvt );
+ SystemChildWindow::KeyUp( rKEvt );
GetParent()->KeyUp( rKEvt );
}
@@ -160,7 +160,7 @@ void MediaChildWindow::Command( const CommandEvent& rCEvt )
const CommandEvent aTransformedEvent( GetParent()->ScreenToOutputPixel( OutputToScreenPixel( rCEvt.GetMousePosPixel() ) ),
rCEvt.GetCommand(), rCEvt.IsMouseEvent(), rCEvt.GetData() );
- JavaChildWindow::Command( rCEvt );
+ SystemChildWindow::Command( rCEvt );
GetParent()->Command( aTransformedEvent );
}
@@ -179,6 +179,7 @@ MediaWindowImpl::MediaWindowImpl( Window* pParent, MediaWindow* pMediaWindow, bo
mpEmptyBmpEx( NULL ),
mpAudioBmpEx( NULL )
{
+ maChildWindow.SetBackground( Color( COL_BLACK ) );
maChildWindow.SetHelpId( HID_AVMEDIA_PLAYERWINDOW );
maChildWindow.Hide();
@@ -229,19 +230,24 @@ void MediaWindowImpl::onURLChanged()
{
if( getPlayer().is() )
{
- uno::Sequence< uno::Any > aArgs( 2 );
uno::Reference< media::XPlayerWindow > xPlayerWindow;
- const Point aPoint;
- const Size aSize( maChildWindow.GetSizePixel() );
- const sal_IntPtr nWndHandle = static_cast< sal_IntPtr >( maChildWindow.getParentWindowHandleForJava() );
- aArgs[ 0 ] = uno::makeAny( nWndHandle );
- aArgs[ 1 ] = uno::makeAny( awt::Rectangle( aPoint.X(), aPoint.Y(), aSize.Width(), aSize.Height() ) );
+ const Point aPoint;
+ const Size aSize( maChildWindow.GetSizePixel() );
+ const sal_IntPtr nWndHandle = (sal_IntPtr) maChildWindow.GetParentWindowHandle( isMediaWindowJavaBased() );
try
{
if( nWndHandle != 0 )
+ {
+ uno::Sequence< uno::Any > aArgs( 3 );
+
+ aArgs[ 0 ] = uno::makeAny( nWndHandle );
+ aArgs[ 1 ] = uno::makeAny( awt::Rectangle( aPoint.X(), aPoint.Y(), aSize.Width(), aSize.Height() ) );
+ aArgs[ 2 ] = uno::makeAny( reinterpret_cast< sal_IntPtr >( &maChildWindow ) );
+
xPlayerWindow = getPlayer()->createPlayerWindow( aArgs );
+ }
}
catch( uno::RuntimeException )
{
@@ -273,8 +279,6 @@ void MediaWindowImpl::onURLChanged()
updateMediaItem( aItem );
mpMediaWindowControl->setState( aItem );
}
-
- Invalidate();
}
// ---------------------------------------------------------------------
@@ -291,7 +295,7 @@ void MediaWindowImpl::update()
void MediaWindowImpl::setPosSize( const Rectangle& rRect )
{
- SetPosSizePixel( rRect.Left(), rRect.Top(), rRect.GetWidth(), rRect.GetHeight() );
+ SetPosSizePixel( rRect.TopLeft(), rRect.GetSize() );
}
// ---------------------------------------------------------------------
@@ -305,7 +309,6 @@ void MediaWindowImpl::setPointer( const Pointer& rPointer )
if( xPlayerWindow.is() )
{
-
long nPointer;
switch( rPointer.GetStyle() )
@@ -355,10 +358,10 @@ void MediaWindowImpl::Resize()
mpMediaWindowControl->SetPosSizePixel( Point( nOffset, nControlY ), Size( aCurSize.Width() - ( nOffset << 1 ), nControlHeight ) );
}
- maChildWindow.SetPosSizePixel( Point( nOffset, nOffset ), aPlayerWindowSize );
-
if( xPlayerWindow.is() )
xPlayerWindow->setPosSize( 0, 0, aPlayerWindowSize.Width(), aPlayerWindowSize.Height(), 0 );
+
+ maChildWindow.SetPosSizePixel( Point( nOffset, nOffset ), aPlayerWindowSize );
}
// ---------------------------------------------------------------------
@@ -405,7 +408,7 @@ void MediaWindowImpl::Paint( const Rectangle& )
pLogo = mpEmptyBmpEx;
}
- else if ( !getPlayerWindow().is() )
+ else if( !getPlayerWindow().is() )
{
if( !mpAudioBmpEx )
mpAudioBmpEx = new BitmapEx( AVMEDIA_RESID( AVMEDIA_BMP_AUDIOLOGO ) );
@@ -446,8 +449,6 @@ void MediaWindowImpl::Paint( const Rectangle& )
aBasePos.Y() + ( ( aVideoRect.GetHeight() - aLogoSize.Height() ) >> 1 ) ),
aLogoSize, *pLogo );
}
-
- update();
}
// ---------------------------------------------------------------------
diff --git a/avmedia/source/viewer/mediawindow_impl.hxx b/avmedia/source/viewer/mediawindow_impl.hxx
index 679b864af6b7..9008e499647d 100644
--- a/avmedia/source/viewer/mediawindow_impl.hxx
+++ b/avmedia/source/viewer/mediawindow_impl.hxx
@@ -2,10 +2,13 @@
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
- * Copyright 2000, 2010 Oracle and/or its affiliates.
+ * Copyright 2008 by Sun Microsystems, Inc.
*
* OpenOffice.org - a multi-platform office productivity suite
*
+ * $RCSfile: mediawindow_impl.hxx,v $
+ * $Revision: 1.3 $
+ *
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
@@ -29,7 +32,7 @@
#define _AVMEDIA_MEDIAWINDOW_IMPL_HXX
#include <svtools/transfer.hxx>
-#include <vcl/javachild.hxx>
+#include <vcl/syschild.hxx>
#include "mediawindowbase_impl.hxx"
#include "mediacontrol.hxx"
@@ -61,7 +64,7 @@ namespace avmedia
// - MediaChildWindow -
// --------------------
- class MediaChildWindow : public JavaChildWindow
+ class MediaChildWindow : public SystemChildWindow
{
public:
diff --git a/avmedia/source/viewer/mediawindowbase_impl.cxx b/avmedia/source/viewer/mediawindowbase_impl.cxx
index ea28121e3609..94a6c36ed064 100644
--- a/avmedia/source/viewer/mediawindowbase_impl.cxx
+++ b/avmedia/source/viewer/mediawindowbase_impl.cxx
@@ -47,8 +47,18 @@ namespace avmedia { namespace priv {
// - MediaWindowBaseImpl -
// -----------------------
+struct ServiceManager
+{
+ const char* pServiceName;
+ sal_Bool bIsJavaBased;
+};
+
+// ---------------------------------------------------------------------
+
+
MediaWindowBaseImpl::MediaWindowBaseImpl( MediaWindow* pMediaWindow ) :
- mpMediaWindow( pMediaWindow )
+ mpMediaWindow( pMediaWindow ),
+ mbIsMediaWindowJavaBased( sal_False )
{
}
@@ -61,35 +71,53 @@ MediaWindowBaseImpl::~MediaWindowBaseImpl()
// -------------------------------------------------------------------------
-uno::Reference< media::XPlayer > MediaWindowBaseImpl::createPlayer( const ::rtl::OUString& rURL )
+uno::Reference< media::XPlayer > MediaWindowBaseImpl::createPlayer( const ::rtl::OUString& rURL, sal_Bool& rbJavaBased )
{
uno::Reference< lang::XMultiServiceFactory > xFactory( ::comphelper::getProcessServiceFactory() );
uno::Reference< media::XPlayer > xPlayer;
+ rbJavaBased = sal_False;
+
if( xFactory.is() )
{
- try
+ static const ServiceManager aServiceManagers[] =
+ {
+ { AVMEDIA_MANAGER_SERVICE_NAME, AVMEDIA_MANAGER_SERVICE_IS_JAVABASED },
+ { AVMEDIA_MANAGER_SERVICE_NAME_FALLBACK1, AVMEDIA_MANAGER_SERVICE_IS_JAVABASED_FALLBACK1 }
+ };
+
+ for( sal_uInt32 i = 0; !xPlayer.is() && ( i < ( sizeof( aServiceManagers ) / sizeof( ServiceManager ) ) ); ++i )
{
+ const String aServiceName( aServiceManagers[ i ].pServiceName, RTL_TEXTENCODING_ASCII_US );
+
+ if( aServiceName.Len() )
+ {
+ OSL_TRACE( "Trying to create media manager service %s", aServiceManagers[ i ].pServiceName );
- uno::Reference< ::com::sun::star::media::XManager > xManager(
- xFactory->createInstance( ::rtl::OUString::createFromAscii( AVMEDIA_MANAGER_SERVICE_NAME ) ),
- uno::UNO_QUERY );
+ try
+ {
+ uno::Reference< media::XManager > xManager( xFactory->createInstance( aServiceName ), uno::UNO_QUERY );
+
+ if( xManager.is() )
+ {
+ xPlayer = uno::Reference< media::XPlayer >( xManager->createPlayer( rURL ), uno::UNO_QUERY );
+ }
+ }
+ catch( ... )
+ {
+ }
+ }
- if( xManager.is() )
+ if( xPlayer.is() )
{
- xPlayer = uno::Reference< ::com::sun::star::media::XPlayer >(
- xManager->createPlayer( rURL ), uno::UNO_QUERY );
+ rbJavaBased = aServiceManagers[ i ].bIsJavaBased;
}
}
- catch( ... )
- {
- }
}
return xPlayer;
}
-
// ---------------------------------------------------------------------
void MediaWindowBaseImpl::setURL( const ::rtl::OUString& rURL )
@@ -112,7 +140,7 @@ void MediaWindowBaseImpl::setURL( const ::rtl::OUString& rURL )
if( aURL.GetProtocol() != INET_PROT_NOT_VALID )
maFileURL = aURL.GetMainURL( INetURLObject::DECODE_UNAMBIGUOUS );
- mxPlayer = createPlayer( maFileURL );
+ mxPlayer = createPlayer( maFileURL, mbIsMediaWindowJavaBased );
onURLChanged();
}
}
@@ -143,10 +171,7 @@ void MediaWindowBaseImpl::stopPlayingInternal( bool bStop )
{
if( isPlaying() )
{
- if( bStop )
- mxPlayer->stop();
- else
- mxPlayer->start();
+ bStop ? mxPlayer->stop() : mxPlayer->start();
}
}
diff --git a/avmedia/source/viewer/mediawindowbase_impl.hxx b/avmedia/source/viewer/mediawindowbase_impl.hxx
index 0b0f160b6e3c..028b7c6ed079 100644
--- a/avmedia/source/viewer/mediawindowbase_impl.hxx
+++ b/avmedia/source/viewer/mediawindowbase_impl.hxx
@@ -61,7 +61,8 @@ namespace avmedia
virtual void cleanUp();
virtual void onURLChanged();
- static ::com::sun::star::uno::Reference< ::com::sun::star::media::XPlayer > createPlayer( const ::rtl::OUString& rURL );
+ static ::com::sun::star::uno::Reference< ::com::sun::star::media::XPlayer > createPlayer( const ::rtl::OUString& rURL,
+ sal_Bool& rbJavaBased );
public:
@@ -112,6 +113,7 @@ namespace avmedia
void stopPlayingInternal( bool );
MediaWindow* getMediaWindow() const;
+ inline sal_Bool isMediaWindowJavaBased() const { return( mbIsMediaWindowJavaBased ); }
::com::sun::star::uno::Reference< ::com::sun::star::media::XPlayer > getPlayer() const;
@@ -124,6 +126,7 @@ namespace avmedia
::com::sun::star::uno::Reference< ::com::sun::star::media::XPlayer > mxPlayer;
::com::sun::star::uno::Reference< ::com::sun::star::media::XPlayerWindow > mxPlayerWindow;
MediaWindow* mpMediaWindow;
+ sal_Bool mbIsMediaWindowJavaBased;
};
}
}
diff --git a/avmedia/source/win/winuno.cxx b/avmedia/source/win/winuno.cxx
index 4b06fd10727f..645871290413 100644
--- a/avmedia/source/win/winuno.cxx
+++ b/avmedia/source/win/winuno.cxx
@@ -62,7 +62,7 @@ extern "C" sal_Bool SAL_CALL component_writeInfo( void*, void* pRegistryKey )
{
uno::Reference< registry::XRegistryKey > xNewKey1(
static_cast< registry::XRegistryKey* >( pRegistryKey )->createKey(
- ::rtl::OUString::createFromAscii( "/com.sun.star.comp.media.Manager_DirectX/UNO/SERVICES/com.sun.star.media.Manager_DirectX" ) ) );
+ ::rtl::OUString::createFromAscii( "/com.sun.star.comp.avmedia.Manager_DirectX/UNO/SERVICES/com.sun.star.media.Manager_DirectX" ) ) );
bRet = sal_True;
}
@@ -84,13 +84,13 @@ extern "C" void* SAL_CALL component_getFactory( const sal_Char* pImplName, void*
uno::Reference< lang::XSingleServiceFactory > xFactory;
void* pRet = 0;
- if( rtl_str_compare( pImplName, "com.sun.star.comp.media.Manager_DirectX" ) == 0 )
+ if( rtl_str_compare( pImplName, "com.sun.star.comp.avmedia.Manager_DirectX" ) == 0 )
{
const ::rtl::OUString aServiceName( ::rtl::OUString::createFromAscii( "com.sun.star.media.Manager_DirectX" ) );
xFactory = uno::Reference< lang::XSingleServiceFactory >( ::cppu::createSingleFactory(
reinterpret_cast< lang::XMultiServiceFactory* >( pServiceManager ),
- ::rtl::OUString::createFromAscii( "com.sun.star.comp.media.Manager_DirectX" ),
+ ::rtl::OUString::createFromAscii( "com.sun.star.comp.avmedia.Manager_DirectX" ),
create_MediaPlayer, uno::Sequence< ::rtl::OUString >( &aServiceName, 1 ) ) );
}
diff --git a/basic/inc/basic/process.hxx b/basic/inc/basic/process.hxx
index 20cdbe1d4aa4..9a593322b896 100644
--- a/basic/inc/basic/process.hxx
+++ b/basic/inc/basic/process.hxx
@@ -39,9 +39,9 @@ typedef Environment::value_type EnvironmentVariable;
class Process
{
// Internal members and methods
- NAMESPACE_VOS(OArgumentList) *pArgumentList;
- NAMESPACE_VOS(OEnvironment) *pEnvList;
- NAMESPACE_VOS(OProcess) *pProcess;
+ vos::OArgumentList *pArgumentList;
+ vos::OEnvironment *pEnvList;
+ vos::OProcess *pProcess;
BOOL ImplIsRunning();
long ImplGetExitCode();
BOOL bWasGPF;
diff --git a/basic/source/app/process.cxx b/basic/source/app/process.cxx
index c37af05ac8da..0eec05e1697c 100644
--- a/basic/source/app/process.cxx
+++ b/basic/source/app/process.cxx
@@ -72,9 +72,9 @@ BOOL Process::ImplIsRunning()
{
if ( pProcess && bHasBeenStarted )
{
- NAMESPACE_VOS(OProcess::TProcessInfo) aProcessInfo;
- pProcess->getInfo( NAMESPACE_VOS(OProcess::TData_ExitCode), &aProcessInfo );
- if ( !(aProcessInfo.Fields & NAMESPACE_VOS(OProcess::TData_ExitCode)) )
+ vos::OProcess::TProcessInfo aProcessInfo;
+ pProcess->getInfo( vos::OProcess::TData_ExitCode, &aProcessInfo );
+ if ( !(aProcessInfo.Fields & vos::OProcess::TData_ExitCode) )
return TRUE;
else
return FALSE;
@@ -87,9 +87,9 @@ long Process::ImplGetExitCode()
{
if ( pProcess )
{
- NAMESPACE_VOS(OProcess::TProcessInfo) aProcessInfo;
- pProcess->getInfo( NAMESPACE_VOS(OProcess::TData_ExitCode), &aProcessInfo );
- if ( !(aProcessInfo.Fields & NAMESPACE_VOS(OProcess::TData_ExitCode)) )
+ vos::OProcess::TProcessInfo aProcessInfo;
+ pProcess->getInfo( vos::OProcess::TData_ExitCode, &aProcessInfo );
+ if ( !(aProcessInfo.Fields & vos::OProcess::TData_ExitCode) )
SbxBase::SetError( SbxERR_NO_ACTIVE_OBJECT );
return aProcessInfo.Code;
}
@@ -124,7 +124,7 @@ void Process::SetImage( const String &aAppPath, const String &aAppParams, const
nParamCount++;
}
}
- pArgumentList = new NAMESPACE_VOS(OArgumentList)( pParamList, nCount );
+ pArgumentList = new vos::OArgumentList( pParamList, nCount );
::rtl::OUString *pEnvArray = NULL;
@@ -143,12 +143,12 @@ void Process::SetImage( const String &aAppPath, const String &aAppParams, const
nEnvCount++;
aIter++;
}
- pEnvList = new NAMESPACE_VOS(OEnvironment)( pEnvArray, nEnvCount );
+ pEnvList = new vos::OEnvironment( pEnvArray, nEnvCount );
}
::rtl::OUString aNormalizedAppPath;
osl::FileBase::getFileURLFromSystemPath( ::rtl::OUString(aAppPath), aNormalizedAppPath );
- pProcess = new NAMESPACE_VOS(OProcess)( aNormalizedAppPath );
+ pProcess = new vos::OProcess( aNormalizedAppPath );
bHasBeenStarted = FALSE;
delete [] pParamList;
@@ -170,20 +170,20 @@ BOOL Process::Start()
#endif
if ( pEnvList )
{
- bSuccess = pProcess->execute( (NAMESPACE_VOS(OProcess)::TProcessOption)
- ( NAMESPACE_VOS(OProcess)::TOption_SearchPath
- /*| NAMESPACE_VOS(OProcess)::TOption_Detached*/
- /*| NAMESPACE_VOS(OProcess)::TOption_Wait*/ ),
+ bSuccess = pProcess->execute( (vos::OProcess::TProcessOption)
+ ( vos::OProcess::TOption_SearchPath
+ /*| vos::OProcess::TOption_Detached*/
+ /*| vos::OProcess::TOption_Wait*/ ),
*pArgumentList,
- *pEnvList ) == NAMESPACE_VOS(OProcess)::E_None;
+ *pEnvList ) == vos::OProcess::E_None;
}
else
{
- bSuccess = pProcess->execute( (NAMESPACE_VOS(OProcess)::TProcessOption)
- ( NAMESPACE_VOS(OProcess)::TOption_SearchPath
- /*| NAMESPACE_VOS(OProcess)::TOption_Detached*/
- /*| NAMESPACE_VOS(OProcess)::TOption_Wait*/ ),
- *pArgumentList ) == NAMESPACE_VOS(OProcess)::E_None;
+ bSuccess = pProcess->execute( (vos::OProcess::TProcessOption)
+ ( vos::OProcess::TOption_SearchPath
+ /*| vos::OProcess::TOption_Detached*/
+ /*| vos::OProcess::TOption_Wait*/ ),
+ *pArgumentList ) == vos::OProcess::E_None;
}
#ifdef WNT
}
diff --git a/basic/source/classes/eventatt.cxx b/basic/source/classes/eventatt.cxx
index 791e9fe5a8c1..78682a633fe3 100644
--- a/basic/source/classes/eventatt.cxx
+++ b/basic/source/classes/eventatt.cxx
@@ -255,7 +255,7 @@ Any BasicScriptListener_Impl::approveFiring( const ScriptEvent& aScriptEvent )
void BasicScriptListener_Impl::disposing(const EventObject& ) throw ( RuntimeException )
{
// TODO: ???
- //NAMESPACE_VOS(OGuard) guard( Application::GetSolarMutex() );
+ //vos::OGuard guard( Application::GetSolarMutex() );
//xSbxObj.Clear();
}
diff --git a/basic/source/classes/sb.cxx b/basic/source/classes/sb.cxx
index 056c2ea38c4c..056c2ea38c4c 100755..100644
--- a/basic/source/classes/sb.cxx
+++ b/basic/source/classes/sb.cxx
diff --git a/basic/source/classes/sbunoobj.cxx b/basic/source/classes/sbunoobj.cxx
index c9123b06341b..79f55faf37b6 100755
--- a/basic/source/classes/sbunoobj.cxx
+++ b/basic/source/classes/sbunoobj.cxx
@@ -3777,7 +3777,7 @@ BasicAllListener_Impl::~BasicAllListener_Impl()
void BasicAllListener_Impl::firing_impl( const AllEventObject& Event, Any* pRet )
{
- NAMESPACE_VOS(OGuard) guard( Application::GetSolarMutex() );
+ vos::OGuard guard( Application::GetSolarMutex() );
if( xSbxObj.Is() )
{
@@ -3842,7 +3842,7 @@ Any BasicAllListener_Impl::approveFiring( const AllEventObject& Event ) throw (
// Methoden von XEventListener
void BasicAllListener_Impl ::disposing(const EventObject& ) throw ( RuntimeException )
{
- NAMESPACE_VOS(OGuard) guard( Application::GetSolarMutex() );
+ vos::OGuard guard( Application::GetSolarMutex() );
xSbxObj.Clear();
}
@@ -4216,7 +4216,7 @@ void SAL_CALL ModuleInvocationProxy::setValue( const ::rtl::OUString& rProperty,
if( !m_bProxyIsClassModuleObject )
throw UnknownPropertyException();
- NAMESPACE_VOS(OGuard) guard( Application::GetSolarMutex() );
+ vos::OGuard guard( Application::GetSolarMutex() );
::rtl::OUString aPropertyFunctionName( RTL_CONSTASCII_USTRINGPARAM( "Property Set ") );
aPropertyFunctionName += m_aPrefix;
@@ -4257,7 +4257,7 @@ Any SAL_CALL ModuleInvocationProxy::getValue( const ::rtl::OUString& rProperty )
if( !m_bProxyIsClassModuleObject )
throw UnknownPropertyException();
- NAMESPACE_VOS(OGuard) guard( Application::GetSolarMutex() );
+ vos::OGuard guard( Application::GetSolarMutex() );
::rtl::OUString aPropertyFunctionName( RTL_CONSTASCII_USTRINGPARAM( "Property Get ") );
aPropertyFunctionName += m_aPrefix;
@@ -4295,7 +4295,7 @@ Any SAL_CALL ModuleInvocationProxy::invoke( const ::rtl::OUString& rFunction,
Sequence< Any >& )
throw( CannotConvertException, InvocationTargetException )
{
- NAMESPACE_VOS(OGuard) guard( Application::GetSolarMutex() );
+ vos::OGuard guard( Application::GetSolarMutex() );
Any aRet;
if( !m_xScopeObj.Is() )
diff --git a/basic/source/runtime/methods.cxx b/basic/source/runtime/methods.cxx
index 1a60a5d79a45..97f6ed227d47 100644
--- a/basic/source/runtime/methods.cxx
+++ b/basic/source/runtime/methods.cxx
@@ -103,15 +103,10 @@ using namespace com::sun::star::io;
#include <stdlib.h>
#include <ctype.h>
-#if defined (WIN) || defined (WNT) || defined (OS2)
+#if defined (WNT) || defined (OS2)
#include <direct.h> // _getdcwd get current work directory, _chdrive
#endif
-#ifdef WIN
-#include <dos.h> // _dos_getfileattr
-#include <errno.h>
-#endif
-
#ifdef UNX
#include <errno.h>
#include <unistd.h>
@@ -420,7 +415,7 @@ RTLFUNC(CurDir)
// zu ermitteln, dass eine virtuelle URL geliefert werden koennte.
// rPar.Get(0)->PutEmpty();
-#if defined (WIN) || defined (WNT) || defined (OS2)
+#if defined (WNT) || defined (OS2)
int nCurDir = 0; // Current dir // JSM
if ( rPar.Count() == 2 )
{
@@ -527,7 +522,7 @@ RTLFUNC(ChDrive) // JSM
#ifndef UNX
String aPar1 = rPar.Get(1)->GetString();
-#if defined (WIN) || defined (WNT) || defined (OS2)
+#if defined (WNT) || defined (OS2)
if (aPar1.Len() > 0)
{
int nCurDrive = (int)aPar1.GetBuffer()[0]; ;
@@ -2792,11 +2787,7 @@ RTLFUNC(Dir)
pRTLData->nDirFlags = nFlags = rPar.Get(2)->GetInteger();
else
pRTLData->nDirFlags = 0;
- // Nur diese Bitmaske ist unter Windows erlaubt
- #ifdef WIN
- if( nFlags & ~0x1E )
- StarBASIC::Error( SbERR_BAD_ARGUMENT ), pRTLData->nDirFlags = 0;
- #endif
+
// Sb_ATTR_VOLUME wird getrennt gehandelt
if( pRTLData->nDirFlags & Sb_ATTR_VOLUME )
aPath = aEntry.GetVolume();
@@ -2826,31 +2817,7 @@ RTLFUNC(Dir)
}
DirEntry aNextEntry=(*(pRTLData->pDir))[pRTLData->nCurDirPos++];
aPath = aNextEntry.GetName(); //Full();
- #ifdef WIN
- aNextEntry.ToAbs();
- String sFull(aNextEntry.GetFull());
- unsigned nFlags;
-
- if (_dos_getfileattr( sFull.GetStr(), &nFlags ))
- StarBASIC::Error( SbERR_FILE_NOT_FOUND );
- else
- {
- INT16 nCurFlags = pRTLData->nDirFlags;
- if( (nCurFlags == Sb_ATTR_NORMAL)
- && !(nFlags & ( _A_HIDDEN | _A_SYSTEM | _A_VOLID | _A_SUBDIR ) ) )
- break;
- else if( (nCurFlags & Sb_ATTR_HIDDEN) && (nFlags & _A_HIDDEN) )
- break;
- else if( (nCurFlags & Sb_ATTR_SYSTEM) && (nFlags & _A_SYSTEM) )
- break;
- else if( (nCurFlags & Sb_ATTR_VOLUME) && (nFlags & _A_VOLID) )
- break;
- else if( (nCurFlags & Sb_ATTR_DIRECTORY) && (nFlags & _A_SUBDIR) )
- break;
- }
- #else
break;
- #endif
}
}
rPar.Get(0)->PutString( aPath );
@@ -3404,8 +3371,8 @@ RTLFUNC(Shell)
}
else
{
- USHORT nOptions = NAMESPACE_VOS(OProcess)::TOption_SearchPath|
- NAMESPACE_VOS(OProcess)::TOption_Detached;
+ USHORT nOptions = vos::OProcess::TOption_SearchPath|
+ vos::OProcess::TOption_Detached;
String aCmdLine = rPar.Get(1)->GetString();
// Zusaetzliche Parameter anhaengen, es muss eh alles geparsed werden
if( nArgCount >= 4 )
@@ -3483,13 +3450,13 @@ RTLFUNC(Shell)
switch( nWinStyle )
{
case 2:
- nOptions |= NAMESPACE_VOS(OProcess)::TOption_Minimized;
+ nOptions |= vos::OProcess::TOption_Minimized;
break;
case 3:
- nOptions |= NAMESPACE_VOS(OProcess)::TOption_Maximized;
+ nOptions |= vos::OProcess::TOption_Maximized;
break;
case 10:
- nOptions |= NAMESPACE_VOS(OProcess)::TOption_FullScreen;
+ nOptions |= vos::OProcess::TOption_FullScreen;
break;
}
@@ -3497,10 +3464,10 @@ RTLFUNC(Shell)
if( nArgCount >= 5 )
bSync = rPar.Get(4)->GetBool();
if( bSync )
- nOptions |= NAMESPACE_VOS(OProcess)::TOption_Wait;
+ nOptions |= vos::OProcess::TOption_Wait;
}
- NAMESPACE_VOS(OProcess)::TProcessOption eOptions =
- (NAMESPACE_VOS(OProcess)::TProcessOption)nOptions;
+ vos::OProcess::TProcessOption eOptions =
+ (vos::OProcess::TProcessOption)nOptions;
// #72471 Parameter aufbereiten
@@ -3530,25 +3497,25 @@ RTLFUNC(Shell)
}
//const char* pParams = aParams.Len() ? aParams.GetStr() : 0;
- NAMESPACE_VOS(OProcess)* pApp;
- pApp = new NAMESPACE_VOS(OProcess)( aOUStrProgUNC );
+ vos::OProcess* pApp;
+ pApp = new vos::OProcess( aOUStrProgUNC );
BOOL bSucc;
if( nParamCount == 0 )
{
- bSucc = pApp->execute( eOptions ) == NAMESPACE_VOS(OProcess)::E_None;
+ bSucc = pApp->execute( eOptions ) == vos::OProcess::E_None;
}
else
{
- NAMESPACE_VOS(OArgumentList) aArgList( pArgumentList, nParamCount );
- bSucc = pApp->execute( eOptions, aArgList ) == NAMESPACE_VOS(OProcess)::E_None;
+ vos::OArgumentList aArgList( pArgumentList, nParamCount );
+ bSucc = pApp->execute( eOptions, aArgList ) == vos::OProcess::E_None;
}
/*
if( nParamCount == 0 )
- pApp = new NAMESPACE_VOS(OProcess)( pProg );
+ pApp = new vos::OProcess( pProg );
else
- pApp = new NAMESPACE_VOS(OProcess)( pProg, pParamList, nParamCount );
- BOOL bSucc = pApp->execute( eOptions ) == NAMESPACE_VOS(OProcess)::E_None;
+ pApp = new vos::OProcess( pProg, pParamList, nParamCount );
+ BOOL bSucc = pApp->execute( eOptions ) == vos::OProcess::E_None;
*/
delete pApp;
@@ -4380,16 +4347,6 @@ RTLFUNC(SetAttr) // JSM
// #57064 Bei virtuellen URLs den Real-Path extrahieren
DirEntry aEntry( aStr );
String aFile = aEntry.GetFull();
- #ifdef WIN
- int nErr = _dos_setfileattr( aFile.GetStr(),(unsigned ) nFlags );
- if ( nErr )
- {
- if (errno == EACCES)
- StarBASIC::Error( SbERR_ACCESS_DENIED );
- else
- StarBASIC::Error( SbERR_FILE_NOT_FOUND );
- }
- #endif
ByteString aByteFile( aFile, gsl_getSystemTextEncoding() );
#ifdef WNT
if (!SetFileAttributes (aByteFile.GetBuffer(),(DWORD)nFlags))
diff --git a/basic/source/runtime/methods1.cxx b/basic/source/runtime/methods1.cxx
index 62e9c388f5c5..2a536eae65be 100644
--- a/basic/source/runtime/methods1.cxx
+++ b/basic/source/runtime/methods1.cxx
@@ -28,11 +28,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_basic.hxx"
-#if defined(WIN)
-#include <string.h>
-#else
#include <stdlib.h> // getenv
-#endif
#include <vcl/svapp.hxx>
#include <vcl/mapmod.hxx>
#include <vcl/wrkwin.hxx>
@@ -52,10 +48,6 @@
#include <svpm.h>
#endif
-#if defined(WIN)
-#include <tools/svwin.h>
-#endif
-
#ifndef CLK_TCK
#define CLK_TCK CLOCKS_PER_SEC
#endif
@@ -1165,31 +1157,10 @@ RTLFUNC(Environ)
}
String aResult;
// sollte ANSI sein, aber unter Win16 in DLL nicht moeglich
-#if defined(WIN)
- LPSTR lpszEnv = GetDOSEnvironment();
- String aCompareStr( rPar.Get(1)->GetString() );
- aCompareStr += '=';
- const char* pCompare = aCompareStr.GetStr();
- int nCompareLen = aCompareStr.Len();
- while ( *lpszEnv )
- {
- // Es werden alle EnvString in der Form ENV=VAL 0-terminiert
- // aneinander gehaengt.
-
- if ( strnicmp( pCompare, lpszEnv, nCompareLen ) == 0 )
- {
- aResult = (const char*)(lpszEnv+nCompareLen);
- rPar.Get(0)->PutString( aResult );
- return;
- }
- lpszEnv += lstrlen( lpszEnv ) + 1; // Next Enviroment-String
- }
-#else
ByteString aByteStr( rPar.Get(1)->GetString(), gsl_getSystemTextEncoding() );
const char* pEnvStr = getenv( aByteStr.GetBuffer() );
if ( pEnvStr )
aResult = String::CreateFromAscii( pEnvStr );
-#endif
rPar.Get(0)->PutString( aResult );
}
@@ -1200,11 +1171,7 @@ static double GetDialogZoomFactor( BOOL bX, long nValue )
if( pDevice )
{
Size aRefSize( nValue, nValue );
-#ifndef WIN
Fraction aFracX( 1, 26 );
-#else
- Fraction aFracX( 1, 23 );
-#endif
Fraction aFracY( 1, 24 );
MapMode aMap( MAP_APPFONT, Point(), aFracX, aFracY );
Size aScaledSize = pDevice->LogicToPixel( aRefSize, aMap );
diff --git a/basic/source/runtime/step0.cxx b/basic/source/runtime/step0.cxx
index 06a8bb19af00..2acf59ca6b71 100644
--- a/basic/source/runtime/step0.cxx
+++ b/basic/source/runtime/step0.cxx
@@ -138,7 +138,6 @@ void SbiRuntime::StepCompare( SbxOperator eOp )
}
}
-#ifndef WIN
static SbxVariable* pTRUE = NULL;
static SbxVariable* pFALSE = NULL;
@@ -162,12 +161,6 @@ void SbiRuntime::StepCompare( SbxOperator eOp )
}
PushVar( pFALSE );
}
-#else
- BOOL bRes = p2->Compare( eOp, *p1 );
- SbxVariable* pRes = new SbxVariable;
- pRes->PutBool( bRes );
- PushVar( pRes );
-#endif
}
void SbiRuntime::StepEXP() { StepArith( SbxEXP ); }
diff --git a/basic/source/sbx/sbxbase.cxx b/basic/source/sbx/sbxbase.cxx
index b1815228cd99..60bb9fe505e7 100644
--- a/basic/source/sbx/sbxbase.cxx
+++ b/basic/source/sbx/sbxbase.cxx
@@ -48,18 +48,11 @@ TYPEINIT0(SbxBase)
SbxAppData* GetSbxData_Impl()
{
-#ifndef DOS
SbxAppData** ppData = (SbxAppData**) ::GetAppData( SHL_SBX );
SbxAppData* p = *ppData;
if( !p )
p = *ppData = new SbxAppData;
return p;
-#else
- SbxAppData** ppData;
- SbxAppData* p;
- p = *ppData = new SbxAppData;
- return p;
-#endif
}
SbxAppData::~SbxAppData()
diff --git a/basic/source/sbx/sbxdate.cxx b/basic/source/sbx/sbxdate.cxx
index 3a0636e4e7fc..1ac8c254ca6b 100644
--- a/basic/source/sbx/sbxdate.cxx
+++ b/basic/source/sbx/sbxdate.cxx
@@ -90,7 +90,6 @@ double ImpGetDate( const SbxValues* p )
nRes = 0;
else
{
-#ifndef DOS
LanguageType eLangType = GetpApp()->GetSettings().GetLanguage();
SvNumberFormatter* pFormatter;
@@ -141,9 +140,6 @@ double ImpGetDate( const SbxValues* p )
}
delete pFormatter;
-#else
- SbxBase::SetError( SbxERR_CONVERSION ); nRes = 0;
-#endif
}
break;
case SbxOBJECT:
@@ -246,7 +242,6 @@ start:
case SbxBYREF | SbxSTRING:
case SbxSTRING:
case SbxLPSTR:
-#ifndef DOS
{
if( !p->pOUString )
p->pOUString = new ::rtl::OUString;
@@ -303,11 +298,8 @@ start:
pFormatter->GetOutputString( n, nIndex, aTmpString, &pColor );
*p->pOUString = aTmpString;
delete pFormatter;
-#endif
break;
-#ifndef DOS
}
-#endif
case SbxOBJECT:
{
SbxValue* pVal = PTR_CAST(SbxValue,p->pObj);
diff --git a/connectivity/source/drivers/adabas/BDriver.cxx b/connectivity/source/drivers/adabas/BDriver.cxx
index e9a0798761b9..fc92ebb38b0c 100644
--- a/connectivity/source/drivers/adabas/BDriver.cxx
+++ b/connectivity/source/drivers/adabas/BDriver.cxx
@@ -48,9 +48,7 @@
#include <memory>
#include <sys/stat.h>
-#if defined(MAC)
-const char sNewLine = '\015';
-#elif defined(UNX)
+#if defined(UNX)
const char sNewLine = '\012';
#else
const char sNewLine[] = "\015\012"; // \015\012 and not \n
@@ -464,8 +462,10 @@ void SAL_CALL ODriver::createCatalog( const Sequence< PropertyValue >& info ) th
{
TDatabaseStruct aDBInfo;
fillInfo(info,aDBInfo);
- static char envName[] = "DBSERVICE=0";
- putenv( envName );
+
+ ::rtl::OUString envVar(RTL_CONSTASCII_USTRINGPARAM("DBSERVICE"));
+ ::rtl::OUString envData(RTL_CONSTASCII_USTRINGPARAM("0"));
+ osl_setEnvironment(envVar.pData, envData.pData);
m_sDbRunDir = m_sDbWorkURL + ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/wrk/")) + aDBInfo.sDBName;
String sTemp;
@@ -854,7 +854,7 @@ void ODriver::createNeededDirs(const ::rtl::OUString& sDBName)
if(UCBContentHelper::Exists(sTemp))
UCBContentHelper::Kill(sTemp);
-#if !(defined(WIN) || defined(WNT))
+#if !(defined(WNT))
sTemp = sDBConfig;
sTemp += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("diag"));
if(!UCBContentHelper::IsFolder(sTemp))
@@ -876,7 +876,7 @@ void ODriver::createNeededDirs(const ::rtl::OUString& sDBName)
void ODriver::clearDatabase(const ::rtl::OUString& sDBName)
{ // stop the database
::rtl::OUString sCommand;
-#if defined(WIN) || defined(WNT)
+#if defined(WNT)
::rtl::OUString sStop = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("stop"));
OArgumentList aArgs(2,&sDBName,&sStop);
sCommand = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("x_cons.exe"));
@@ -921,7 +921,7 @@ void ODriver::createDb( const TDatabaseStruct& _aInfo)
PutParam(_aInfo.sDBName,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("KERNELTRACESIZE")),::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("100")));
PutParam(_aInfo.sDBName,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("LOG_QUEUE_PAGES")),::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("10")));
-#if !(defined(WIN) || defined(WNT))
+#if !defined(WNT)
PutParam(_aInfo.sDBName,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("OPMSG1")),::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/dev/null")));
#endif
@@ -989,7 +989,7 @@ int ODriver::X_PARAM(const ::rtl::OUString& _DBNAME,
::std::auto_ptr<SvStream> pFileStream( UcbStreamHelper::CreateStream(sCommandFile,STREAM_STD_READWRITE));
pFileStream->Seek(STREAM_SEEK_TO_END);
(*pFileStream) << "x_param"
-#if defined(WIN) || defined(WNT)
+#if defined(WNT)
<< ".exe"
#endif
<< " -d "
@@ -1000,7 +1000,7 @@ int ODriver::X_PARAM(const ::rtl::OUString& _DBNAME,
<< ::rtl::OString(_PWD,_PWD.getLength(),gsl_getSystemTextEncoding())
<< " "
<< ::rtl::OString(_CMD,_CMD.getLength(),gsl_getSystemTextEncoding())
-#if (defined(WIN) || defined(WNT))
+#if defined(WNT)
#if (OSL_DEBUG_LEVEL > 1) || defined(DBG_UTIL)
<< " >> %DBWORK%\\create.log 2>&1"
#endif
@@ -1050,7 +1050,7 @@ void ODriver::PutParam(const ::rtl::OUString& sDBName,
{
OArgumentList aArgs(3,&sDBName,&rWhat,&rHow);
::rtl::OUString sCommand = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("putparam"));
-#if defined(WIN) || defined(WNT)
+#if defined(WNT)
sCommand += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".exe"));
#endif
@@ -1112,7 +1112,7 @@ OSL_TRACE("CreateFile %d",_nSize);
int ODriver::X_START(const ::rtl::OUString& sDBName)
{
::rtl::OUString sCommand;
-#if defined(WIN) || defined(WNT)
+#if defined(WNT)
::rtl::OUString sArg1 = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("-d"));
::rtl::OUString sArg3 = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("-NoDBService"));
@@ -1150,7 +1150,7 @@ int ODriver::X_START(const ::rtl::OUString& sDBName)
int ODriver::X_STOP(const ::rtl::OUString& sDBName)
{
::rtl::OUString sCommand;
-#if defined(WIN) || defined(WNT)
+#if defined(WNT)
::rtl::OUString sArg1 = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("-d"));
::rtl::OUString sArg2 = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("-NoDBService"));
@@ -1195,7 +1195,7 @@ void ODriver::XUTIL(const ::rtl::OUString& _rParam,
::std::auto_ptr<SvStream> pFileStream( UcbStreamHelper::CreateStream(sCommandFile,STREAM_STD_READWRITE));
pFileStream->Seek(STREAM_SEEK_TO_END);
(*pFileStream) <<
-#if defined(WIN) || defined(WNT)
+#if defined(WNT)
"xutil.exe"
#else
"utility"
@@ -1248,7 +1248,7 @@ void ODriver::LoadBatch(const ::rtl::OUString& sDBName,
::std::auto_ptr<SvStream> pFileStream( UcbStreamHelper::CreateStream(sCommandFile,STREAM_STD_READWRITE));
pFileStream->Seek(STREAM_SEEK_TO_END);
(*pFileStream) << "xload"
-#if defined(WIN) || defined(WNT)
+#if defined(WNT)
<< ".exe"
#endif
<< " -d "
@@ -1317,7 +1317,7 @@ void ODriver::fillEnvironmentVariables()
::rtl::OUString ODriver::generateInitFile() const
{
String sExt;
-#if !(defined(WIN) || defined(WNT))
+#if !defined(WNT)
sExt = String::CreateFromAscii(".sh");
#else
sExt = String::CreateFromAscii(".bat");
@@ -1325,13 +1325,13 @@ void ODriver::fillEnvironmentVariables()
String sWorkUrl(m_sDbWorkURL);
::utl::TempFile aCmdFile(String::CreateFromAscii("Init"),&sExt,&sWorkUrl);
-#if !(defined(WIN) || defined(WNT))
+#if !defined(WNT)
String sPhysicalPath;
LocalFileHelper::ConvertURLToPhysicalName(aCmdFile.GetURL(),sPhysicalPath);
chmod(ByteString(sPhysicalPath,gsl_getSystemTextEncoding()).GetBuffer(),S_IRUSR|S_IWUSR|S_IXUSR);
#endif
-#if !(defined(WIN) || defined(WNT))
+#if !defined(WNT)
SvStream* pFileStream = aCmdFile.GetStream(STREAM_WRITE);
(*pFileStream) << "#!/bin/sh"
<< sNewLine
@@ -1441,7 +1441,7 @@ void ODriver::X_CONS(const ::rtl::OUString& sDBName,const ::rtl::OString& _ACTIO
pFileStream->Seek(STREAM_SEEK_TO_END);
(*pFileStream) << "x_cons"
-#if defined(WIN) || defined(WNT)
+#if defined(WNT)
<< ".exe"
#endif
<< " "
@@ -1524,7 +1524,7 @@ sal_Bool ODriver::isVersion(const ::rtl::OUString& sDBName, const char* _pVersio
pFileStream->Seek(STREAM_SEEK_TO_END);
(*pFileStream) << "getparam"
-#if defined(WIN) || defined(WNT)
+#if defined(WNT)
<< ".exe"
#endif
<< " "
@@ -1574,7 +1574,7 @@ void ODriver::checkAndInsertNewDevSpace(const ::rtl::OUString& sDBName,
pFileStream->Seek(STREAM_SEEK_TO_END);
(*pFileStream) << "getparam"
-#if defined(WIN) || defined(WNT)
+#if defined(WNT)
<< ".exe"
#endif
<< " "
@@ -1654,7 +1654,7 @@ sal_Bool ODriver::isKernelVersion(const char* _pVersion)
// -----------------------------------------------------------------------------
void ODriver::installSystemTables( const TDatabaseStruct& _aInfo)
{
-#if defined(WIN) || defined(WNT)
+#if defined(WNT)
// xutil -d %_DBNAME% -u %_CONTROL_USER%,%_CONTROL_PWD% -b %m_sDbRoot%\env\TERMCHAR.ind
::rtl::OUString aBatch = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("-b "));
::rtl::OUString sTemp2 = m_sDbRootURL + m_sDelimit
diff --git a/connectivity/source/drivers/adabas/BFunctions.cxx b/connectivity/source/drivers/adabas/BFunctions.cxx
index 3a57e4818e88..6d58c030a578 100644
--- a/connectivity/source/drivers/adabas/BFunctions.cxx
+++ b/connectivity/source/drivers/adabas/BFunctions.cxx
@@ -129,7 +129,7 @@ sal_Bool LoadLibrary_ADABAS(::rtl::OUString &_rPath)
}
const sal_Char* pLibraryAsciiName = NULL;
-#if defined(WIN) || defined(WNT)
+#if defined(WNT)
pLibraryAsciiName = "SQLOD32.DLL";
#elif ( defined(SOLARIS) && defined(SPARC)) || defined(LINUX)
pLibraryAsciiName = "odbclib.so";
diff --git a/connectivity/source/drivers/dbase/DTable.cxx b/connectivity/source/drivers/dbase/DTable.cxx
index 157d1f7b68fa..011d0e89ce7a 100644
--- a/connectivity/source/drivers/dbase/DTable.cxx
+++ b/connectivity/source/drivers/dbase/DTable.cxx
@@ -1432,16 +1432,8 @@ BOOL ODbaseTable::CreateMemoFile(const INetURLObject& aFile)
char aBuffer[512]; // write buffer
memset(aBuffer,0,sizeof(aBuffer));
-#ifdef WIN
- m_pMemoStream->Seek(0L);
- for (UINT16 i = 0; i < 512; i++)
- {
- (*m_pMemoStream) << BYTE(0);
- }
-#else
m_pMemoStream->SetFiller('\0');
m_pMemoStream->SetStreamSize(512);
-#endif
m_pMemoStream->Seek(0L);
(*m_pMemoStream) << long(1); // Zeiger auf ersten freien Block
diff --git a/connectivity/source/drivers/file/FResultSet.cxx b/connectivity/source/drivers/file/FResultSet.cxx
index 421225b34935..305e26d386e0 100644
--- a/connectivity/source/drivers/file/FResultSet.cxx
+++ b/connectivity/source/drivers/file/FResultSet.cxx
@@ -75,12 +75,7 @@ using namespace com::sun::star::sdbcx;
using namespace com::sun::star::container;
// Maximale Anzahl von Rows, die mit ORDER BY sortiert durchlaufen werden koennen:
-#if defined (WIN)
-#define MAX_KEYSET_SIZE 0x3ff0 // Etwas weniger als ein Segment, damit
- // noch Platz fuer Memory Debug-Informationen
-#else
#define MAX_KEYSET_SIZE 0x40000 // 256K
-#endif
namespace
{
@@ -1049,7 +1044,7 @@ BOOL OResultSet::Move(IResultSetHelper::Movement eCursorPosition, INT32 nOffset,
//
INT32 nTempPos = m_nRowPos;
// exclusiver zugriff auf die Tabelle
- // NAMESPACE_VOS(OGuard)* pGuard = m_pTable->Lock();
+ // vos::OGuard* pGuard = m_pTable->Lock();
if (m_aSQLIterator.getStatementType() == SQL_STATEMENT_SELECT &&
!isCount())
@@ -1409,7 +1404,7 @@ BOOL OResultSet::OpenImpl()
m_nRowCountResult = -1;
// exclusiver zugriff auf die Tabelle
- // NAMESPACE_VOS(OGuard)* pGuard = pTable->Lock();
+ // vos::OGuard* pGuard = pTable->Lock();
m_nLastVisitedPos = m_pTable->getCurrentLastPos();
switch(m_aSQLIterator.getStatementType())
diff --git a/connectivity/source/drivers/hsqldb/HStorageMap.cxx b/connectivity/source/drivers/hsqldb/HStorageMap.cxx
index 57ed88b1dda8..91626906a906 100644
--- a/connectivity/source/drivers/hsqldb/HStorageMap.cxx
+++ b/connectivity/source/drivers/hsqldb/HStorageMap.cxx
@@ -135,7 +135,7 @@ namespace connectivity
::rtl::OUString StorageContainer::removeOldURLPrefix(const ::rtl::OUString& _sURL)
{
::rtl::OUString sRet = _sURL;
-#if defined(WIN) || defined(WNT)
+#if defined(WNT)
sal_Int32 nIndex = sRet.lastIndexOf('\\');
#else
sal_Int32 nIndex = sRet.lastIndexOf('/');
diff --git a/connectivity/source/drivers/kab/makefile.mk b/connectivity/source/drivers/kab/makefile.mk
index 2a0dc5cd8999..219bdd6cd020 100644
--- a/connectivity/source/drivers/kab/makefile.mk
+++ b/connectivity/source/drivers/kab/makefile.mk
@@ -46,6 +46,9 @@ CFLAGS+=$(KDE_CFLAGS)
.IF "$(KDE_ROOT)"!=""
EXTRALIBPATHS+=-L$(KDE_ROOT)$/lib
+.IF "$(OS)$(CPU)" == "LINUXX"
+EXTRALIBPATHS+=-L$(KDE_ROOT)$/lib64
+.ENDIF
.ENDIF
# === KAB base library ==========================
diff --git a/connectivity/source/drivers/mozab/MDriver.cxx b/connectivity/source/drivers/mozab/MDriver.cxx
index b0757a201844..37562fa57d57 100644
--- a/connectivity/source/drivers/mozab/MDriver.cxx
+++ b/connectivity/source/drivers/mozab/MDriver.cxx
@@ -249,7 +249,7 @@ EDriverType MozabDriver::impl_classifyURL( const ::rtl::OUString& url )
const sal_Char* pScheme;
} aSchemeMap[] =
{
-#if defined(WNT) || defined(WIN)
+#if defined(WNT)
{ Outlook, "outlook" },
{ OutlookExpress, "outlookexp" },
#endif
diff --git a/connectivity/source/drivers/odbc/OFunctions.cxx b/connectivity/source/drivers/odbc/OFunctions.cxx
index d84c55787635..148c79ebadd4 100644
--- a/connectivity/source/drivers/odbc/OFunctions.cxx
+++ b/connectivity/source/drivers/odbc/OFunctions.cxx
@@ -109,10 +109,6 @@ sal_Bool LoadLibrary_ODBC3(::rtl::OUString &_rPath)
if (bLoaded)
return sal_True;
-#ifdef WIN
- _rPath = ::rtl::OUString::createFromAscii("ODBC.DLL");
-
-#endif
#ifdef WNT
_rPath = ::rtl::OUString::createFromAscii("ODBC32.DLL");
#endif
diff --git a/connectivity/source/inc/odbc/OFunctiondefs.hxx b/connectivity/source/inc/odbc/OFunctiondefs.hxx
index 36c2a2f722da..25884342bf89 100644
--- a/connectivity/source/inc/odbc/OFunctiondefs.hxx
+++ b/connectivity/source/inc/odbc/OFunctiondefs.hxx
@@ -29,7 +29,7 @@
#ifndef _CONNECTIVITY_OFUNCTIONDEFS_HXX_
#define _CONNECTIVITY_OFUNCTIONDEFS_HXX_
-#if defined(WIN) || defined(WNT)
+#if defined(WNT)
#ifdef _MSC_VER
#pragma warning(push)
diff --git a/desktop/source/app/app.cxx b/desktop/source/app/app.cxx
index f5d6979bc4b1..e0f976df34ed 100644
--- a/desktop/source/app/app.cxx
+++ b/desktop/source/app/app.cxx
@@ -2653,8 +2653,6 @@ void Desktop::OpenClients()
aHelpURLBuffer.appendAscii("&System=UNX");
#elif defined WNT
aHelpURLBuffer.appendAscii("&System=WIN");
-#elif defined MAC
- aHelpURLBuffer.appendAscii("&System=MAC");
#elif defined OS2
aHelpURLBuffer.appendAscii("&System=OS2");
#endif
diff --git a/desktop/source/app/officeipcthread.cxx b/desktop/source/app/officeipcthread.cxx
index fc74c3fb4504..5527b8ea2aea 100644
--- a/desktop/source/app/officeipcthread.cxx
+++ b/desktop/source/app/officeipcthread.cxx
@@ -847,8 +847,6 @@ void SAL_CALL OfficeIPCThread::run()
aHelpURLBuffer.appendAscii("&System=UNX");
#elif defined WNT
aHelpURLBuffer.appendAscii("&System=WIN");
-#elif defined MAC
- aHelpURLBuffer.appendAscii("&System=MAC");
#elif defined OS2
aHelpURLBuffer.appendAscii("&System=OS2");
#endif
diff --git a/desktop/source/migration/services/cexportsoo3.cxx b/desktop/source/migration/services/cexportsoo3.cxx
index 695b6b810808..695b6b810808 100644..100755
--- a/desktop/source/migration/services/cexportsoo3.cxx
+++ b/desktop/source/migration/services/cexportsoo3.cxx
diff --git a/desktop/source/migration/services/oo3extensionmigration.cxx b/desktop/source/migration/services/oo3extensionmigration.cxx
index 3e9836fa2e84..3e9836fa2e84 100644..100755
--- a/desktop/source/migration/services/oo3extensionmigration.cxx
+++ b/desktop/source/migration/services/oo3extensionmigration.cxx
diff --git a/desktop/source/migration/services/oo3extensionmigration.hxx b/desktop/source/migration/services/oo3extensionmigration.hxx
index fb58692c81ee..fb58692c81ee 100644..100755
--- a/desktop/source/migration/services/oo3extensionmigration.hxx
+++ b/desktop/source/migration/services/oo3extensionmigration.hxx
diff --git a/drawinglayer/inc/drawinglayer/primitive2d/discreteshadowprimitive2d.hxx b/drawinglayer/inc/drawinglayer/primitive2d/discreteshadowprimitive2d.hxx
new file mode 100644
index 000000000000..c30bff545ddb
--- /dev/null
+++ b/drawinglayer/inc/drawinglayer/primitive2d/discreteshadowprimitive2d.hxx
@@ -0,0 +1,128 @@
+/*************************************************************************
+ *
+ * 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 INCLUDED_DRAWINGLAYER_PRIMITIVE2D_QUADRATICSHADOWPRIMITIVE2D_HXX
+#define INCLUDED_DRAWINGLAYER_PRIMITIVE2D_QUADRATICSHADOWPRIMITIVE2D_HXX
+
+#include <drawinglayer/primitive2d/primitivetools2d.hxx>
+#include <vcl/bitmapex.hxx>
+#include <basegfx/matrix/b2dhommatrix.hxx>
+
+//////////////////////////////////////////////////////////////////////////////
+// DiscreteShadowPrimitive2D class
+
+namespace drawinglayer
+{
+ namespace primitive2d
+ {
+ /** DiscreteShadow data class
+
+ */
+ class DiscreteShadow
+ {
+ private:
+ /// the original shadow BitmapEx in a special form
+ BitmapEx maBitmapEx;
+
+ /// buffered extracted parts of CombinedShadow for easier usage
+ BitmapEx maTopLeft;
+ BitmapEx maTop;
+ BitmapEx maTopRight;
+ BitmapEx maRight;
+ BitmapEx maBottomRight;
+ BitmapEx maBottom;
+ BitmapEx maBottomLeft;
+ BitmapEx maLeft;
+
+ public:
+ /// constructor
+ DiscreteShadow(const BitmapEx& rBitmapEx);
+
+ /// data read access
+ const BitmapEx& getBitmapEx() const { return maBitmapEx; }
+
+ /// compare operator
+ bool operator==(const DiscreteShadow& rCompare) const
+ {
+ return getBitmapEx() == rCompare.getBitmapEx();
+ }
+
+ /// helper accesses which create on-demand needed segments
+ const BitmapEx& getTopLeft() const;
+ const BitmapEx& getTop() const;
+ const BitmapEx& getTopRight() const;
+ const BitmapEx& getRight() const;
+ const BitmapEx& getBottomRight() const;
+ const BitmapEx& getBottom() const;
+ const BitmapEx& getBottomLeft() const;
+ const BitmapEx& getLeft() const;
+ };
+
+ /** DiscreteShadowPrimitive2D class
+
+ */
+ class DiscreteShadowPrimitive2D : public DiscreteMetricDependentPrimitive2D
+ {
+ private:
+ // the object transformation of the rectangular object
+ basegfx::B2DHomMatrix maTransform;
+
+ // the bitmap shadow data
+ DiscreteShadow maDiscreteShadow;
+
+ protected:
+ /// create local decomposition
+ virtual Primitive2DSequence create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const;
+
+ public:
+ /// constructor
+ DiscreteShadowPrimitive2D(
+ const basegfx::B2DHomMatrix& rTransform,
+ const DiscreteShadow& rDiscreteShadow);
+
+ /// data read access
+ const basegfx::B2DHomMatrix& getTransform() const { return maTransform; }
+ const DiscreteShadow& getDiscreteShadow() const { return maDiscreteShadow; }
+
+ /// compare operator
+ virtual bool operator==(const BasePrimitive2D& rPrimitive) const;
+
+ /// get range
+ virtual basegfx::B2DRange getB2DRange(const geometry::ViewInformation2D& rViewInformation) const;
+
+ /// provide unique ID
+ DeclPrimitrive2DIDBlock()
+ };
+ } // end of namespace primitive2d
+} // end of namespace drawinglayer
+
+//////////////////////////////////////////////////////////////////////////////
+
+#endif // INCLUDED_DRAWINGLAYER_PRIMITIVE2D_QUADRATICSHADOWPRIMITIVE2D_HXX
+
+//////////////////////////////////////////////////////////////////////////////
+// eof
diff --git a/drawinglayer/inc/drawinglayer/primitive2d/drawinglayer_primitivetypes2d.hxx b/drawinglayer/inc/drawinglayer/primitive2d/drawinglayer_primitivetypes2d.hxx
index c60257551c28..87aae8cb768f 100644
--- a/drawinglayer/inc/drawinglayer/primitive2d/drawinglayer_primitivetypes2d.hxx
+++ b/drawinglayer/inc/drawinglayer/primitive2d/drawinglayer_primitivetypes2d.hxx
@@ -93,14 +93,16 @@
#define PRIMITIVE2D_ID_STRUCTURETAGPRIMITIVE2D (PRIMITIVE2D_ID_RANGE_DRAWINGLAYER| 50)
#define PRIMITIVE2D_ID_BORDERLINEPRIMITIVE2D (PRIMITIVE2D_ID_RANGE_DRAWINGLAYER| 51)
#define PRIMITIVE2D_ID_POLYPOLYGONMARKERPRIMITIVE2D (PRIMITIVE2D_ID_RANGE_DRAWINGLAYER| 52)
-#define PRIMITIVE2D_ID_INVERTPRIMITIVE2D (PRIMITIVE2D_ID_RANGE_DRAWINGLAYER| 53)
-#define PRIMITIVE2D_ID_DISCRETEBITMAPPRIMITIVE2D (PRIMITIVE2D_ID_RANGE_DRAWINGLAYER| 54)
-#define PRIMITIVE2D_ID_WALLPAPERBITMAPPRIMITIVE2D (PRIMITIVE2D_ID_RANGE_DRAWINGLAYER| 55)
-#define PRIMITIVE2D_ID_TEXTLINEPRIMITIVE2D (PRIMITIVE2D_ID_RANGE_DRAWINGLAYER| 56)
-#define PRIMITIVE2D_ID_TEXTCHARACTERSTRIKEOUTPRIMITIVE2D (PRIMITIVE2D_ID_RANGE_DRAWINGLAYER| 57)
-#define PRIMITIVE2D_ID_TEXTGEOMETRYSTRIKEOUTPRIMITIVE2D (PRIMITIVE2D_ID_RANGE_DRAWINGLAYER| 58)
-#define PRIMITIVE2D_ID_EPSPRIMITIVE2D (PRIMITIVE2D_ID_RANGE_DRAWINGLAYER| 59)
-#define PRIMITIVE2D_ID_HIDDENGEOMETRYPRIMITIVE2D (PRIMITIVE2D_ID_RANGE_DRAWINGLAYER| 60)
+#define PRIMITIVE2D_ID_HITTESTPRIMITIVE2D (PRIMITIVE2D_ID_RANGE_DRAWINGLAYER| 53)
+#define PRIMITIVE2D_ID_INVERTPRIMITIVE2D (PRIMITIVE2D_ID_RANGE_DRAWINGLAYER| 54)
+#define PRIMITIVE2D_ID_DISCRETEBITMAPPRIMITIVE2D (PRIMITIVE2D_ID_RANGE_DRAWINGLAYER| 55)
+#define PRIMITIVE2D_ID_WALLPAPERBITMAPPRIMITIVE2D (PRIMITIVE2D_ID_RANGE_DRAWINGLAYER| 56)
+#define PRIMITIVE2D_ID_TEXTLINEPRIMITIVE2D (PRIMITIVE2D_ID_RANGE_DRAWINGLAYER| 57)
+#define PRIMITIVE2D_ID_TEXTCHARACTERSTRIKEOUTPRIMITIVE2D (PRIMITIVE2D_ID_RANGE_DRAWINGLAYER| 58)
+#define PRIMITIVE2D_ID_TEXTGEOMETRYSTRIKEOUTPRIMITIVE2D (PRIMITIVE2D_ID_RANGE_DRAWINGLAYER| 59)
+#define PRIMITIVE2D_ID_EPSPRIMITIVE2D (PRIMITIVE2D_ID_RANGE_DRAWINGLAYER| 60)
+#define PRIMITIVE2D_ID_DISCRETESHADOWPRIMITIVE2D (PRIMITIVE2D_ID_RANGE_DRAWINGLAYER| 61)
+#define PRIMITIVE2D_ID_HIDDENGEOMETRYPRIMITIVE2D (PRIMITIVE2D_ID_RANGE_DRAWINGLAYER| 62)
//////////////////////////////////////////////////////////////////////////////
diff --git a/drawinglayer/prj/d.lst b/drawinglayer/prj/d.lst
index e863e47a3b18..54f087d317e4 100644
--- a/drawinglayer/prj/d.lst
+++ b/drawinglayer/prj/d.lst
@@ -16,6 +16,8 @@ mkdir: %_DEST%\inc%_EXT%\drawinglayer\primitive2d
..\inc\drawinglayer\primitive2d\borderlineprimitive2d.hxx %_DEST%\inc%_EXT%\drawinglayer\primitive2d\borderlineprimitive2d.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
diff --git a/drawinglayer/source/primitive2d/discreteshadowprimitive2d.cxx b/drawinglayer/source/primitive2d/discreteshadowprimitive2d.cxx
new file mode 100644
index 000000000000..a4afd501728b
--- /dev/null
+++ b/drawinglayer/source/primitive2d/discreteshadowprimitive2d.cxx
@@ -0,0 +1,339 @@
+/*************************************************************************
+ *
+ * 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_drawinglayer.hxx"
+
+#include <drawinglayer/primitive2d/discreteshadowprimitive2d.hxx>
+#include <drawinglayer/primitive2d/drawinglayer_primitivetypes2d.hxx>
+#include <drawinglayer/primitive2d/bitmapprimitive2d.hxx>
+#include <basegfx/matrix/b2dhommatrixtools.hxx>
+#include <drawinglayer/primitive2d/transformprimitive2d.hxx>
+#include <drawinglayer/geometry/viewinformation2d.hxx>
+
+//////////////////////////////////////////////////////////////////////////////
+
+namespace drawinglayer
+{
+ namespace primitive2d
+ {
+ DiscreteShadow::DiscreteShadow(const BitmapEx& rBitmapEx)
+ : maBitmapEx(rBitmapEx),
+ maTopLeft(),
+ maTop(),
+ maTopRight(),
+ maRight(),
+ maBottomRight(),
+ maBottom(),
+ maBottomLeft(),
+ maLeft()
+ {
+ const Size& rBitmapSize = getBitmapEx().GetSizePixel();
+
+ if(rBitmapSize.Width() != rBitmapSize.Height() || rBitmapSize.Width() < 7)
+ {
+ OSL_ENSURE(false, "DiscreteShadowPrimitive2D: wrong bitmap format (!)");
+ maBitmapEx = BitmapEx();
+ }
+ }
+
+ const BitmapEx& DiscreteShadow::getTopLeft() const
+ {
+ if(maTopLeft.IsEmpty())
+ {
+ const sal_Int32 nQuarter((getBitmapEx().GetSizePixel().Width() - 3) >> 2);
+ const_cast< DiscreteShadow* >(this)->maTopLeft = getBitmapEx();
+ const_cast< DiscreteShadow* >(this)->maTopLeft.Crop(
+ Rectangle(Point(0,0),Size(nQuarter*2+1,nQuarter*2+1)));
+ }
+
+ return maTopLeft;
+ }
+
+ const BitmapEx& DiscreteShadow::getTop() const
+ {
+ if(maTop.IsEmpty())
+ {
+ const sal_Int32 nQuarter((getBitmapEx().GetSizePixel().Width() - 3) >> 2);
+ const_cast< DiscreteShadow* >(this)->maTop = getBitmapEx();
+ const_cast< DiscreteShadow* >(this)->maTop.Crop(
+ Rectangle(Point(nQuarter*2+1,0),Size(1,nQuarter+1)));
+ }
+
+ return maTop;
+ }
+
+ const BitmapEx& DiscreteShadow::getTopRight() const
+ {
+ if(maTopRight.IsEmpty())
+ {
+ const sal_Int32 nQuarter((getBitmapEx().GetSizePixel().Width() - 3) >> 2);
+ const_cast< DiscreteShadow* >(this)->maTopRight = getBitmapEx();
+ const_cast< DiscreteShadow* >(this)->maTopRight.Crop(
+ Rectangle(Point(nQuarter*2+2,0),Size(nQuarter*2+1,nQuarter*2+1)));
+ }
+
+ return maTopRight;
+ }
+
+ const BitmapEx& DiscreteShadow::getRight() const
+ {
+ if(maRight.IsEmpty())
+ {
+ const sal_Int32 nQuarter((getBitmapEx().GetSizePixel().Width() - 3) >> 2);
+ const_cast< DiscreteShadow* >(this)->maRight = getBitmapEx();
+ const_cast< DiscreteShadow* >(this)->maRight.Crop(
+ Rectangle(Point(nQuarter*3+2,nQuarter*2+1),Size(nQuarter+1,1)));
+ }
+
+ return maRight;
+ }
+
+ const BitmapEx& DiscreteShadow::getBottomRight() const
+ {
+ if(maBottomRight.IsEmpty())
+ {
+ const sal_Int32 nQuarter((getBitmapEx().GetSizePixel().Width() - 3) >> 2);
+ const_cast< DiscreteShadow* >(this)->maBottomRight = getBitmapEx();
+ const_cast< DiscreteShadow* >(this)->maBottomRight.Crop(
+ Rectangle(Point(nQuarter*2+2,nQuarter*2+2),Size(nQuarter*2+1,nQuarter*2+1)));
+ }
+
+ return maBottomRight;
+ }
+
+ const BitmapEx& DiscreteShadow::getBottom() const
+ {
+ if(maBottom.IsEmpty())
+ {
+ const sal_Int32 nQuarter((getBitmapEx().GetSizePixel().Width() - 3) >> 2);
+ const_cast< DiscreteShadow* >(this)->maBottom = getBitmapEx();
+ const_cast< DiscreteShadow* >(this)->maBottom.Crop(
+ Rectangle(Point(nQuarter*2+1,nQuarter*3+2),Size(1,nQuarter+1)));
+ }
+
+ return maBottom;
+ }
+
+ const BitmapEx& DiscreteShadow::getBottomLeft() const
+ {
+ if(maBottomLeft.IsEmpty())
+ {
+ const sal_Int32 nQuarter((getBitmapEx().GetSizePixel().Width() - 3) >> 2);
+ const_cast< DiscreteShadow* >(this)->maBottomLeft = getBitmapEx();
+ const_cast< DiscreteShadow* >(this)->maBottomLeft.Crop(
+ Rectangle(Point(0,nQuarter*2+2),Size(nQuarter*2+1,nQuarter*2+1)));
+ }
+
+ return maBottomLeft;
+ }
+
+ const BitmapEx& DiscreteShadow::getLeft() const
+ {
+ if(maLeft.IsEmpty())
+ {
+ const sal_Int32 nQuarter((getBitmapEx().GetSizePixel().Width() - 3) >> 2);
+ const_cast< DiscreteShadow* >(this)->maLeft = getBitmapEx();
+ const_cast< DiscreteShadow* >(this)->maLeft.Crop(
+ Rectangle(Point(0,nQuarter*2+1),Size(nQuarter+1,1)));
+ }
+
+ return maLeft;
+ }
+
+ } // end of namespace primitive2d
+} // end of namespace drawinglayer
+
+//////////////////////////////////////////////////////////////////////////////
+
+namespace drawinglayer
+{
+ namespace primitive2d
+ {
+ Primitive2DSequence DiscreteShadowPrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& /*rViewInformation*/) const
+ {
+ Primitive2DSequence xRetval;
+
+ if(!getDiscreteShadow().getBitmapEx().IsEmpty())
+ {
+ const sal_Int32 nQuarter((getDiscreteShadow().getBitmapEx().GetSizePixel().Width() - 3) >> 2);
+ const basegfx::B2DVector aScale(getTransform() * basegfx::B2DVector(1.0, 1.0));
+ const double fSingleX(getDiscreteUnit() / aScale.getX());
+ const double fSingleY(getDiscreteUnit() / aScale.getY());
+ const double fBorderX(fSingleX * nQuarter);
+ const double fBorderY(fSingleY * nQuarter);
+ const double fBigLenX((fBorderX * 2.0) + fSingleX);
+ const double fBigLenY((fBorderY * 2.0) + fSingleY);
+
+ xRetval.realloc(8);
+
+ // TopLeft
+ xRetval[0] = Primitive2DReference(
+ new BitmapPrimitive2D(
+ getDiscreteShadow().getTopLeft(),
+ basegfx::tools::createScaleTranslateB2DHomMatrix(
+ fBigLenX,
+ fBigLenY,
+ -fBorderX,
+ -fBorderY)));
+
+ // Top
+ xRetval[1] = Primitive2DReference(
+ new BitmapPrimitive2D(
+ getDiscreteShadow().getTop(),
+ basegfx::tools::createScaleTranslateB2DHomMatrix(
+ 1.0 - (2.0 * fBorderX) - fSingleX,
+ fBorderY + fSingleY,
+ fBorderX + fSingleX,
+ -fBorderY)));
+
+ // TopRight
+ xRetval[2] = Primitive2DReference(
+ new BitmapPrimitive2D(
+ getDiscreteShadow().getTopRight(),
+ basegfx::tools::createScaleTranslateB2DHomMatrix(
+ fBigLenX,
+ fBigLenY,
+ 1.0 - fBorderX,
+ -fBorderY)));
+
+ // Right
+ xRetval[3] = Primitive2DReference(
+ new BitmapPrimitive2D(
+ getDiscreteShadow().getRight(),
+ basegfx::tools::createScaleTranslateB2DHomMatrix(
+ fBorderX + fSingleX,
+ 1.0 - (2.0 * fBorderY) - fSingleY,
+ 1.0,
+ fBorderY + fSingleY)));
+
+ // BottomRight
+ xRetval[4] = Primitive2DReference(
+ new BitmapPrimitive2D(
+ getDiscreteShadow().getBottomRight(),
+ basegfx::tools::createScaleTranslateB2DHomMatrix(
+ fBigLenX,
+ fBigLenY,
+ 1.0 - fBorderX,
+ 1.0 - fBorderY)));
+
+ // Bottom
+ xRetval[5] = Primitive2DReference(
+ new BitmapPrimitive2D(
+ getDiscreteShadow().getBottom(),
+ basegfx::tools::createScaleTranslateB2DHomMatrix(
+ 1.0 - (2.0 * fBorderX) - fSingleX,
+ fBorderY + fSingleY,
+ fBorderX + fSingleX,
+ 1.0)));
+
+ // BottomLeft
+ xRetval[6] = Primitive2DReference(
+ new BitmapPrimitive2D(
+ getDiscreteShadow().getBottomLeft(),
+ basegfx::tools::createScaleTranslateB2DHomMatrix(
+ fBigLenX,
+ fBigLenY,
+ -fBorderX,
+ 1.0 - fBorderY)));
+
+ // Left
+ xRetval[7] = Primitive2DReference(
+ new BitmapPrimitive2D(
+ getDiscreteShadow().getLeft(),
+ basegfx::tools::createScaleTranslateB2DHomMatrix(
+ fBorderX + fSingleX,
+ 1.0 - (2.0 * fBorderY) - fSingleY,
+ -fBorderX,
+ fBorderY + fSingleY)));
+
+ // put all in object transformation to get to target positions
+ const Primitive2DReference xTransformed(
+ new TransformPrimitive2D(
+ getTransform(),
+ xRetval));
+
+ xRetval = Primitive2DSequence(&xTransformed, 1);
+ }
+
+ return xRetval;
+ }
+
+ DiscreteShadowPrimitive2D::DiscreteShadowPrimitive2D(
+ const basegfx::B2DHomMatrix& rTransform,
+ const DiscreteShadow& rDiscreteShadow)
+ : DiscreteMetricDependentPrimitive2D(),
+ maTransform(rTransform),
+ maDiscreteShadow(rDiscreteShadow)
+ {
+ }
+
+ bool DiscreteShadowPrimitive2D::operator==(const BasePrimitive2D& rPrimitive) const
+ {
+ if(DiscreteMetricDependentPrimitive2D::operator==(rPrimitive))
+ {
+ const DiscreteShadowPrimitive2D& rCompare = (DiscreteShadowPrimitive2D&)rPrimitive;
+
+ return (getTransform() == rCompare.getTransform()
+ && getDiscreteShadow() == rCompare.getDiscreteShadow());
+ }
+
+ return false;
+ }
+
+ basegfx::B2DRange DiscreteShadowPrimitive2D::getB2DRange(const geometry::ViewInformation2D& rViewInformation) const
+ {
+ if(getDiscreteShadow().getBitmapEx().IsEmpty())
+ {
+ // no graphics without valid bitmap definition
+ return basegfx::B2DRange();
+ }
+ else
+ {
+ // prepare normal objectrange
+ basegfx::B2DRange aRetval(0.0, 0.0, 1.0, 1.0);
+ aRetval.transform(getTransform());
+
+ // extract discrete shadow size and grow
+ const basegfx::B2DVector aScale(rViewInformation.getViewTransformation() * basegfx::B2DVector(1.0, 1.0));
+ const sal_Int32 nQuarter((getDiscreteShadow().getBitmapEx().GetSizePixel().Width() - 3) >> 2);
+ const double fGrowX((1.0 / aScale.getX()) * nQuarter);
+ const double fGrowY((1.0 / aScale.getY()) * nQuarter);
+ aRetval.grow(std::max(fGrowX, fGrowY));
+
+ return aRetval;
+ }
+ }
+
+ // provide unique ID
+ ImplPrimitrive2DIDBlock(DiscreteShadowPrimitive2D, PRIMITIVE2D_ID_DISCRETESHADOWPRIMITIVE2D)
+
+ } // end of namespace primitive2d
+} // end of namespace drawinglayer
+
+//////////////////////////////////////////////////////////////////////////////
+// eof
diff --git a/drawinglayer/source/primitive2d/makefile.mk b/drawinglayer/source/primitive2d/makefile.mk
index bca5805ae6eb..720769a0efd5 100644
--- a/drawinglayer/source/primitive2d/makefile.mk
+++ b/drawinglayer/source/primitive2d/makefile.mk
@@ -46,6 +46,7 @@ SLOFILES= \
$(SLO)$/chartprimitive2d.obj \
$(SLO)$/controlprimitive2d.obj \
$(SLO)$/discretebitmapprimitive2d.obj \
+ $(SLO)$/discreteshadowprimitive2d.obj \
$(SLO)$/embedded3dprimitive2d.obj \
$(SLO)$/epsprimitive2d.obj \
$(SLO)$/fillbitmapprimitive2d.obj \
diff --git a/drawinglayer/source/processor2d/vclhelperbitmaprender.cxx b/drawinglayer/source/processor2d/vclhelperbitmaprender.cxx
index db61e0721ef0..80e34ba27701 100644
--- a/drawinglayer/source/processor2d/vclhelperbitmaprender.cxx
+++ b/drawinglayer/source/processor2d/vclhelperbitmaprender.cxx
@@ -85,9 +85,13 @@ namespace drawinglayer
}
// prepare dest coor
+ const sal_uInt32 nDiscreteWidth(basegfx::fround(aOutlineRange.getMaxX()));
+ const sal_uInt32 nDiscreteHeight(basegfx::fround(aOutlineRange.getMaxY()));
const Rectangle aDestRectPixel(
- basegfx::fround(aOutlineRange.getMinX()), basegfx::fround(aOutlineRange.getMinY()),
- basegfx::fround(aOutlineRange.getMaxX()), basegfx::fround(aOutlineRange.getMaxY()));
+ basegfx::fround(aOutlineRange.getMinX()),
+ basegfx::fround(aOutlineRange.getMinY()),
+ nDiscreteWidth > 0 ? nDiscreteWidth - 1 : 0,
+ nDiscreteHeight > 0 ? nDiscreteHeight - 1 : 0);
// paint it using GraphicManager
Graphic aGraphic(rBitmapEx);
@@ -106,9 +110,13 @@ namespace drawinglayer
// prepare dest coor. Necessary to expand since vcl's DrawBitmapEx draws one pix less
basegfx::B2DRange aOutlineRange(0.0, 0.0, 1.0, 1.0);
aOutlineRange.transform(rTransform);
+ const sal_uInt32 nDiscreteWidth(basegfx::fround(aOutlineRange.getMaxX()));
+ const sal_uInt32 nDiscreteHeight(basegfx::fround(aOutlineRange.getMaxY()));
const Rectangle aDestRectPixel(
- basegfx::fround(aOutlineRange.getMinX()), basegfx::fround(aOutlineRange.getMinY()),
- basegfx::fround(aOutlineRange.getMaxX()), basegfx::fround(aOutlineRange.getMaxY()));
+ basegfx::fround(aOutlineRange.getMinX()),
+ basegfx::fround(aOutlineRange.getMinY()),
+ nDiscreteWidth > 0 ? nDiscreteWidth - 1 : 0,
+ nDiscreteHeight > 0 ? nDiscreteHeight - 1 : 0);
// decompose matrix to check for shear, rotate and mirroring
basegfx::B2DVector aScale, aTranslate;
@@ -145,9 +153,13 @@ namespace drawinglayer
// process self with free transformation (containing shear and rotate). Get dest rect in pixels.
basegfx::B2DRange aOutlineRange(0.0, 0.0, 1.0, 1.0);
aOutlineRange.transform(rTransform);
+ const sal_uInt32 nDiscreteWidth(basegfx::fround(aOutlineRange.getMaxX()));
+ const sal_uInt32 nDiscreteHeight(basegfx::fround(aOutlineRange.getMaxY()));
const Rectangle aDestRectLogic(
- basegfx::fround(aOutlineRange.getMinX()), basegfx::fround(aOutlineRange.getMinY()),
- basegfx::fround(aOutlineRange.getMaxX()), basegfx::fround(aOutlineRange.getMaxY()));
+ basegfx::fround(aOutlineRange.getMinX()),
+ basegfx::fround(aOutlineRange.getMinY()),
+ nDiscreteWidth > 0 ? nDiscreteWidth - 1 : 0,
+ nDiscreteHeight > 0 ? nDiscreteHeight - 1 : 0);
const Rectangle aDestRectPixel(rOutDev.LogicToPixel(aDestRectLogic));
// #i96708# check if Metafile is recorded
@@ -161,18 +173,19 @@ namespace drawinglayer
if(!aCroppedRectPixel.IsEmpty())
{
- // as maximum for destination, orientate at SourceSizePixel, but
+ // as maximum for destination, orientate at aOutputRectPixel, but
// take a rotation of 45 degrees (sqrt(2)) as maximum expansion into account
const Size aSourceSizePixel(rBitmapEx.GetSizePixel());
const double fMaximumArea(
- (double)aSourceSizePixel.getWidth() *
- (double)aSourceSizePixel.getHeight() *
+ (double)aOutputRectPixel.getWidth() *
+ (double)aOutputRectPixel.getHeight() *
1.4142136); // 1.4142136 taken as sqrt(2.0)
// test if discrete view size (pixel) maybe too big and limit it
const double fArea(aCroppedRectPixel.getWidth() * aCroppedRectPixel.getHeight());
const bool bNeedToReduce(fArea > fMaximumArea);
double fReduceFactor(1.0);
+ const Size aDestSizePixel(aCroppedRectPixel.GetSize());
if(bNeedToReduce)
{
@@ -219,11 +232,6 @@ namespace drawinglayer
if(bNeedToReduce)
{
// paint in target size
- const double fFactor(1.0 / fReduceFactor);
- const Size aDestSizePixel(
- basegfx::fround(aCroppedRectPixel.getWidth() * fFactor),
- basegfx::fround(aCroppedRectPixel.getHeight() * fFactor));
-
if(bRecordToMetaFile)
{
rOutDev.DrawBitmapEx(
diff --git a/editeng/source/editeng/editattr.cxx b/editeng/source/editeng/editattr.cxx
index a1d4a66b8fb1..81e211988a09 100644
--- a/editeng/source/editeng/editattr.cxx
+++ b/editeng/source/editeng/editattr.cxx
@@ -266,10 +266,6 @@ EditCharAttribEscapement::EditCharAttribEscapement( const SvxEscapementItem& rAt
DBG_ASSERT( rAttr.Which() == EE_CHAR_ESCAPEMENT, "Kein Escapementattribut!" );
}
-#if defined( WIN ) && !defined( WNT )
-#pragma optimize ("", off)
-#endif
-
void EditCharAttribEscapement::SetFont( SvxFont& rFont, OutputDevice* )
{
USHORT nProp = ((const SvxEscapementItem*)GetItem())->GetProp();
@@ -283,11 +279,6 @@ void EditCharAttribEscapement::SetFont( SvxFont& rFont, OutputDevice* )
rFont.SetEscapement( nEsc );
}
-#if defined( WIN ) && !defined( WNT )
-#pragma optimize ("", on)
-#endif
-
-
// -------------------------------------------------------------------------
// class EditCharAttribOutline
// -------------------------------------------------------------------------
diff --git a/editeng/source/misc/txtrange.cxx b/editeng/source/misc/txtrange.cxx
index 2bc219e9b69c..61e4a5253ced 100644
--- a/editeng/source/misc/txtrange.cxx
+++ b/editeng/source/misc/txtrange.cxx
@@ -45,10 +45,6 @@
|*
*************************************************************************/
-#ifdef WIN
-#pragma optimize ( "", off )
-#endif
-
TextRanger::TextRanger( const basegfx::B2DPolyPolygon& rPolyPolygon, const basegfx::B2DPolyPolygon* pLinePolyPolygon,
USHORT nCacheSz, USHORT nLft, USHORT nRght, BOOL bSimpl, BOOL bInnr,
BOOL bVert ) :
@@ -97,10 +93,6 @@ TextRanger::TextRanger( const basegfx::B2DPolyPolygon& rPolyPolygon, const baseg
mpLinePolyPolygon = NULL;
}
-#ifdef WIN
-#pragma optimize ( "", on )
-#endif
-
/*************************************************************************
|*
|* TextRanger::~TextRanger()
diff --git a/fpicker/source/unx/gnome/SalGtkFilePicker.cxx b/fpicker/source/unx/gnome/SalGtkFilePicker.cxx
index c6b0acd6a33f..fdf4866daf24 100644
--- a/fpicker/source/unx/gnome/SalGtkFilePicker.cxx
+++ b/fpicker/source/unx/gnome/SalGtkFilePicker.cxx
@@ -33,13 +33,13 @@
//------------------------------------------------------------------------
#include <com/sun/star/lang/DisposedException.hpp>
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-#include <com/sun/star/container/XNameAccess.hpp>
#include <com/sun/star/ui/dialogs/ExecutableDialogResults.hpp>
#include <com/sun/star/ui/dialogs/ExtendedFilePickerElementIds.hpp>
#include <com/sun/star/ui/dialogs/CommonFilePickerElementIds.hpp>
#include <com/sun/star/ui/dialogs/ExtendedFilePickerElementIds.hpp>
#include <cppuhelper/interfacecontainer.h>
#include <osl/diagnose.h>
+#include <osl/process.h>
#include <com/sun/star/ui/dialogs/TemplateDescription.hpp>
#include <com/sun/star/ui/dialogs/ControlActions.hpp>
#include <com/sun/star/uno/Any.hxx>
@@ -126,41 +126,8 @@ void SalGtkFilePicker::InitialMapping()
gtk_widget_set_size_request (m_pPreview, -1, -1);
}
-static void lcl_setGTKLanguage(const uno::Reference<lang::XMultiServiceFactory>& xServiceMgr)
-{
- static bool bSet = false;
- if (bSet)
- return;
-
- OUString sUILocale;
- try
- {
- uno::Reference<lang::XMultiServiceFactory> xConfigMgr =
- uno::Reference<lang::XMultiServiceFactory>(xServiceMgr->createInstance(
- OUString::createFromAscii("com.sun.star.configuration.ConfigurationProvider")),
- UNO_QUERY_THROW );
-
- Sequence< Any > theArgs(1);
- theArgs[ 0 ] <<= OUString::createFromAscii("org.openoffice.Office.Linguistic/General");
-
- uno::Reference< container::XNameAccess > xNameAccess =
- uno::Reference< container::XNameAccess >(xConfigMgr->createInstanceWithArguments(
- OUString::createFromAscii("com.sun.star.configuration.ConfigurationAccess"), theArgs ),
- UNO_QUERY_THROW );
-
- if (xNameAccess.is())
- xNameAccess->getByName(OUString::createFromAscii("UILocale")) >>= sUILocale;
- } catch (...) {}
-
- if (sUILocale.getLength())
- {
- sUILocale = rtl::OUString::createFromAscii("LANGUAGE=") + sUILocale.replace('-', '_');
- putenv(strdup(rtl::OUStringToOString(sUILocale, osl_getThreadTextEncoding()).getStr()));
- }
- bSet = true;
-}
-
SalGtkFilePicker::SalGtkFilePicker( const uno::Reference<lang::XMultiServiceFactory>& xServiceMgr ) :
+ SalGtkPicker(xServiceMgr),
cppu::WeakComponentImplHelper10<
XFilterManager,
XFilterGroupManager,
@@ -184,8 +151,6 @@ SalGtkFilePicker::SalGtkFilePicker( const uno::Reference<lang::XMultiServiceFact
m_PreviewImageWidth( 256 ),
m_PreviewImageHeight( 256 )
{
- lcl_setGTKLanguage(xServiceMgr);
-
int i;
for( i = 0; i < TOGGLE_LAST; i++ )
@@ -935,6 +900,9 @@ uno::Sequence<rtl::OUString> SAL_CALL SalGtkFilePicker::getSelectedFiles() throw
{
static const OUString aStarDot = OUString::createFromAscii( "*." );
+ ::rtl::OUString aNewFilter;
+ ::rtl::OUString aOldFilter = getCurrentFilter();
+ sal_Bool bChangeFilter = sal_True;
for ( FilterList::iterator aListIter = m_pFilterList->begin();
aListIter != m_pFilterList->end();
++aListIter
@@ -942,11 +910,17 @@ uno::Sequence<rtl::OUString> SAL_CALL SalGtkFilePicker::getSelectedFiles() throw
{
if( aListIter->getFilter().indexOf( aStarDot+sExtension ) >= 0 )
{
- setCurrentFilter( aListIter->getTitle() );
+ if( !aNewFilter.getLength() )
+ aNewFilter = aListIter->getTitle();
+
+ if( aOldFilter == aListIter->getTitle() )
+ bChangeFilter = sal_False;
+
bExtensionTypedIn = true;
- break;
}
}
+ if( bChangeFilter )
+ setCurrentFilter( aNewFilter );
}
}
diff --git a/fpicker/source/unx/gnome/SalGtkFolderPicker.cxx b/fpicker/source/unx/gnome/SalGtkFolderPicker.cxx
index f9c78d76639c..dd5d30d203a6 100644
--- a/fpicker/source/unx/gnome/SalGtkFolderPicker.cxx
+++ b/fpicker/source/unx/gnome/SalGtkFolderPicker.cxx
@@ -84,7 +84,8 @@ namespace
// constructor
//-----------------------------------------------------------------------------------------
SalGtkFolderPicker::SalGtkFolderPicker( const uno::Reference<lang::XMultiServiceFactory>& xServiceMgr ) :
- m_xServiceMgr( xServiceMgr )
+ SalGtkPicker(xServiceMgr),
+ m_xServiceMgr(xServiceMgr)
{
CResourceProvider aResProvider;
diff --git a/fpicker/source/unx/gnome/SalGtkPicker.cxx b/fpicker/source/unx/gnome/SalGtkPicker.cxx
index 1a685e0981e6..6fd19b2f7f79 100644
--- a/fpicker/source/unx/gnome/SalGtkPicker.cxx
+++ b/fpicker/source/unx/gnome/SalGtkPicker.cxx
@@ -38,6 +38,7 @@
#include <com/sun/star/awt/XSystemDependentWindowPeer.hpp>
#include <com/sun/star/awt/SystemDependentXWindow.hpp>
#include <com/sun/star/beans/NamedValue.hpp>
+#include <com/sun/star/container/XNameAccess.hpp>
#include <comphelper/processfactory.hxx>
#include <cppuhelper/interfacecontainer.h>
#include <rtl/process.h>
@@ -202,6 +203,46 @@ gint RunDialog::run()
return nStatus;
}
+static void lcl_setGTKLanguage(const uno::Reference<lang::XMultiServiceFactory>& xServiceMgr)
+{
+ static bool bSet = false;
+ if (bSet)
+ return;
+
+ OUString sUILocale;
+ try
+ {
+ uno::Reference<lang::XMultiServiceFactory> xConfigMgr =
+ uno::Reference<lang::XMultiServiceFactory>(xServiceMgr->createInstance(
+ OUString::createFromAscii("com.sun.star.configuration.ConfigurationProvider")),
+ UNO_QUERY_THROW );
+
+ Sequence< Any > theArgs(1);
+ theArgs[ 0 ] <<= OUString::createFromAscii("org.openoffice.Office.Linguistic/General");
+
+ uno::Reference< container::XNameAccess > xNameAccess =
+ uno::Reference< container::XNameAccess >(xConfigMgr->createInstanceWithArguments(
+ OUString::createFromAscii("com.sun.star.configuration.ConfigurationAccess"), theArgs ),
+ UNO_QUERY_THROW );
+
+ if (xNameAccess.is())
+ xNameAccess->getByName(OUString::createFromAscii("UILocale")) >>= sUILocale;
+ } catch (...) {}
+
+ if (sUILocale.getLength())
+ {
+ sUILocale = sUILocale.replace('-', '_');
+ rtl::OUString envVar(RTL_CONSTASCII_USTRINGPARAM("LANGUAGE"));
+ osl_setEnvironment(envVar.pData, sUILocale.pData);
+ }
+ bSet = true;
+}
+
+SalGtkPicker::SalGtkPicker(const uno::Reference<lang::XMultiServiceFactory>& xServiceMgr) : m_pDialog(0)
+{
+ lcl_setGTKLanguage(xServiceMgr);
+}
+
SalGtkPicker::~SalGtkPicker()
{
if (m_pDialog)
diff --git a/fpicker/source/unx/gnome/SalGtkPicker.hxx b/fpicker/source/unx/gnome/SalGtkPicker.hxx
index 6349d3ed4988..94e7a11de99a 100644
--- a/fpicker/source/unx/gnome/SalGtkPicker.hxx
+++ b/fpicker/source/unx/gnome/SalGtkPicker.hxx
@@ -53,7 +53,7 @@
class SalGtkPicker
{
public:
- SalGtkPicker() : m_pDialog(0) {}
+ SalGtkPicker(const ::com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory>& xServiceMgr);
virtual ~SalGtkPicker();
protected:
osl::Mutex m_rbHelperMtx;
diff --git a/framework/inc/macros/debug/memorymeasure.hxx b/framework/inc/macros/debug/memorymeasure.hxx
index 06bd9305adeb..0c5be0d237c9 100644
--- a/framework/inc/macros/debug/memorymeasure.hxx
+++ b/framework/inc/macros/debug/memorymeasure.hxx
@@ -37,7 +37,7 @@
#ifdef ENABLE_MEMORYMEASURE
- #if !defined( WIN ) && !defined( WNT )
+ #if !defined( WNT )
#error "Macros to measure memory access not available under platforms different from windows!"
#endif
diff --git a/idl/source/cmptools/hash.cxx b/idl/source/cmptools/hash.cxx
index 0c7985e05ec3..4d5427f3875c 100644
--- a/idl/source/cmptools/hash.cxx
+++ b/idl/source/cmptools/hash.cxx
@@ -141,10 +141,6 @@ BOOL SvHashTable::Test_Insert( const void * pElement, BOOL bInsert,
SvStringHashTable::SvStringHashTable( UINT32 nMaxEntries )
: SvHashTable( nMaxEntries )
{
-#ifdef WIN
- DBG_ASSERT( (UINT32)nMaxEntries * sizeof( SvStringHashEntry ) <= 0xFF00,
- "Hash table size cannot exeed 64k byte" )
-#endif
pEntries = new SvStringHashEntry[ nMaxEntries ];
// RefCount auf eins setzen
diff --git a/idl/source/cmptools/lex.cxx b/idl/source/cmptools/lex.cxx
index 38b8d8260bb2..579c81a5ec16 100644
--- a/idl/source/cmptools/lex.cxx
+++ b/idl/source/cmptools/lex.cxx
@@ -146,11 +146,7 @@ SvToken & SvToken::operator = ( const SvToken & rObj )
*************************************************************************/
void SvTokenStream::InitCtor()
{
-#ifdef DOS
- SetCharSet( CHARSET_ANSI );
-#else
SetCharSet( gsl_getSystemTextEncoding() );
-#endif
aStrTrue = "TRUE";
aStrFalse = "FALSE";
nLine = nColumn = 0;
@@ -251,11 +247,7 @@ void SvTokenStream::SetCharSet( CharSet nSet )
{
nCharSet = nSet;
-#ifdef DOS
- pCharTab = SvChar::GetTable( nSet, CHARSET_ANSI );
-#else
pCharTab = SvChar::GetTable( nSet, gsl_getSystemTextEncoding() );
-#endif
}
/*************************************************************************
diff --git a/idl/source/prj/database.cxx b/idl/source/prj/database.cxx
index e8c5bf1f0470..06e7e2d7c69c 100644
--- a/idl/source/prj/database.cxx
+++ b/idl/source/prj/database.cxx
@@ -697,10 +697,8 @@ SvMetaClass * SvIdlDataBase::ReadKnownClass( SvTokenStream & rInStm )
*************************************************************************/
void SvIdlDataBase::Write( const ByteString & rText )
{
-#ifndef W31
if( nVerbosity != 0 )
fprintf( stdout, "%s", rText.GetBuffer() );
-#endif
}
/*************************************************************************
@@ -714,7 +712,6 @@ void SvIdlDataBase::WriteError( const ByteString & rErrWrn,
ULONG nRow, ULONG nColumn ) const
{
//Fehlerbehandlung
-#ifndef W31
fprintf( stderr, "\n%s --- %s: ( %ld, %ld )\n",
rFileName.GetBuffer(), rErrWrn.GetBuffer(), nRow, nColumn );
@@ -722,7 +719,6 @@ void SvIdlDataBase::WriteError( const ByteString & rErrWrn,
{ // Fehler gesetzt
fprintf( stderr, "\t%s\n", rErrorText.GetBuffer() );
}
-#endif
}
/*************************************************************************
@@ -733,7 +729,6 @@ void SvIdlDataBase::WriteError( const ByteString & rErrWrn,
void SvIdlDataBase::WriteError( SvTokenStream & rInStm )
{
//Fehlerbehandlung
-#ifndef W31
String aFileName( rInStm.GetFileName() );
ByteString aErrorText;
ULONG nRow = 0, nColumn = 0;
@@ -793,7 +788,6 @@ void SvIdlDataBase::WriteError( SvTokenStream & rInStm )
if( aN.Len() )
fprintf( stderr, "%s versus %s\n", pTok->GetString().GetBuffer(), aN.GetBuffer() );
}
-#endif
}
/****************** SvIdlWorkingBase ****************************************/
diff --git a/idl/source/prj/globals.cxx b/idl/source/prj/globals.cxx
index 83a730e404ad..4956cc9392a0 100644
--- a/idl/source/prj/globals.cxx
+++ b/idl/source/prj/globals.cxx
@@ -35,15 +35,6 @@
#include <database.hxx>
/****************** G L O B A L S ****************************************/
-#ifdef DOS
-static IdlDll * pApp = NULL;
-IdlDll * GetIdlApp()
-{
- if( !pApp )
- pApp = new IdlDll();
- return pApp;
-}
-#else
IdlDll * GetIdlApp()
{
if( !(*(IdlDll**)GetAppData(SHL_IDL)) )
@@ -55,7 +46,6 @@ IdlDll * GetIdlApp()
}
return (*(IdlDll**)GetAppData(SHL_IDL));
}
-#endif
IdlDll::IdlDll()
: pHashTable( NULL )
diff --git a/idl/source/prj/idldll.cxx b/idl/source/prj/idldll.cxx
deleted file mode 100644
index 607cc91e1bf6..000000000000
--- a/idl/source/prj/idldll.cxx
+++ /dev/null
@@ -1,79 +0,0 @@
-/*************************************************************************
- *
- * 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_idl.hxx"
-
-#ifdef WIN
-#include <svwin.h>
-
-#ifndef _SYSDEP_HXX
-#include <sysdep.hxx>
-#endif
-
-// Statische DLL-Verwaltungs-Variablen
-static HINSTANCE hDLLInst = 0; // HANDLE der DLL
-
-
-/***************************************************************************
-|*
-|* LibMain()
-|*
-|* Beschreibung Initialisierungsfunktion der DLL
-|* Ersterstellung TH 05.05.93
-|* Letzte Aenderung TH 05.05.93
-|*
-***************************************************************************/
-
-extern "C" int CALLBACK LibMain( HINSTANCE hDLL, WORD, WORD nHeap, LPSTR )
-{
-#ifndef WNT
- if ( nHeap )
- UnlockData( 0 );
-#endif
-
- hDLLInst = hDLL;
-
- return TRUE;
-}
-
-/***************************************************************************
-|*
-|* WEP()
-|*
-|* Beschreibung DLL-Deinitialisierung
-|* Ersterstellung TH 05.05.93
-|* Letzte Aenderung TH 05.05.93
-|*
-***************************************************************************/
-
-extern "C" int CALLBACK WEP( int )
-{
- return 1;
-}
-
-#endif
diff --git a/idl/source/prj/makefile.mk b/idl/source/prj/makefile.mk
index 3e0a55a7fd05..c33d2e9f3d7a 100644
--- a/idl/source/prj/makefile.mk
+++ b/idl/source/prj/makefile.mk
@@ -41,7 +41,6 @@ CDEFS+=-DIDL_COMPILER
OBJFILES= $(OBJ)$/command.obj \
$(OBJ)$/svidl.obj \
$(OBJ)$/globals.obj \
- $(OBJ)$/idldll.obj \
$(OBJ)$/database.obj
# --- Targets ------------------------------------------------------------
diff --git a/officecfg/registry/data/org/openoffice/Office/Paths.xcu b/officecfg/registry/data/org/openoffice/Office/Paths.xcu
index 91a26137b24d..37eebe5c2a22 100644
--- a/officecfg/registry/data/org/openoffice/Office/Paths.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/Paths.xcu
@@ -169,7 +169,8 @@
<node oor:name="Fingerprint" oor:op="fuse" oor:mandatory="true">
<node oor:name="InternalPaths">
- <node oor:name="$(insturl)/share/fingerprint" oor:op="fuse" />
+ <node install:module="internallibtextcatdata" oor:name="$(insturl)/share/fingerprint" oor:op="fuse"/>
+ <node install:module="externallibtextcatdata" oor:name="${SYSTEM_LIBTEXTCAT_DATA}" oor:op="fuse"/>
</node>
</node>
diff --git a/officecfg/registry/data/org/openoffice/Office/makefile.mk b/officecfg/registry/data/org/openoffice/Office/makefile.mk
index e65b03371da3..2af1e8629bd9 100644
--- a/officecfg/registry/data/org/openoffice/Office/makefile.mk
+++ b/officecfg/registry/data/org/openoffice/Office/makefile.mk
@@ -87,6 +87,8 @@ MODULEFILES= \
Paths-macosx.xcu \
Paths-unxwnt.xcu \
Paths-unixdesktop.xcu \
+ Paths-internallibtextcatdata.xcu \
+ Paths-externallibtextcatdata.xcu \
Writer-cjk.xcu \
Impress-ogltrans.xcu \
Embedding-calc.xcu \
diff --git a/officecfg/registry/schema/org/openoffice/Office/Common.xcs b/officecfg/registry/schema/org/openoffice/Office/Common.xcs
index 02e05a932952..9bc07c592f0f 100644
--- a/officecfg/registry/schema/org/openoffice/Office/Common.xcs
+++ b/officecfg/registry/schema/org/openoffice/Office/Common.xcs
@@ -4368,69 +4368,133 @@
<info>
<desc>Specifies default settings of graphic export dialogs.</desc>
</info>
- <group oor:name="BMP">
+ <prop oor:name="PixelExportUnit" oor:type="xs:int">
+ <info>
+ <desc>Specifies the unit default that is used in the the graphic export dialog if exporting pixel graphics.</desc>
+ </info>
+ <constraints>
+ <enumeration oor:value="0">
+ <info>
+ <desc>inches</desc>
+ </info>
+ </enumeration>
+ <enumeration oor:value="1">
+ <info>
+ <desc>cm</desc>
+ </info>
+ </enumeration>
+ <enumeration oor:value="2">
+ <info>
+ <desc>mm</desc>
+ </info>
+ </enumeration>
+ <enumeration oor:value="3">
+ <info>
+ <desc>points</desc>
+ </info>
+ </enumeration>
+ <enumeration oor:value="4">
+ <info>
+ <desc>pica</desc>
+ </info>
+ </enumeration>
+ <enumeration oor:value="5">
+ <info>
+ <desc>pixels</desc>
+ </info>
+ </enumeration>
+ <enumeration oor:value="-1">
+ <info>
+ <desc>default (depends to the metric settings in tools/options)</desc>
+ </info>
+ </enumeration>
+ </constraints>
+ <value>-1</value>
+ </prop>
+ <prop oor:name="PixelExportResolutionUnit" oor:type="xs:int">
+ <info>
+ <desc>Specifies the unit default for the resolution that is used in the the graphic export dialog if exporting pixel graphics.</desc>
+ </info>
+ <constraints>
+ <enumeration oor:value="0">
+ <info>
+ <desc>pixels/inch</desc>
+ </info>
+ </enumeration>
+ <enumeration oor:value="1">
+ <info>
+ <desc>pixels/cm</desc>
+ </info>
+ </enumeration>
+ <enumeration oor:value="2">
+ <info>
+ <desc>pixels/meter</desc>
+ </info>
+ </enumeration>
+ </constraints>
+ <value>0</value>
+ </prop>
+ <prop oor:name="PixelExportResolution" oor:type="xs:int">
+ <info>
+ <desc>Specifies the logical width of a graphic. [UNIT=1/100 mm].</desc>
+ </info>
+ <constraints>
+ <minInclusive oor:value="1">
+ <info>
+ <desc>Represents the lowest value that can be entered in the dialog.</desc>
+ </info>
+ </minInclusive>
+ </constraints>
+ <value>96</value>
+ </prop>
+ <prop oor:name="MaxFilesizeForRealtimePreview" oor:type="xs:int">
+ <info>
+ <desc>Specifies the maximum raw graphic size in bytes up to which the realtime preview is enabled, for fast computers this value may be enlarged</desc>
+ </info>
+ <value>4000000</value>
+ </prop>
+ <prop oor:name="VectorExportUnit" oor:type="xs:int">
+ <info>
+ <desc>Specifies the unit default that is used in the the graphic export dialog if exporting vector graphics.</desc>
+ </info>
+ <constraints>
+ <enumeration oor:value="0">
+ <info>
+ <desc>inches</desc>
+ </info>
+ </enumeration>
+ <enumeration oor:value="1">
+ <info>
+ <desc>cm</desc>
+ </info>
+ </enumeration>
+ <enumeration oor:value="2">
+ <info>
+ <desc>mm</desc>
+ </info>
+ </enumeration>
+ <enumeration oor:value="3">
+ <info>
+ <desc>points</desc>
+ </info>
+ </enumeration>
+ <enumeration oor:value="4">
+ <info>
+ <desc>pica</desc>
+ </info>
+ </enumeration>
+ <enumeration oor:value="-1">
+ <info>
+ <desc>default (depends to the metric settings in tools/options)</desc>
+ </info>
+ </enumeration>
+ </constraints>
+ <value>-1</value>
+ </prop>
+ <group oor:name="BMP">
<info>
<desc>Specifies default settings of the Windows Bitmap export dialog.</desc>
</info>
- <prop oor:name="ExportMode" oor:type="xs:int">
- <!-- OldPath: BMP-EXPORT-MODE -->
- <!-- OldLocation: fltopt.ini -->
- <!-- UIHints: File Export Filetype BMP-MS Windows - [dialog] BMP Options -->
- <info>
- <desc>Specifies usable export modes.</desc>
- <label>Mode - Original / Resolution / Size</label>
- </info>
- <constraints>
- <enumeration oor:value="0">
- <info>
- <desc>Original size</desc>
- </info>
- </enumeration>
- <enumeration oor:value="1">
- <info>
- <desc>Logical size (dpi/pixel ratio)</desc>
- </info>
- </enumeration>
- <enumeration oor:value="2">
- <info>
- <desc>Given size</desc>
- </info>
- </enumeration>
- </constraints>
- <value>0</value>
- </prop>
- <prop oor:name="Resolution" oor:type="xs:int">
- <!-- OldPath: BMP-EXPORT-RES -->
- <!-- OldLocation: fltopt.ini -->
- <!-- UIHints: File Export Filetype BMP-MS Windows - [dialog] BMP Options -->
- <info>
- <desc>Specifies resolution which is to be used if export mode is 1. [UNIT=dpi]</desc>
- <label>Resolution</label>
- </info>
- <constraints>
- <enumeration oor:value="75">
- <info>
- <desc>75</desc>
- </info>
- </enumeration>
- <enumeration oor:value="150">
- <info>
- <desc>150</desc>
- </info>
- </enumeration>
- <enumeration oor:value="300">
- <info>
- <desc>300</desc>
- </info>
- </enumeration>
- <enumeration oor:value="600">
- <info>
- <desc>600</desc>
- </info>
- </enumeration>
- </constraints>
- <value>75</value>
- </prop>
<prop oor:name="Color" oor:type="xs:int">
<!-- OldLocation: fltopt.ini -->
<!-- UIHints: File Export Filetype BMP-MS Windows - [dialog] BMP Options -->
@@ -4492,13 +4556,6 @@
</info>
<value>true</value>
</prop>
- <node-ref oor:name="Size" oor:node-type="LogicalGraphicSize">
- <info>
- <desc>Specifies the logical size of a graphic. [UNIT=1/100 mm].</desc>
- </info>
- <!-- OldLocation: fltopt.ini -->
- <!-- UIHints: File Export Filetype BMP-MS Windows - [dialog] BMP Options -->
- </node-ref>
</group>
<group oor:name="EPS">
<!-- OldLocation: fltopt.ini -->
@@ -4706,72 +4763,6 @@
<value>0</value>
</prop>
</group>
- <group oor:name="MET">
- <info>
- <desc>Specifies if graphics are exported with the original- or selected size.</desc>
- </info>
- <prop oor:name="ExportMode" oor:type="xs:int">
- <!-- OldPath: MET-EXPORT-MODE -->
- <!-- OldLocation: fltopt.ini -->
- <!-- UIHints: File Export Filetype MET-OS/2 Metafile -->
- <info>
- <desc>Specifies if graphics are exported with the original- or selected size.</desc>
- </info>
- <constraints>
- <enumeration oor:value="0">
- <info>
- <desc>Original size</desc>
- </info>
- </enumeration>
- <enumeration oor:value="1">
- <info>
- <desc>Given size</desc>
- </info>
- </enumeration>
- </constraints>
- <value>0</value>
- </prop>
- <node-ref oor:name="Size" oor:node-type="LogicalGraphicSize">
- <info>
- <desc>Specifies the logical size of a graphic. [UNIT=1/100 mm].</desc>
- </info>
- <!-- OldLocation: fltopt.ini -->
- <!-- UIHints: File Export Filetype MET-MS Windows - [dialog] MET Options -->
- </node-ref>
- </group>
- <group oor:name="PCT">
- <info>
- <desc>Specifies default settings of the PCT - Mac Pict export dialog.</desc>
- </info>
- <prop oor:name="ExportMode" oor:type="xs:int">
- <!-- OldPath: PCT-EXPORT-MODE -->
- <!-- OldLocation: fltopt.ini -->
- <!-- UIHints: File Export Filetype PCT-Mac Pict -->
- <info>
- <desc>Specifies if graphics are exported with original- or selected size.</desc>
- </info>
- <constraints>
- <enumeration oor:value="0">
- <info>
- <desc>Original size</desc>
- </info>
- </enumeration>
- <enumeration oor:value="1">
- <info>
- <desc>Given size</desc>
- </info>
- </enumeration>
- </constraints>
- <value>0</value>
- </prop>
- <node-ref oor:name="Size" oor:node-type="LogicalGraphicSize">
- <info>
- <desc>Specifies the logical size of a graphic. [UNIT=1/100 mm].</desc>
- </info>
- <!-- OldLocation: fltopt.ini -->
- <!-- UIHints: File Export Filetype PCT-MS Windows - [dialog] PCT Options -->
- </node-ref>
- </group>
<group oor:name="PBM">
<info>
<desc>Specifies default settings of the PBM - Portable Bitmap export dialog.</desc>
@@ -4850,105 +4841,6 @@
<value>1</value>
</prop>
</group>
- <group oor:name="SVM">
- <info>
- <desc>Specifies default settings of the SVM - StarView Meta File export dialog.</desc>
- </info>
- <prop oor:name="ExportMode" oor:type="xs:int">
- <!-- OldPath: SVM-EXPORT-MODE -->
- <!-- OldLocation: fltopt.ini -->
- <!-- UIHints: File Export Filetype SVM - StarView Metafile -->
- <info>
- <desc>Specifies if graphics should be exported with the original- or selected size.</desc>
- </info>
- <constraints>
- <enumeration oor:value="0">
- <info>
- <desc>Original size</desc>
- </info>
- </enumeration>
- <enumeration oor:value="1">
- <info>
- <desc>Given size</desc>
- </info>
- </enumeration>
- </constraints>
- <value>0</value>
- </prop>
- <node-ref oor:name="Size" oor:node-type="LogicalGraphicSize">
- <info>
- <desc>Specifies the logical size of a graphic. [UNIT=1/100 mm].</desc>
- </info>
- <!-- OldLocation: fltopt.ini -->
- <!-- UIHints: File Export Filetype SVM - StarView Metafile - [dialog] SVM Options -->
- </node-ref>
- </group>
- <group oor:name="WMF">
- <info>
- <desc>Specifies default settings of the WMF - Windows Metafile export dialog.</desc>
- </info>
- <prop oor:name="ExportMode" oor:type="xs:int">
- <!-- OldPath: WMF-EXPORT-MODE -->
- <!-- OldLocation: fltopt.ini -->
- <!-- UIHints: File Export Filetype WMF -MS Windows Metafile -->
- <info>
- <desc>Specifies if graphics should be exported with the original- or selected size.</desc>
- </info>
- <constraints>
- <enumeration oor:value="0">
- <info>
- <desc>Original size</desc>
- </info>
- </enumeration>
- <enumeration oor:value="1">
- <info>
- <desc>Given size</desc>
- </info>
- </enumeration>
- </constraints>
- <value>0</value>
- </prop>
- <node-ref oor:name="Size" oor:node-type="LogicalGraphicSize">
- <info>
- <desc>Specifies the logical size of a graphic. [UNIT=1/100 mm].</desc>
- </info>
- <!-- OldLocation: fltopt.ini -->
- <!-- UIHints: File Export Filetype WMF - MS Windows Metafile - [dialog] WMF Options -->
- </node-ref>
- </group>
- <group oor:name="EMF">
- <info>
- <desc>Specifies default settings of the EMF - Enhanced Metafile export dialog.</desc>
- </info>
- <prop oor:name="ExportMode" oor:type="xs:int">
- <!-- OldPath: EMF-EXPORT-MODE -->
- <!-- OldLocation: fltopt.ini -->
- <!-- UIHints: File - Export -->
- <info>
- <desc>Specifies if graphics should be exported with the original- or selected size.</desc>
- </info>
- <constraints>
- <enumeration oor:value="0">
- <info>
- <desc>Original size</desc>
- </info>
- </enumeration>
- <enumeration oor:value="1">
- <info>
- <desc>Given size</desc>
- </info>
- </enumeration>
- </constraints>
- <value>0</value>
- </prop>
- <node-ref oor:name="Size" oor:node-type="LogicalGraphicSize">
- <info>
- <desc>Specifies the logical size of a graphic. [UNIT=1/100 mm].</desc>
- </info>
- <!-- OldLocation: fltopt.ini -->
- <!-- UIHints: File Export Filetype EMF - Enhanced Metafile - [dialog] EMF Options -->
- </node-ref>
- </group>
<group oor:name="PNG">
<info>
<desc>Specifies default settings of the PNG - Portable Network Graphic export dialog.</desc>
diff --git a/sfx2/inc/sfx2/docfile.hxx b/sfx2/inc/sfx2/docfile.hxx
index 24885fc27363..0cb57e7a414d 100644
--- a/sfx2/inc/sfx2/docfile.hxx
+++ b/sfx2/inc/sfx2/docfile.hxx
@@ -62,7 +62,6 @@ class Timer;
class SfxItemSet;
class DateTime;
class SvStringsDtor;
-class SvEaMgr;
#define S2BS(s) ByteString( s, RTL_TEXTENCODING_MS_1252 )
@@ -208,8 +207,6 @@ public:
SvStream* GetInStream();
SvStream* GetOutStream();
- SvEaMgr* GetEaMgr();
-
sal_Bool Commit();
sal_Bool IsStorage();
diff --git a/sfx2/inc/sfx2/titledockwin.hxx b/sfx2/inc/sfx2/titledockwin.hxx
index ebb4497a0ba2..2728cc621138 100644
--- a/sfx2/inc/sfx2/titledockwin.hxx
+++ b/sfx2/inc/sfx2/titledockwin.hxx
@@ -100,6 +100,11 @@ namespace sfx2
ToolBox& GetToolBox() { return m_aToolbox; }
const ToolBox& GetToolBox() const { return m_aToolbox; }
+ /** Return the border that is painted around the inner window as
+ decoration.
+ */
+ SvBorder GetDecorationBorder (void) const { return m_aBorder; }
+
protected:
// Window overridables
virtual void Paint( const Rectangle& i_rArea );
@@ -153,6 +158,11 @@ namespace sfx2
since the last Paint().
*/
bool m_bLayoutPending;
+
+ /** Height of the title bar. Calculated in impl_layout().
+ */
+ int m_nTitleBarHeight;
+
};
//......................................................................................................................
diff --git a/sfx2/qa/cppunit/makefile.mk b/sfx2/qa/cppunit/makefile.mk
index 2794c2ae92bb..dce0b86a0619 100644
--- a/sfx2/qa/cppunit/makefile.mk
+++ b/sfx2/qa/cppunit/makefile.mk
@@ -35,6 +35,13 @@ ENABLE_EXCEPTIONS=TRUE
.INCLUDE : settings.mk
+#building with stlport, but cppunit was not built with stlport
+.IF "$(USE_SYSTEM_STL)"!="YES"
+.IF "$(SYSTEM_CPPUNIT)"=="YES"
+CFLAGSCXX+=-DADAPT_EXT_STL
+.ENDIF
+.ENDIF
+
CFLAGSCXX += $(CPPUNIT_CFLAGS)
DLLPRE = # no leading "lib" on .so files
diff --git a/sfx2/qa/cppunit/test_metadatable.cxx b/sfx2/qa/cppunit/test_metadatable.cxx
index 903be6920327..6a0be13a9c53 100644
--- a/sfx2/qa/cppunit/test_metadatable.cxx
+++ b/sfx2/qa/cppunit/test_metadatable.cxx
@@ -27,10 +27,12 @@
#include "precompiled_sfx2.hxx"
+#include "preextstl.h"
#include <cppunit/TestAssert.h>
#include <cppunit/TestFixture.h>
#include <cppunit/extensions/HelperMacros.h>
#include <cppunit/plugin/TestPlugIn.h>
+#include "postextstl.h"
#include <rtl/ustrbuf.hxx>
diff --git a/sfx2/source/appl/app.cxx b/sfx2/source/appl/app.cxx
index 6e13894feb49..7e4e9921573a 100644
--- a/sfx2/source/appl/app.cxx
+++ b/sfx2/source/appl/app.cxx
@@ -129,7 +129,7 @@
#include <sfx2/mnuitem.hxx>
#endif
-#if defined( WIN ) || defined( WNT ) || defined( OS2 )
+#if defined( WNT ) || defined( OS2 )
#define DDE_AVAILABLE
#endif
diff --git a/sfx2/source/appl/appquit.cxx b/sfx2/source/appl/appquit.cxx
index d615d90ff37a..7399742d1e94 100644
--- a/sfx2/source/appl/appquit.cxx
+++ b/sfx2/source/appl/appquit.cxx
@@ -30,9 +30,6 @@
#include <basic/basmgr.hxx>
#include <basic/sbstar.hxx>
-#ifdef WIN
-#define _TL_LANG_SPECIAL
-#endif
#include <svl/svdde.hxx>
#ifndef _MSGBOX_HXX //autogen
#include <vcl/msgbox.hxx>
diff --git a/sfx2/source/appl/impldde.cxx b/sfx2/source/appl/impldde.cxx
index 10e3c9b1a04a..20b7abb5d087 100644
--- a/sfx2/source/appl/impldde.cxx
+++ b/sfx2/source/appl/impldde.cxx
@@ -28,7 +28,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_sfx2.hxx"
-#if defined(WIN) || defined(WNT)
+#if defined(WNT)
#include <tools/svwin.h>
#endif
@@ -211,7 +211,7 @@ BOOL SvDDEObject::GetData( ::com::sun::star::uno::Any & rData /*out param*/,
BOOL SvDDEObject::Connect( SvBaseLink * pSvLink )
{
-#if defined(WIN) || defined(WNT)
+#if defined(WNT)
static BOOL bInWinExec = FALSE;
#endif
USHORT nLinkType = pSvLink->GetUpdateMode();
@@ -258,7 +258,7 @@ BOOL SvDDEObject::Connect( SvBaseLink * pSvLink )
// ansonsten unter Win/WinNT die Applikation direkt starten
}
-#if defined(WIN) || defined(WNT)
+#if defined(WNT)
// Server nicht da, starten und nochmal versuchen
if( !bInWinExec )
@@ -291,7 +291,7 @@ BOOL SvDDEObject::Connect( SvBaseLink * pSvLink )
}
}
else
-#endif // WIN / WNT
+#endif // WNT
{
nError = DDELINK_ERROR_APP;
}
diff --git a/sfx2/source/appl/makefile.mk b/sfx2/source/appl/makefile.mk
index 72ac94a9b38e..30f74355077a 100644
--- a/sfx2/source/appl/makefile.mk
+++ b/sfx2/source/appl/makefile.mk
@@ -101,7 +101,6 @@ SFX_OBJECTS = \
$(SLO)$/module.obj \
$(SLO)$/newhelp.obj \
$(SLO)$/opengrf.obj \
- $(SLO)$/sfxdll.obj \
$(SLO)$/sfxhelp.obj \
$(SLO)$/sfxpicklist.obj \
$(SLO)$/shutdownicon.obj \
diff --git a/sfx2/source/dialog/dinfdlg.cxx b/sfx2/source/dialog/dinfdlg.cxx
index 0ad62ae1eec1..3d848d4d5648 100755..100644
--- a/sfx2/source/dialog/dinfdlg.cxx
+++ b/sfx2/source/dialog/dinfdlg.cxx
@@ -1525,19 +1525,6 @@ SfxDocumentInfoDialog::SfxDocumentInfoDialog( Window* pParent,
{
// Dateiname
String aFile( pInfoItem->GetValue() );
-#ifdef WIN
- if ( aFile.Len() <= 8 )
- {
- String sTmp( SfxResId( STR_NONAME ) );
- USHORT nLen = Min( (USHORT)8, sTmp.Len() );
-
- if ( sTmp.Copy( 0, nLen ).Lower() ==
- aFile.Copy( 0, nLen ).Lower() )
- {
- aFile = pInfoItem->GetValue();
- }
- }
-#endif
INetURLObject aURL;
aURL.SetSmartProtocol( INET_PROT_FILE );
diff --git a/sfx2/source/dialog/filedlghelper.cxx b/sfx2/source/dialog/filedlghelper.cxx
index b0890a3ee781..7198c84b7127 100644
--- a/sfx2/source/dialog/filedlghelper.cxx
+++ b/sfx2/source/dialog/filedlghelper.cxx
@@ -1954,7 +1954,7 @@ void FileDialogHelper_Impl::addGraphicFilter()
}
}
-#if defined(WIN) || defined(WNT)
+#if defined(WNT)
if ( aExtensions.Len() > 240 )
aExtensions = DEFINE_CONST_UNICODE( FILEDIALOG_FILTER_ALL );
#endif
@@ -2748,7 +2748,7 @@ void FileDialogHelper::SetDisplayDirectory( const String& _rPath )
if ( sFolder.getLength() == 0 )
{
// _rPath is not a valid path -> fallback to home directory
- NAMESPACE_VOS( OSecurity ) aSecurity;
+ vos:: OSecurity aSecurity;
aSecurity.getHomeDir( sFolder );
}
mpImp->displayFolder( sFolder );
diff --git a/sfx2/source/dialog/titledockwin.cxx b/sfx2/source/dialog/titledockwin.cxx
index 58a61d66ba8b..4be0948d8047 100644
--- a/sfx2/source/dialog/titledockwin.cxx
+++ b/sfx2/source/dialog/titledockwin.cxx
@@ -51,6 +51,7 @@ namespace sfx2
,m_aContentWindow( this, WB_DIALOGCONTROL )
,m_aBorder( 3, 1, 3, 3 )
,m_bLayoutPending( false )
+ ,m_nTitleBarHeight(0)
{
impl_construct();
}
@@ -139,23 +140,23 @@ namespace sfx2
Size aWindowSize( GetOutputSizePixel() );
// position the tool box
- int nTitleBarHeight( GetSettings().GetStyleSettings().GetTitleHeight() );
- if ( aToolBoxSize.Height() > nTitleBarHeight )
- nTitleBarHeight = aToolBoxSize.Height();
+ m_nTitleBarHeight = GetSettings().GetStyleSettings().GetTitleHeight();
+ if ( aToolBoxSize.Height() > m_nTitleBarHeight )
+ m_nTitleBarHeight = aToolBoxSize.Height();
m_aToolbox.SetPosSizePixel(
Point(
aWindowSize.Width() - aToolBoxSize.Width(),
- ( nTitleBarHeight - aToolBoxSize.Height() ) / 2
+ ( m_nTitleBarHeight - aToolBoxSize.Height() ) / 2
),
aToolBoxSize
);
// Place the content window.
- if ( nTitleBarHeight < aToolBoxSize.Height() )
- nTitleBarHeight = aToolBoxSize.Height();
- aWindowSize.Height() -= nTitleBarHeight;
+ if ( m_nTitleBarHeight < aToolBoxSize.Height() )
+ m_nTitleBarHeight = aToolBoxSize.Height();
+ aWindowSize.Height() -= m_nTitleBarHeight;
m_aContentWindow.SetPosSizePixel(
- Point( m_aBorder.Left(), nTitleBarHeight + m_aBorder.Top() ),
+ Point( m_aBorder.Left(), m_nTitleBarHeight + m_aBorder.Top() ),
Size(
aWindowSize.Width() - m_aBorder.Left() - m_aBorder.Right(),
aWindowSize.Height() - m_aBorder.Top() - m_aBorder.Bottom()
@@ -175,11 +176,6 @@ namespace sfx2
Push( PUSH_FONT | PUSH_FILLCOLOR | PUSH_LINECOLOR );
- int nTitleBarHeight( GetSettings().GetStyleSettings().GetTitleHeight() );
- const Size aToolBoxSize = m_aToolbox.CalcWindowSizePixel();
- if ( aToolBoxSize.Height() > nTitleBarHeight )
- nTitleBarHeight = aToolBoxSize.Height();
-
SetFillColor( GetSettings().GetStyleSettings().GetDialogColor() );
SetLineColor();
@@ -194,7 +190,7 @@ namespace sfx2
int nInnerLeft = nOuterLeft + m_aBorder.Left() - 1;
int nOuterRight = aWindowSize.Width() - 1;
int nInnerRight = nOuterRight - m_aBorder.Right() + 1;
- int nInnerTop = nTitleBarHeight + m_aBorder.Top() - 1;
+ int nInnerTop = m_nTitleBarHeight + m_aBorder.Top() - 1;
int nOuterBottom = aWindowSize.Height() - 1;
int nInnerBottom = nOuterBottom - m_aBorder.Bottom() + 1;
diff --git a/sfx2/source/doc/objmisc.cxx b/sfx2/source/doc/objmisc.cxx
index e386b2382acf..e386b2382acf 100755..100644
--- a/sfx2/source/doc/objmisc.cxx
+++ b/sfx2/source/doc/objmisc.cxx
diff --git a/sfx2/source/view/viewfrm.cxx b/sfx2/source/view/viewfrm.cxx
index 72e3737057c1..6222721d9b83 100644
--- a/sfx2/source/view/viewfrm.cxx
+++ b/sfx2/source/view/viewfrm.cxx
@@ -1184,10 +1184,6 @@ void SfxViewFrame::DoActivate( sal_Bool bUI, SfxViewFrame* pOldFrame )
DBG_CHKTHIS(SfxViewFrame, 0);
SFX_APP();
-#ifdef WIN
- pSfxApp->TestFreeResources_Impl();
-#endif
-
pDispatcher->DoActivate_Impl( bUI, pOldFrame );
// Wenn ich einen parent habe und dieser ist kein parent des alten
@@ -1252,9 +1248,6 @@ void SfxViewFrame::DoDeactivate(sal_Bool bUI, SfxViewFrame* pNewFrame )
pFrame = pFrame->GetParentViewFrame();
}
}
-#ifdef WIN
- pSfxApp->TestFreeResources_Impl();
-#endif
}
//------------------------------------------------------------------------
diff --git a/shell/inc/internal/utilities.hxx b/shell/inc/internal/utilities.hxx
index 4701a2682446..c67787c5cb9d 100755
--- a/shell/inc/internal/utilities.hxx
+++ b/shell/inc/internal/utilities.hxx
@@ -84,6 +84,12 @@ bool HasOnlySpaces(const std::wstring& String);
Windows Locale Identifier corresponding to input LocaleSet.
*/
+//---------------------------------
+/** Convert a long path name using Windows api call GetShortPathName
+*/
+std::wstring getShortPathName( const std::wstring& aLongName );
+
+
#ifndef OS2
LCID LocaleSetToLCID( const LocaleSet_t & Locale );
#endif
diff --git a/shell/source/win32/shlxthandler/columninfo/columninfo.cxx b/shell/source/win32/shlxthandler/columninfo/columninfo.cxx
index f8816668f8ab..ab6c8bae2922 100644..100755
--- a/shell/source/win32/shlxthandler/columninfo/columninfo.cxx
+++ b/shell/source/win32/shlxthandler/columninfo/columninfo.cxx
@@ -152,14 +152,15 @@ HRESULT STDMETHODCALLTYPE CColumnInfo::GetColumnInfo(DWORD dwIndex, SHCOLUMNINFO
//
//-----------------------------
- HRESULT STDMETHODCALLTYPE CColumnInfo::GetItemData(LPCSHCOLUMNID pscid, LPCSHCOLUMNDATA pscd, VARIANT *pvarData)
+HRESULT STDMETHODCALLTYPE CColumnInfo::GetItemData(LPCSHCOLUMNID pscid, LPCSHCOLUMNDATA pscd, VARIANT *pvarData)
{
if (IsOOFileExtension(pscd->pwszExt))
{
try
{
+ std::wstring fname = getShortPathName( std::wstring( pscd->wszFile ) );
- CMetaInfoReader meta_info_accessor(WStringToString(pscd->wszFile));
+ CMetaInfoReader meta_info_accessor(WStringToString(fname));
VariantClear(pvarData);
diff --git a/shell/source/win32/shlxthandler/infotips/infotips.cxx b/shell/source/win32/shlxthandler/infotips/infotips.cxx
index 72da8c9e7060..c6bf925ac6a9 100644..100755
--- a/shell/source/win32/shlxthandler/infotips/infotips.cxx
+++ b/shell/source/win32/shlxthandler/infotips/infotips.cxx
@@ -353,6 +353,8 @@ HRESULT STDMETHODCALLTYPE CInfoTip::Load(LPCOLESTR pszFileName, DWORD /*dwMode*/
m_FileNameOnly = std::wstring(begin, end);
+ fname = getShortPathName( fname );
+
std::string fnameA = WStringToString(fname);
// #115531#
diff --git a/shell/source/win32/shlxthandler/ooofilt/ooofilt.cxx b/shell/source/win32/shlxthandler/ooofilt/ooofilt.cxx
index adcf2b2f8ddf..30151fc5dd75 100755
--- a/shell/source/win32/shlxthandler/ooofilt/ooofilt.cxx
+++ b/shell/source/win32/shlxthandler/ooofilt/ooofilt.cxx
@@ -657,7 +657,8 @@ SCODE STDMETHODCALLTYPE COooFilter::IsDirty()
SCODE STDMETHODCALLTYPE COooFilter::Load(LPCWSTR pszFileName, DWORD /*dwMode*/)
{
// Load just sets the filename for GetChunk to read and ignores the mode
- m_pwszFileName = pszFileName;
+ m_pwszFileName = getShortPathName( pszFileName );
+
// Open the file previously specified in call to IPersistFile::Load and get content.
try
{
diff --git a/shell/source/win32/shlxthandler/prophdl/propertyhdl.cxx b/shell/source/win32/shlxthandler/prophdl/propertyhdl.cxx
index 3f495a7aa53d..13d1a57fefd8 100644..100755
--- a/shell/source/win32/shlxthandler/prophdl/propertyhdl.cxx
+++ b/shell/source/win32/shlxthandler/prophdl/propertyhdl.cxx
@@ -237,14 +237,14 @@ HRESULT STDMETHODCALLTYPE CPropertyHdl::Initialize( IStream *pStream, DWORD grfM
try
{
pMetaInfoReader = new CMetaInfoReader( (void*)pStream, &z_filefunc );
+ LoadProperties( pMetaInfoReader );
+ delete pMetaInfoReader;
}
catch (const std::exception& e)
{
OutputDebugStringFormat( "CPropertyHdl::Initialize: Caught exception [%s]", e.what() );
return E_FAIL;
}
-
- LoadProperties( pMetaInfoReader );
/*
// load extended properties and search content
_LoadExtendedProperties();
diff --git a/shell/source/win32/shlxthandler/propsheets/propsheets.cxx b/shell/source/win32/shlxthandler/propsheets/propsheets.cxx
index a45c7967f233..d668479d5ff5 100755
--- a/shell/source/win32/shlxthandler/propsheets/propsheets.cxx
+++ b/shell/source/win32/shlxthandler/propsheets/propsheets.cxx
@@ -157,13 +157,26 @@ HRESULT STDMETHODCALLTYPE CPropertySheet::Initialize(
NULL,
0)))
{
- DragQueryFileA(
- reinterpret_cast<HDROP>(medium.hGlobal),
- 0,
- m_szFileName,
- sizeof(m_szFileName));
-
- hr = S_OK;
+ UINT size = DragQueryFile( reinterpret_cast<HDROP>(medium.hGlobal), 0, 0, 0 );
+ if ( size != 0 )
+ {
+ TCHAR * buffer = new TCHAR[ size + 1 ];
+ UINT result_size = DragQueryFile( reinterpret_cast<HDROP>(medium.hGlobal),
+ 0, buffer, size + 1 );
+ if ( result_size != 0 )
+ {
+ std::wstring fname = getShortPathName( buffer );
+ std::string fnameA = WStringToString( fname );
+ ZeroMemory( m_szFileName, sizeof( m_szFileName ) );
+ strncpy( m_szFileName, fnameA.c_str(), ( sizeof( m_szFileName ) - 1 ) );
+ hr = S_OK;
+ }
+ else
+ hr = E_INVALIDARG;
+ delete [] buffer;
+ }
+ else
+ hr = E_INVALIDARG;
}
else
hr = E_INVALIDARG;
@@ -320,24 +333,29 @@ BOOL CALLBACK CPropertySheet::PropPageStatisticsProc(HWND hwnd, UINT uiMsg, WPAR
//##################################
void CPropertySheet::InitPropPageSummary(HWND hwnd, LPPROPSHEETPAGE /*lppsp*/)
{
- CMetaInfoReader metaInfo(m_szFileName);
-
- SetWindowText(GetDlgItem(hwnd,IDC_TITLE), metaInfo.getTagData( META_INFO_TITLE ).c_str() );
- SetWindowText(GetDlgItem(hwnd,IDC_AUTHOR), metaInfo.getTagData( META_INFO_AUTHOR ).c_str() );
- SetWindowText(GetDlgItem(hwnd,IDC_SUBJECT), metaInfo.getTagData( META_INFO_SUBJECT ).c_str() );
- SetWindowText(GetDlgItem(hwnd,IDC_KEYWORDS), metaInfo.getTagData( META_INFO_KEYWORDS ).c_str() );
-
- // comments read from meta.xml use "\n" for return, but this will not displayable in Edit control, add
- // "\r" before "\n" to form "\r\n" in order to display return in Edit control.
- std::wstring tempStr = metaInfo.getTagData( META_INFO_DESCRIPTION ).c_str();
- std::wstring::size_type itor = tempStr.find ( L"\n" , 0 );
- while (itor != std::wstring::npos)
+ try
+ {
+ CMetaInfoReader metaInfo(m_szFileName);
+
+ SetWindowText(GetDlgItem(hwnd,IDC_TITLE), metaInfo.getTagData( META_INFO_TITLE ).c_str() );
+ SetWindowText(GetDlgItem(hwnd,IDC_AUTHOR), metaInfo.getTagData( META_INFO_AUTHOR ).c_str() );
+ SetWindowText(GetDlgItem(hwnd,IDC_SUBJECT), metaInfo.getTagData( META_INFO_SUBJECT ).c_str() );
+ SetWindowText(GetDlgItem(hwnd,IDC_KEYWORDS), metaInfo.getTagData( META_INFO_KEYWORDS ).c_str() );
+
+ // comments read from meta.xml use "\n" for return, but this will not displayable in Edit control, add
+ // "\r" before "\n" to form "\r\n" in order to display return in Edit control.
+ std::wstring tempStr = metaInfo.getTagData( META_INFO_DESCRIPTION ).c_str();
+ std::wstring::size_type itor = tempStr.find ( L"\n" , 0 );
+ while (itor != std::wstring::npos)
+ {
+ tempStr.insert(itor, L"\r");
+ itor = tempStr.find(L"\n", itor + 2);
+ }
+ SetWindowText(GetDlgItem(hwnd,IDC_COMMENTS), tempStr.c_str());
+ }
+ catch (const std::exception&)
{
- tempStr.insert(itor, L"\r");
- itor = tempStr.find(L"\n", itor + 2);
}
- SetWindowText(GetDlgItem(hwnd,IDC_COMMENTS), tempStr.c_str());
-
}
//---------------------------------
@@ -345,22 +363,23 @@ void CPropertySheet::InitPropPageSummary(HWND hwnd, LPPROPSHEETPAGE /*lppsp*/)
*/
void CPropertySheet::InitPropPageStatistics(HWND hwnd, LPPROPSHEETPAGE /*lppsp*/)
{
- CMetaInfoReader metaInfo(m_szFileName);
-
- document_statistic_reader_ptr doc_stat_reader = create_document_statistic_reader(m_szFileName, &metaInfo);
+ try
+ {
+ CMetaInfoReader metaInfo(m_szFileName);
- statistic_group_list_t sgl;
- doc_stat_reader->read(&sgl);
+ document_statistic_reader_ptr doc_stat_reader = create_document_statistic_reader(m_szFileName, &metaInfo);
- list_view_builder_ptr lv_builder = create_list_view_builder(
- GetDlgItem(hwnd, IDC_STATISTICSLIST),
- GetResString(IDS_PROPERTY),
- GetResString(IDS_PROPERTY_VALUE));
+ statistic_group_list_t sgl;
+ doc_stat_reader->read(&sgl);
- lv_builder->build(sgl);
+ list_view_builder_ptr lv_builder = create_list_view_builder(
+ GetDlgItem(hwnd, IDC_STATISTICSLIST),
+ GetResString(IDS_PROPERTY),
+ GetResString(IDS_PROPERTY_VALUE));
+ lv_builder->build(sgl);
+ }
+ catch (const std::exception&)
+ {
+ }
}
-
-
-
-
diff --git a/shell/source/win32/shlxthandler/thumbviewer/thumbviewer.cxx b/shell/source/win32/shlxthandler/thumbviewer/thumbviewer.cxx
index 13f49c8a2efd..62fd306317be 100644..100755
--- a/shell/source/win32/shlxthandler/thumbviewer/thumbviewer.cxx
+++ b/shell/source/win32/shlxthandler/thumbviewer/thumbviewer.cxx
@@ -367,7 +367,8 @@ HRESULT STDMETHODCALLTYPE CThumbviewer::Extract(HBITMAP *phBmpImage)
try
{
- std::auto_ptr<ZipFile> zipfile(new ZipFile(WStringToString(filename_)));
+ std::wstring fname = getShortPathName( filename_ );
+ std::auto_ptr<ZipFile> zipfile( new ZipFile( WStringToString( fname ) ) );
if (zipfile->HasContent(THUMBNAIL_CONTENT))
{
diff --git a/shell/source/win32/shlxthandler/util/fileextensions.cxx b/shell/source/win32/shlxthandler/util/fileextensions.cxx
index b8de490a5c47..13e3535c7aa7 100644..100755
--- a/shell/source/win32/shlxthandler/util/fileextensions.cxx
+++ b/shell/source/win32/shlxthandler/util/fileextensions.cxx
@@ -27,6 +27,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_shell.hxx"
+#include "algorithm"
#include "internal/fileextensions.hxx"
//------------------------------------
@@ -87,9 +88,17 @@ std::string get_file_name_extension(const std::string& file_name)
/** Return the type of a file
*/
+char easytolower( char in )
+{
+ if( in<='Z' && in>='A' )
+ return in-('Z'-'z');
+ return in;
+}
+
File_Type_t get_file_type(const std::string& file_name)
{
std::string fext = get_file_name_extension(file_name);
+ std::transform(fext.begin(), fext.end(), fext.begin(), easytolower);
if (std::string::npos != WRITER_FILE_EXTENSIONS.find(fext))
return WRITER;
diff --git a/shell/source/win32/shlxthandler/util/utilities.cxx b/shell/source/win32/shlxthandler/util/utilities.cxx
index f721c4113aa8..005e4689cdce 100644..100755
--- a/shell/source/win32/shlxthandler/util/utilities.cxx
+++ b/shell/source/win32/shlxthandler/util/utilities.cxx
@@ -148,6 +148,28 @@ bool HasOnlySpaces(const std::wstring& String)
return true;
}
+//---------------------------------
+/** helper function to convert windows pathes to short form.
+ @returns
+ shortend path.
+*/
+
+std::wstring getShortPathName( const std::wstring& aLongName )
+{
+ std::wstring shortName = aLongName;
+ long length = GetShortPathName( aLongName.c_str(), NULL, 0 );
+
+ if ( length != 0 )
+ {
+ TCHAR* buffer = new TCHAR[ length+1 ];
+ length = GetShortPathName( aLongName.c_str(), buffer, length );
+ if ( length != 0 )
+ shortName = std::wstring( buffer );
+ delete [] buffer;
+ }
+ return shortName;
+}
+
/** convert LocaleSet pair into Microsoft List of Locale ID (LCID)
according to ISO-639 and ISO-3166.
http://etext.lib.virginia.edu/tei/iso639.html
diff --git a/svx/inc/svdstr.hrc b/svx/inc/svdstr.hrc
index f1bc8cfdae19..d778bf40326b 100644
--- a/svx/inc/svdstr.hrc
+++ b/svx/inc/svdstr.hrc
@@ -756,6 +756,7 @@
//BFS01#define SIP_SDRATTRSET_GRAF (SIP_Begin + 258)
#define SIP_SA_MARKERS (SIP_Begin + 258)
+#define SIP_SA_PAGESHADOW35X35 (SIP_Begin + 259)
#define SIP_SA_FINE_MARKERS (SIP_Begin + 260)
// #100499#
diff --git a/svx/inc/svimbase.hxx b/svx/inc/svimbase.hxx
index 3d43e5fb9aac..ba10f76b01f9 100644
--- a/svx/inc/svimbase.hxx
+++ b/svx/inc/svimbase.hxx
@@ -36,11 +36,7 @@
// - Defines -
// -----------
-#ifdef WIN
-#define _SVHUGE huge
-#else
#define _SVHUGE
-#endif
// ----------------
// - SimDepthType -
diff --git a/svx/inc/svx/dialogs.hrc b/svx/inc/svx/dialogs.hrc
index fd7561bb7192..fd7561bb7192 100755..100644
--- a/svx/inc/svx/dialogs.hrc
+++ b/svx/inc/svx/dialogs.hrc
diff --git a/svx/inc/svx/svdedtv.hxx b/svx/inc/svx/svdedtv.hxx
index 98e76bf28969..83429ae6c58e 100644
--- a/svx/inc/svx/svdedtv.hxx
+++ b/svx/inc/svx/svdedtv.hxx
@@ -208,7 +208,6 @@ public:
// verwendet. NotifyNewUndoAction() wird in diesem Fall erst beim letzten
// EndUndo() gerufen. NotifyNewUndoAction() wird nicht gerufen bei einer
// leeren Klammerung.
-#ifndef WIN
void BegUndo() { pMod->BegUndo(); } // Undo-Klammerung auf
void BegUndo(const String& rComment) { pMod->BegUndo(rComment); } // Undo-Klammerung auf
void BegUndo(const String& rComment, const String& rObjDescr, SdrRepeatFunc eFunc=SDRREPFUNC_OBJ_NONE) { pMod->BegUndo(rComment,rObjDescr,eFunc); } // Undo-Klammerung auf
@@ -218,17 +217,6 @@ public:
// nur nach dem 1. BegUndo oder vor dem letzten EndUndo:
void SetUndoComment(const String& rComment) { pMod->SetUndoComment(rComment); }
void SetUndoComment(const String& rComment, const String& rObjDescr) { pMod->SetUndoComment(rComment,rObjDescr); }
-#else // ifndef WIN
- void BegUndo();
- void BegUndo(const String& rComment);
- void BegUndo(const String& rComment, const String& rObjDescr, SdrRepeatFunc eFunc=SDRREPFUNC_OBJ_NONE);
- void BegUndo(SdrUndoGroup* pUndoGrp);
- void EndUndo(); // Undo-Klammerung zu (inkl BroadcastEdges)
- void AddUndo(SdrUndoAction* pUndo);
- // nur nach dem 1. BegUndo oder vor dem letzten EndUndo:
- void SetUndoComment(const String& rComment);
- void SetUndoComment(const String& rComment, const String& rObjDescr);
-#endif
bool IsUndoEnabled() const;
std::vector< SdrUndoAction* > CreateConnectorUndo( SdrObject& rO );
diff --git a/svx/inc/svx/svdmodel.hxx b/svx/inc/svx/svdmodel.hxx
index 328efedd98f0..b1bb7d74887f 100644
--- a/svx/inc/svx/svdmodel.hxx
+++ b/svx/inc/svx/svdmodel.hxx
@@ -53,11 +53,11 @@ class OutputDevice;
#include <vos/ref.hxx>
-#if defined(UNX) || defined(WIN) || defined(WNT)
+#if defined(UNX) || defined(WNT)
#define DEGREE_CHAR ((sal_Unicode)176) /* 0xB0 = Ansi */
#endif
-#if defined(DOS) || defined(OS2)
+#if defined(OS2)
#define DEGREE_CHAR ((sal_Unicode)248) /* 0xF8 = IBM PC (Erw. ASCII) */
#endif
diff --git a/svx/inc/svx/xpoly.hxx b/svx/inc/svx/xpoly.hxx
index 409d957cae84..28b7e3dcdd3e 100644
--- a/svx/inc/svx/xpoly.hxx
+++ b/svx/inc/svx/xpoly.hxx
@@ -45,11 +45,7 @@ class OutputDevice;
#define XPOLYPOLY_APPEND 0xFFFF
#define XPOLY_APPEND 0xFFFF
-#ifdef WIN // Windows 16 Bit
-#define XPOLY_MAXPOINTS 8160 /* =0xFF00/sizeof(Point), also mit etwas Platz! */
-#else
#define XPOLY_MAXPOINTS 0xFFF0 /* Auch fuer die 32-Bitter etwas Luft lassen */
-#endif
/************************************************************************/
// Punktstile im XPolygon:
diff --git a/svx/source/dialog/svxruler.cxx b/svx/source/dialog/svxruler.cxx
index 7705a2dd08df..8000de0d2103 100644..100755
--- a/svx/source/dialog/svxruler.cxx
+++ b/svx/source/dialog/svxruler.cxx
@@ -59,6 +59,28 @@
#define RULER_TAB_RTL ((USHORT)0x0010)
#endif
+#include <comphelper/uieventslogger.hxx>
+
+namespace
+{
+ void lcl_logRulerUse(const ::rtl::OUString& sURL) //#i99729#
+ {
+ using namespace ::com::sun::star;
+ util::URL aTargetURL;
+ aTargetURL.Complete = sURL;
+ aTargetURL.Main = sURL;
+ if(::comphelper::UiEventsLogger::isEnabled()) //#i88653#
+ {
+ ::rtl::OUString sAppName;
+ uno::Sequence<beans::PropertyValue> source;
+ ::comphelper::UiEventsLogger::appendDispatchOrigin(source, sAppName, ::rtl::OUString::createFromAscii("SfxRuler"));
+ ::comphelper::UiEventsLogger::logDispatch(aTargetURL, source);
+ }
+ }
+}
+
+
+
// STATIC DATA -----------------------------------------------------------
#define CTRL_ITEM_COUNT 14
@@ -2806,6 +2828,7 @@ void __EXPORT SvxRuler::Click()
*/
{
+ lcl_logRulerUse(::rtl::OUString::createFromAscii(".special://SfxRuler/Click"));
Ruler::Click();
if( bActive )
{
@@ -3440,6 +3463,7 @@ long __EXPORT SvxRuler::StartDrag()
*/
{
+ lcl_logRulerUse(::rtl::OUString::createFromAscii(".special://SfxRuler/StartDrag"));
BOOL bContentProtected = pRuler_Imp->aProtectItem.IsCntntProtected();
if(!bValid)
return FALSE;
@@ -3559,6 +3583,7 @@ void __EXPORT SvxRuler::EndDrag()
*/
{
+ lcl_logRulerUse(::rtl::OUString::createFromAscii(".special://SfxRuler/EndDrag"));
const BOOL bUndo = IsDragCanceled();
const long lPos = GetDragPos();
DrawLine_Impl(lTabPos, 6, bHorz);
diff --git a/svx/source/engine3d/scene3d.cxx b/svx/source/engine3d/scene3d.cxx
index 036f700e6e96..0b06a74c280d 100644
--- a/svx/source/engine3d/scene3d.cxx
+++ b/svx/source/engine3d/scene3d.cxx
@@ -240,7 +240,7 @@ void E3dScene::SetDefaultAttributes(E3dDefaultAttributes& /*rDefault*/)
#endif
// Fuer WIN95/NT die FP-Exceptions abschalten
-#if defined(WNT) || defined(WIN)
+#if defined(WNT)
#define SC_FPEXCEPTIONS_ON() _control87( _MCW_EM, 0 )
#define SC_FPEXCEPTIONS_OFF() _control87( _MCW_EM, _MCW_EM )
SC_FPEXCEPTIONS_OFF();
diff --git a/svx/source/gengal/gengal.cxx b/svx/source/gengal/gengal.cxx
index bc8e6ef7c4bd..4120027c3e35 100644
--- a/svx/source/gengal/gengal.cxx
+++ b/svx/source/gengal/gengal.cxx
@@ -241,8 +241,9 @@ void GalApp::Init()
#endif
rtl::OUString baseBinDir = fileName.copy( 0, lastSlash );
rtl::OUString installPrefix = baseBinDir + rtl::OUString::createFromAscii( "/../.." );
- rtl::OUString assignment = rtl::OUString::createFromAscii( "OOO_INSTALL_PREFIX=" ) + installPrefix;
- putenv( strdup( OUSTRING_CSTR( assignment )));
+
+ rtl::OUString envVar(RTL_CONSTASCII_USTRINGPARAM("OOO_INSTALL_PREFIX"));
+ osl_setEnvironment(envVar.pData, installPrefix.pData);
}
OSL_TRACE( "OOO_INSTALL_PREFIX=%s", getenv( "OOO_INSTALL_PREFIX" ) );
diff --git a/svx/source/sdr/contact/viewcontactofsdrpage.cxx b/svx/source/sdr/contact/viewcontactofsdrpage.cxx
index b80b6fcbba88..ad65b647001e 100644
--- a/svx/source/sdr/contact/viewcontactofsdrpage.cxx
+++ b/svx/source/sdr/contact/viewcontactofsdrpage.cxx
@@ -44,6 +44,10 @@
#include <basegfx/polygon/b2dpolygon.hxx>
#include <svx/sdr/primitive2d/sdrattributecreator.hxx>
#include <svx/sdr/primitive2d/sdrdecompositiontools.hxx>
+#include <vcl/lazydelete.hxx>
+#include "svdstr.hrc"
+#include "svdglob.hxx"
+#include <drawinglayer/primitive2d/discreteshadowprimitive2d.hxx>
#include <drawinglayer/attribute/sdrfillattribute.hxx>
//////////////////////////////////////////////////////////////////////////////
@@ -131,31 +135,54 @@ namespace sdr
drawinglayer::primitive2d::Primitive2DSequence ViewContactOfPageShadow::createViewIndependentPrimitive2DSequence() const
{
+ static bool bUseOldPageShadow(false);
const SdrPage& rPage = getPage();
basegfx::B2DHomMatrix aPageMatrix;
aPageMatrix.set(0, 0, (double)rPage.GetWdt());
aPageMatrix.set(1, 1, (double)rPage.GetHgt());
- // create page shadow polygon
- const double fPageBorderFactor(1.0 / 256.0);
- basegfx::B2DPolygon aPageShadowPolygon;
- aPageShadowPolygon.append(basegfx::B2DPoint(1.0, fPageBorderFactor));
- aPageShadowPolygon.append(basegfx::B2DPoint(1.0 + fPageBorderFactor, fPageBorderFactor));
- aPageShadowPolygon.append(basegfx::B2DPoint(1.0 + fPageBorderFactor, 1.0 + fPageBorderFactor));
- aPageShadowPolygon.append(basegfx::B2DPoint(fPageBorderFactor, 1.0 + fPageBorderFactor));
- aPageShadowPolygon.append(basegfx::B2DPoint(fPageBorderFactor, 1.0));
- aPageShadowPolygon.append(basegfx::B2DPoint(1.0, 1.0));
- aPageShadowPolygon.setClosed(true);
- aPageShadowPolygon.transform(aPageMatrix);
-
- // We have only the page information, not the view information. Use the
- // svtools::FONTCOLOR color for initialisation
- const svtools::ColorConfig aColorConfig;
- const Color aShadowColor(aColorConfig.GetColorValue(svtools::FONTCOLOR).nColor);
- const basegfx::BColor aRGBShadowColor(aShadowColor.getBColor());
- const drawinglayer::primitive2d::Primitive2DReference xReference(new drawinglayer::primitive2d::PolyPolygonColorPrimitive2D(basegfx::B2DPolyPolygon(aPageShadowPolygon), aRGBShadowColor));
+ if(bUseOldPageShadow)
+ {
+ // create page shadow polygon
+ const double fPageBorderFactor(1.0 / 256.0);
+ basegfx::B2DPolygon aPageShadowPolygon;
+ aPageShadowPolygon.append(basegfx::B2DPoint(1.0, fPageBorderFactor));
+ aPageShadowPolygon.append(basegfx::B2DPoint(1.0 + fPageBorderFactor, fPageBorderFactor));
+ aPageShadowPolygon.append(basegfx::B2DPoint(1.0 + fPageBorderFactor, 1.0 + fPageBorderFactor));
+ aPageShadowPolygon.append(basegfx::B2DPoint(fPageBorderFactor, 1.0 + fPageBorderFactor));
+ aPageShadowPolygon.append(basegfx::B2DPoint(fPageBorderFactor, 1.0));
+ aPageShadowPolygon.append(basegfx::B2DPoint(1.0, 1.0));
+ aPageShadowPolygon.setClosed(true);
+ aPageShadowPolygon.transform(aPageMatrix);
+
+ // We have only the page information, not the view information. Use the
+ // svtools::FONTCOLOR color for initialisation
+ const svtools::ColorConfig aColorConfig;
+ const Color aShadowColor(aColorConfig.GetColorValue(svtools::FONTCOLOR).nColor);
+ const basegfx::BColor aRGBShadowColor(aShadowColor.getBColor());
+ const drawinglayer::primitive2d::Primitive2DReference xReference(
+ new drawinglayer::primitive2d::PolyPolygonColorPrimitive2D(
+ basegfx::B2DPolyPolygon(aPageShadowPolygon),
+ aRGBShadowColor));
+
+ return drawinglayer::primitive2d::Primitive2DSequence(&xReference, 1);
+ }
+ else
+ {
+ static vcl::DeleteOnDeinit<drawinglayer::primitive2d::DiscreteShadow>
+ aDiscreteShadow(new drawinglayer::primitive2d::DiscreteShadow(
+ BitmapEx(ResId(SIP_SA_PAGESHADOW35X35, *ImpGetResMgr()))));
+ if (aDiscreteShadow.get() != NULL)
+ {
+ const drawinglayer::primitive2d::Primitive2DReference xReference(
+ new drawinglayer::primitive2d::DiscreteShadowPrimitive2D(
+ aPageMatrix,
+ *aDiscreteShadow.get()));
- return drawinglayer::primitive2d::Primitive2DSequence(&xReference, 1);
+ return drawinglayer::primitive2d::Primitive2DSequence(&xReference, 1);
+ }
+ return drawinglayer::primitive2d::Primitive2DSequence();
+ }
}
ViewContactOfPageShadow::ViewContactOfPageShadow(ViewContactOfSdrPage& rParentViewContactOfSdrPage)
@@ -313,11 +340,17 @@ namespace sdr
const SdrPage& rPage = getPage();
const basegfx::B2DRange aPageBorderRange(0.0, 0.0, (double)rPage.GetWdt(), (double)rPage.GetHgt());
- // We have only the page information, not the view information. Use the
- // svtools::FONTCOLOR color for initialisation
- const svtools::ColorConfig aColorConfig;
- const Color aBorderColor(aColorConfig.GetColorValue(svtools::FONTCOLOR).nColor);
- const basegfx::BColor aRGBBorderColor(aBorderColor.getBColor());
+ // Changed to 0x949599 for renaissance, before svtools::FONTCOLOR was used.
+ // Added old case as fallback for HighContrast.
+ basegfx::BColor aRGBBorderColor(0x94 / (double)0xff, 0x95 / (double)0xff, 0x99 / (double)0xff);
+
+ if(Application::GetSettings().GetStyleSettings().GetHighContrastMode())
+ {
+ const svtools::ColorConfig aColorConfig;
+ const Color aBorderColor(aColorConfig.GetColorValue(svtools::FONTCOLOR).nColor);
+
+ aRGBBorderColor = aBorderColor.getBColor();
+ }
if(rPage.getPageBorderOnlyLeftRight())
{
diff --git a/svx/source/sdr/contact/viewobjectcontactofsdrpage.cxx b/svx/source/sdr/contact/viewobjectcontactofsdrpage.cxx
index c751ba2ada76..f7145dcd9d73 100644
--- a/svx/source/sdr/contact/viewobjectcontactofsdrpage.cxx
+++ b/svx/source/sdr/contact/viewobjectcontactofsdrpage.cxx
@@ -320,6 +320,12 @@ namespace sdr
return false;
}
+ // no page shadow for high contrast mode
+ if(GetObjectContact().isDrawModeHighContrast())
+ {
+ return false;
+ }
+
return true;
}
} // end of namespace contact
diff --git a/svx/source/svdraw/svdedtv.cxx b/svx/source/svdraw/svdedtv.cxx
index 5eae04dbbc87..26966a543f1c 100644
--- a/svx/source/svdraw/svdedtv.cxx
+++ b/svx/source/svdraw/svdedtv.cxx
@@ -1039,46 +1039,6 @@ void SdrEditView::ReplaceObjectAtView(SdrObject* pOldObj, SdrPageView& rPV, SdrO
////////////////////////////////////////////////////////////////////////////////////////////////////
-#ifdef WIN
-void SdrEditView::BegUndo() // Undo-Klammerung auf
-{
- pMod->BegUndo();
-}
-
-void SdrEditView::BegUndo(const String& rComment) // Undo-Klammerung auf
-{
- pMod->BegUndo(rComment);
-}
-
-void SdrEditView::BegUndo(const String& rComment, const String& rObjDescr,
- SdrRepeatFunc eFunc) // Undo-Klammerung auf
-{
- pMod->BegUndo(rComment,rObjDescr,eFunc);
-}
-
-void SdrEditView::BegUndo(SdrUndoGroup* pUndoGrp) // Undo-Klammerung auf
-{
- pMod->BegUndo(pUndoGrp);
-}
-
-void SdrEditView::AddUndo(SdrUndoAction* pUndo) // Action hinzufuegen
-{
- pMod->AddUndo(pUndo);
-}
- // nur nach dem 1. BegUndo oder vor dem letzten EndUndo:
-void SdrEditView::SetUndoComment(const String& rComment)
-{
- pMod->SetUndoComment(rComment);
-}
-
-
-void SdrEditView::SetUndoComment(const String& rComment,
- const String& rObjDescr)
-{
- pMod->SetUndoComment(rComment,rObjDescr);
-}
-#endif
-
bool SdrEditView::IsUndoEnabled() const
{
return pMod->IsUndoEnabled();
diff --git a/svx/source/svdraw/svdocirc.cxx b/svx/source/svdraw/svdocirc.cxx
index 4c600cba821f..31582d652dc4 100644
--- a/svx/source/svdraw/svdocirc.cxx
+++ b/svx/source/svdraw/svdocirc.cxx
@@ -171,10 +171,8 @@ FASTBOOL SdrCircObj::PaintNeedsXPolyCirc() const
// und wenn nicht WIN dann (erstmal) auch fuer Kreis-/Ellipsenausschnitte
// und Kreis-/Ellipsenboegen (wg. Genauigkeit)
FASTBOOL bNeed=aGeo.nDrehWink!=0 || aGeo.nShearWink!=0 || meCircleKind==OBJ_CCUT;
-#ifndef WIN
// Wenn nicht Win, dann fuer alle ausser Vollkreis (erstmal!!!)
if (meCircleKind!=OBJ_CIRC) bNeed=TRUE;
-#endif
const SfxItemSet& rSet = GetObjectItemSet();
if(!bNeed)
diff --git a/svx/source/svdraw/svdpagv.cxx b/svx/source/svdraw/svdpagv.cxx
index bad1401c2305..03e3dc31a94f 100644
--- a/svx/source/svdraw/svdpagv.cxx
+++ b/svx/source/svdraw/svdpagv.cxx
@@ -580,10 +580,6 @@ void SdrPageView::DrawPageViewGrid(OutputDevice& rOut, const Rectangle& rRect, C
rOut.SetLineColor( aColor );
bool bMap0=rOut.IsMapModeEnabled();
-#ifdef WIN // SetPixel-Profiling fuer Windows
- COLORREF aWinColRef=PALETTERGB(aColor.GetRed()>>8,aColor.GetGreen()>>8,aColor.GetBlue()>>8);
- HDC aWinhDC=Sysdepen::GethDC(rOut);
-#endif
long nWrX=0;//aWriterPageOffset.X();
long nWrY=0;//aWriterPageOffset.Y();
diff --git a/svx/source/svdraw/svdstr.src b/svx/source/svdraw/svdstr.src
index 1317a0e1328d..000e20cf24d4 100644
--- a/svx/source/svdraw/svdstr.src
+++ b/svx/source/svdraw/svdstr.src
@@ -2746,6 +2746,11 @@ String SIP_SA_GRAFRESERVE4 { Text = "" ; };
String SIP_SA_GRAFRESERVE5 { Text = "" ; };
String SIP_SA_GRAFRESERVE6 { Text = "" ; };
+Bitmap SIP_SA_PAGESHADOW35X35
+{
+ File = "pageshadow35x35.png";
+};
+
Bitmap SIP_SA_MARKERS
{
File = "markers.bmp";
diff --git a/svx/util/svxpch.cxx b/svx/util/svxpch.cxx
index a59ef4b90a74..b8f6b92b38db 100644
--- a/svx/util/svxpch.cxx
+++ b/svx/util/svxpch.cxx
@@ -29,7 +29,7 @@
#include "precompiled_svx.hxx"
#include <thread.hxx>
#include <sysdep.hxx>
-#if defined(WNT) || defined (WIN)
+#if defined(WNT)
#include <svwin.h>
#endif
#include <tlintl.hxx>
diff --git a/sysui/desktop/cleanversion/makefile.mk b/sysui/desktop/cleanversion/makefile.mk
index 71a0d7e3dfd9..40651af2d17b 100644
--- a/sysui/desktop/cleanversion/makefile.mk
+++ b/sysui/desktop/cleanversion/makefile.mk
@@ -43,7 +43,7 @@ ALLTAR: $(MISC)$/cleanup.flag
# version changed - bin previous trees
$(MISC)$/cleanup.flag : ..$/productversion.mk
- rm -rf `ls $(MISC) | grep -v -x $(MISC)$/logs` && $(TOUCH) $@
+ rm -rf `ls -d $(MISC)$/* | sed '/\/logs$/d'` && $(TOUCH) $@
.ENDIF # "$(MISC)"!=""
diff --git a/sysui/desktop/debian/makefile.mk b/sysui/desktop/debian/makefile.mk
index f0f4e4288639..45e0f331f714 100644
--- a/sysui/desktop/debian/makefile.mk
+++ b/sysui/desktop/debian/makefile.mk
@@ -45,7 +45,7 @@ TARGET=debian
.IF "$(PKGFORMAT)"!="$(PKGFORMAT:s/deb//)"
-DEBFILES=$(foreach,i,{$(PRODUCTLIST)} $(PKGDIR)$/$i3.3-$(TARGET)-menus_$(PKGVERSION.$i)-$(PKGREV)_all.deb)
+DEBFILES=$(foreach,i,{$(PRODUCTLIST)} $(PKGDIR)$/$i3.4-$(TARGET)-menus_$(PKGVERSION.$i)-$(PKGREV)_all.deb)
.ENDIF
@@ -60,22 +60,22 @@ ALLTAR : $(DEBFILES)
%/DEBIAN/control : $$(@:f)
@$(MKDIRHIER) $(@:d) $*$/etc $*$/usr/share/applnk/Office $*$/usr/lib/menu
- ln -sf /opt/$(UNIXFILENAME.$(*:f:s/-/ /:1:s/3.3//)) $*$/etc$/
- /bin/sh -c -x "cd $(COMMONMISC)$/$(*:f:s/-/ /:1:s/3.3//) && DESTDIR=$(shell @cd $*; pwd) ICON_PREFIX=$(ICONPREFIX) KDEMAINDIR=/usr GNOMEDIR=/usr create_tree.sh"
- @cat openoffice.org-debian-menus | sed -e 's/%PRODUCTNAME/$(PRODUCTNAME.$(*:f:s/-/ /:1:s/3.3//)) $(PRODUCTVERSION.$(*:f:s/-/ /:1:s/3.3//))/' -e 's/%PREFIX/$(UNIXFILENAME.$(*:f:s/-/ /:1:s/3.3//))/' -e 's/%ICONPREFIX/$(ICONPREFIX.$(*:f:s/-/ /:1:s/3.3//))/' > $*$/usr/lib/menu/$(*:f:s/_/ /:1:s/3.3//)
- echo "Package: $(*:f:s/_/ /:1:s/3.3//)" > $@
- cat $(@:f) | tr -d "\015" | sed "s/%productname/$(PRODUCTNAME.$(*:f:s/-/ /:1:s/3.3//))/" >> $@
- echo "Version: $(PKGVERSION.$(*:f:s/-/ /:1:s/3.3//))-$(PKGREV)" >> $@
+ ln -sf /opt/$(UNIXFILENAME.$(*:f:s/-/ /:1:s/3.4//)) $*$/etc$/
+ /bin/sh -c -x "cd $(COMMONMISC)$/$(*:f:s/-/ /:1:s/3.4//) && DESTDIR=$(shell @cd $*; pwd) ICON_PREFIX=$(ICONPREFIX) KDEMAINDIR=/usr GNOMEDIR=/usr create_tree.sh"
+ @cat openoffice.org-debian-menus | sed -e 's/%PRODUCTNAME/$(PRODUCTNAME.$(*:f:s/-/ /:1:s/3.4//)) $(PRODUCTVERSION.$(*:f:s/-/ /:1:s/3.4//))/' -e 's/%PREFIX/$(UNIXFILENAME.$(*:f:s/-/ /:1:s/3.4//))/' -e 's/%ICONPREFIX/$(ICONPREFIX.$(*:f:s/-/ /:1:s/3.4//))/' > $*$/usr/lib/menu/$(*:f:s/_/ /:1:s/3.4//)
+ echo "Package: $(*:f:s/_/ /:1:s/3.4//)" > $@
+ cat $(@:f) | tr -d "\015" | sed "s/%productname/$(PRODUCTNAME.$(*:f:s/-/ /:1:s/3.4//))/" >> $@
+ echo "Version: $(PKGVERSION.$(*:f:s/-/ /:1:s/3.4//))-$(PKGREV)" >> $@
@du -k -s $* | awk -F ' ' '{ printf "Installed-Size: %s\n", $$1 ; }' >> $@
%/DEBIAN/postinst : $$(@:f)
- @cat $< | tr -d "\015" | sed -e "s/%PREFIX/$(UNIXFILENAME.$(*:f:s/-/ /:1:s/3.3//))/g" > $@
+ @cat $< | tr -d "\015" | sed -e "s/%PREFIX/$(UNIXFILENAME.$(*:f:s/-/ /:1:s/3.4//))/g" > $@
%/DEBIAN/postrm : $$(@:f)
- @cat $< | tr -d "\015" | sed -e "s/%PREFIX/$(UNIXFILENAME.$(*:f:s/-/ /:1:s/3.3//))/g" > $@
+ @cat $< | tr -d "\015" | sed -e "s/%PREFIX/$(UNIXFILENAME.$(*:f:s/-/ /:1:s/3.4//))/g" > $@
%/DEBIAN/prerm : $$(@:f)
- @cat $< | tr -d "\015" | sed -e "s/%PREFIX/$(UNIXFILENAME.$(*:f:s/-/ /:1:s/3.3//))/g" > $@
+ @cat $< | tr -d "\015" | sed -e "s/%PREFIX/$(UNIXFILENAME.$(*:f:s/-/ /:1:s/3.4//))/g" > $@
# --- packaging ---------------------------------------------------
diff --git a/sysui/desktop/productversion.mk b/sysui/desktop/productversion.mk
index 24b1a2db042d..09141b2276bd 100644
--- a/sysui/desktop/productversion.mk
+++ b/sysui/desktop/productversion.mk
@@ -46,7 +46,7 @@ PKGDIR=$(BIN)
PRODUCTLIST = openoffice.org broffice.org
# default values to minimize maintainance effort
-PRODUCTVERSION = 3.3
+PRODUCTVERSION = 3.4
PRODUCTVERSIONSHORT = 3
PKGVERSION = $(PRODUCTVERSION)
# gnome-vfs treats everything behind the last '.' as an icon extension,
diff --git a/sysui/desktop/slackware/makefile.mk b/sysui/desktop/slackware/makefile.mk
index 6fde1caf6528..eeeb141c6397 100644
--- a/sysui/desktop/slackware/makefile.mk
+++ b/sysui/desktop/slackware/makefile.mk
@@ -40,7 +40,7 @@ TARGET=slackware
# --- Files --------------------------------------------------------
-MENUFILES=$(PKGDIR)$/{$(PRODUCTLIST)}3.3-$(TARGET)-menus-$(PKGVERSION)-noarch-$(PKGREV).tgz
+MENUFILES=$(PKGDIR)$/{$(PRODUCTLIST)}3.4-$(TARGET)-menus-$(PKGVERSION)-noarch-$(PKGREV).tgz
# --- Targets -------------------------------------------------------
@@ -59,26 +59,26 @@ $(MISC)/$(TARGET)/usr/share/applications/ :
# FIXME: removal of *-extension.* only to create identical packages to OOF680
%/usr/share/applications :
@$(MKDIRHIER) $@
- /bin/sh -c "cd $(COMMONMISC)$/$(*:b:s/-/ /:1:s/3.3//); DESTDIR=$(shell @cd $*; pwd) GNOMEDIR="" ICON_PREFIX=$(ICONPREFIX.$(*:b:s/-/ /:1:s/3.3//)) KDEMAINDIR=/opt/kde .$/create_tree.sh"
+ /bin/sh -c "cd $(COMMONMISC)$/$(*:b:s/-/ /:1:s/3.4//); DESTDIR=$(shell @cd $*; pwd) GNOMEDIR="" ICON_PREFIX=$(ICONPREFIX.$(*:b:s/-/ /:1:s/3.4//)) KDEMAINDIR=/opt/kde .$/create_tree.sh"
$(RM) $*$/opt$/kde$/share$/icons$/*$/*$/*$/*-extension.png
$(RM) $*$/opt$/kde$/share$/mimelnk$/application$/*-extension.desktop
$(RM) $*$/usr$/share$/applications$/*.desktop
$(RM) $*$/usr$/bin$/soffice
%$/install$/doinst.sh : update-script
- @echo "( cd etc ; rm -rf $(UNIXFILENAME.$(*:b:s/-/ /:1:s/3.3//)) )" > $@
- @echo "( cd etc ; ln -snf /opt/$(UNIXFILENAME.$(*:b:s/-/ /:1:s/3.3//):s/-//) $(UNIXFILENAME.$(*:b:s/-/ /:1:s/3.3//)) )" >> $@
+ @echo "( cd etc ; rm -rf $(UNIXFILENAME.$(*:b:s/-/ /:1:s/3.4//)) )" > $@
+ @echo "( cd etc ; ln -snf /opt/$(UNIXFILENAME.$(*:b:s/-/ /:1:s/3.4//):s/-//) $(UNIXFILENAME.$(*:b:s/-/ /:1:s/3.4//)) )" >> $@
@echo "( cd usr/bin ; rm -rf soffice )" >> $@
- @echo "( cd usr/bin ; ln -sf /etc/$(UNIXFILENAME.$(*:b:s/-/ /:1:s/3.3//))/program/soffice soffice )" >> $@
- @echo -e $(foreach,i,$(shell @cat $(COMMONMISC)$/$(*:b:s/-/ /:1:s/3.3//)/launcherlist) "\n( cd usr/share/applications ; rm -rf $(UNIXFILENAME.$(*:b:s/-/ /:1:s/3.3//))-$i )\n( cd usr/share/applications ; ln -sf /etc/$(UNIXFILENAME.$(*:b:s/-/ /:1:s/3.3//))/share/xdg/$i $(UNIXFILENAME.$(*:b:s/-/ /:1:s/3.3//))-$i )") >> $@
+ @echo "( cd usr/bin ; ln -sf /etc/$(UNIXFILENAME.$(*:b:s/-/ /:1:s/3.4//))/program/soffice soffice )" >> $@
+ @echo -e $(foreach,i,$(shell @cat $(COMMONMISC)$/$(*:b:s/-/ /:1:s/3.4//)/launcherlist) "\n( cd usr/share/applications ; rm -rf $(UNIXFILENAME.$(*:b:s/-/ /:1:s/3.4//))-$i )\n( cd usr/share/applications ; ln -sf /etc/$(UNIXFILENAME.$(*:b:s/-/ /:1:s/3.4//))/share/xdg/$i $(UNIXFILENAME.$(*:b:s/-/ /:1:s/3.4//))-$i )") >> $@
@cat $< >> $@
%$/install$/slack-desc : slack-desc
@$(MKDIRHIER) $(@:d)
- @sed -e "s/PKGNAME/$(*:b:s/-/ /:1:s/3.3//)-$(TARGET)-menus/g" -e "s/PKGVERSION/$(PKGVERSION.$(*:b:s/-/ /:1:s/3.3//))/g" \
- -e "s/LONGPRODUCTNAME/$(PRODUCTNAME.$(*:b:s/-/ /:1:s/3.3//)) $(PRODUCTVERSION.$(*:b:s/-/ /:1:s/3.3//))/g" \
- -e "s/PRODUCTNAME/$(PRODUCTNAME.$(*:b:s/-/ /:1:s/3.3//))/g" \
- -e "s/UNIXFILENAME/$(UNIXFILENAME.$(*:b:s/-/ /:1:s/3.3//))/g" $< > $@
+ @sed -e "s/PKGNAME/$(*:b:s/-/ /:1:s/3.4//)-$(TARGET)-menus/g" -e "s/PKGVERSION/$(PKGVERSION.$(*:b:s/-/ /:1:s/3.4//))/g" \
+ -e "s/LONGPRODUCTNAME/$(PRODUCTNAME.$(*:b:s/-/ /:1:s/3.4//)) $(PRODUCTVERSION.$(*:b:s/-/ /:1:s/3.4//))/g" \
+ -e "s/PRODUCTNAME/$(PRODUCTNAME.$(*:b:s/-/ /:1:s/3.4//))/g" \
+ -e "s/UNIXFILENAME/$(UNIXFILENAME.$(*:b:s/-/ /:1:s/3.4//))/g" $< > $@
# needed to satisfy the slackware package tools - they need
# the entries like this
diff --git a/ucb/source/ucp/odma/odma_lib.cxx b/ucb/source/ucp/odma/odma_lib.cxx
index 774bcf5f6323..cf9da3a2b942 100644
--- a/ucb/source/ucp/odma/odma_lib.cxx
+++ b/ucb/source/ucp/odma/odma_lib.cxx
@@ -78,10 +78,6 @@ namespace odma
if (bLoaded)
return sal_True;
::rtl::OUString sPath;
- #ifdef WIN
- sPath = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ODMA.DLL"));
-
- #endif
#ifdef WNT
sPath = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ODMA32.DLL"));
#endif
diff --git a/uui/source/iahndl-authentication.cxx b/uui/source/iahndl-authentication.cxx
index 95c2b45749ac..11f6627ed8b9 100644
--- a/uui/source/iahndl-authentication.cxx
+++ b/uui/source/iahndl-authentication.cxx
@@ -52,7 +52,6 @@
#include "logindlg.hxx"
#include "masterpasscrtdlg.hxx"
#include "masterpassworddlg.hxx"
-#include "passcrtdlg.hxx"
#include "passworddlg.hxx"
#include "iahndl.hxx"
diff --git a/uui/source/iahndl.cxx b/uui/source/iahndl.cxx
index 0879e3574da3..ee233f5ac9de 100755
--- a/uui/source/iahndl.cxx
+++ b/uui/source/iahndl.cxx
@@ -89,6 +89,7 @@
#include "newerverwarn.hxx"
#include "iahndl.hxx"
+#include "nameclashdlg.hxx"
/** === begin UNO using === **/
using ::com::sun::star::uno::Sequence;
@@ -867,8 +868,6 @@ UUIInteractionHelper::handleRequest_impl(
if ( handleCertificateValidationRequest( rRequest ) )
return true;
-// @@@ Todo #i29340#: activate!
-#if 0
ucb::NameClashResolveRequest aNameClashResolveRequest;
if (aAnyRequest >>= aNameClashResolveRequest)
{
@@ -876,7 +875,7 @@ UUIInteractionHelper::handleRequest_impl(
rRequest->getContinuations());
return true;
}
-#endif
+
if ( handleMasterPasswordRequest( rRequest ) )
return true;
@@ -1188,40 +1187,26 @@ executeMessageBox(
return aResult;
}
-// @@@ Todo #i29340#: activate!
-#if 0
-enum NameClashResolveDialogResult { ABORT, RENAME, OVERWRITE };
-
-NameClashResolveDialogResult
-executeNameClashResolveDialog(
- Window * /*pParent*/,
- rtl::OUString const & /*rTargetFolderURL*/,
- rtl::OUString const & /*rClashingName*/,
- rtl::OUString & /*rProposedNewName*/)
+NameClashResolveDialogResult executeSimpleNameClashResolveDialog( Window *pParent,
+ rtl::OUString const & rTargetFolderURL,
+ rtl::OUString const & rClashingName,
+ rtl::OUString & rProposedNewName,
+ bool bAllowOverwrite )
{
- // @@@ Todo DV: execute overwrite-rename dialog, deliver result
- OSL_ENSURE( false,
- "executeNameClashResolveDialog not yet implemented!" );
- return ABORT;
-}
+ std::auto_ptr< ResMgr > xManager( ResMgr::CreateResMgr( CREATEVERSIONRESMGR_NAME( uui ) ) );
+ if ( !xManager.get() )
+ return ABORT;
-NameClashResolveDialogResult
-executeSimpleNameClashResolveDialog(
- Window * /*pParent*/,
- rtl::OUString const & /*rTargetFolderURL*/,
- rtl::OUString const & /*rClashingName*/,
- rtl::OUString & /*rProposedNewName*/)
-{
- // @@@ Todo DV: execute rename-only dialog, deliver result
- OSL_ENSURE( false,
- "executeSimpleNameClashResolveDialog not yet implemented!" );
- return ABORT;
+ NameClashDialog aDialog( pParent, xManager.get(), rTargetFolderURL,
+ rClashingName, rProposedNewName, bAllowOverwrite );
+
+ NameClashResolveDialogResult eResult = (NameClashResolveDialogResult) aDialog.Execute();
+ rProposedNewName = aDialog.getNewName();
+ return eResult;
}
-#endif
+
} // namespace
-// @@@ Todo #i29340#: activate!
-#if 0
void
UUIInteractionHelper::handleNameClashResolveRequest(
ucb::NameClashResolveRequest const & rRequest,
@@ -1251,18 +1236,12 @@ UUIInteractionHelper::handleNameClashResolveRequest(
NameClashResolveDialogResult eResult = ABORT;
rtl::OUString aProposedNewName( rRequest.ProposedNewName );
- if ( xReplaceExistingData.is() )
- eResult = executeNameClashResolveDialog(
- getParentProperty(),
- rRequest.TargetFolderURL,
- rRequest.ClashingName,
- aProposedNewName);
- else
- eResult = executeSimpleNameClashResolveDialog(
- getParentProperty(),
- rRequest.TargetFolderURL,
- rRequest.ClashingName,
- aProposedNewName);
+
+ eResult = executeSimpleNameClashResolveDialog( getParentProperty(),
+ rRequest.TargetFolderURL,
+ rRequest.ClashingName,
+ aProposedNewName,
+ xReplaceExistingData.is() );
switch ( eResult )
{
@@ -1282,14 +1261,8 @@ UUIInteractionHelper::handleNameClashResolveRequest(
"No ReplaceExistingData continuation available!" );
xReplaceExistingData->select();
break;
-
- default:
- OSL_ENSURE( false, "Unknown NameClashResolveDialogResult value. "
- "Interaction Request not handled!" );
- break;
}
}
-#endif
void
UUIInteractionHelper::handleGenericErrorRequest(
diff --git a/uui/source/iahndl.hxx b/uui/source/iahndl.hxx
index 581099462845..6402653d3bda 100755
--- a/uui/source/iahndl.hxx
+++ b/uui/source/iahndl.hxx
@@ -215,8 +215,6 @@ private:
com::sun::star::task::XInteractionRequest > const & rRequest)
SAL_THROW((com::sun::star::uno::RuntimeException));
-// @@@ Todo #i29340#: activate!
-#if 0
void
handleNameClashResolveRequest(
com::sun::star::ucb::NameClashResolveRequest const & rRequest,
@@ -225,7 +223,6 @@ private:
com::sun::star::task::XInteractionContinuation > > const &
rContinuations)
SAL_THROW((com::sun::star::uno::RuntimeException));
-#endif
bool
handleMasterPasswordRequest(
diff --git a/uui/source/ids.hrc b/uui/source/ids.hrc
index 796186fd5140..9be81479ef59 100755..100644
--- a/uui/source/ids.hrc
+++ b/uui/source/ids.hrc
@@ -48,13 +48,14 @@
#define DLG_FILTER_SELECT (RID_UUI_START + 10)
// RID_UUI_START + 11 moved to ERRCODE_UUI_WRONGMEDIUM
#define DLG_UUI_MASTERPASSWORD (RID_UUI_START + 12)
+#define DLG_SIMPLE_NAME_CLASH (RID_UUI_START + 13)
#define STR_ERROR_PASSWORDS_NOT_IDENTICAL (RID_UUI_START + 13)
#define STR_ERROR_MASTERPASSWORD_WRONG (RID_UUI_START + 14)
// RID_UUI_START + 15, 16, 17 are misused by syncaccess/source/ui/resids.hrc
+
#define RID_UUI_ERRHDL (RID_UUI_START + 20)
#define DLG_UUI_MASTERPASSWORD_CRT (RID_UUI_START + 21)
#define DLG_UUI_PASSWORD (RID_UUI_START + 22)
-#define DLG_UUI_PASSWORD_CRT (RID_UUI_START + 23)
#define STR_ERROR_PASSWORD_TO_OPEN_WRONG (RID_UUI_START + 24)
#define STR_ERROR_PASSWORD_TO_MODIFY_WRONG (RID_UUI_START + 25)
#define DLG_UUI_UNKNOWNAUTH (RID_UUI_START + 26)
@@ -89,6 +90,9 @@
#define STR_WARNING_BROKENSIGNATURE_TITLE (RID_UUI_START + 55)
#define STR_ENTER_PASSWORD_TO_OPEN (RID_UUI_START + 56)
#define STR_ENTER_PASSWORD_TO_MODIFY (RID_UUI_START + 57)
+#define STR_RENAME_OR_REPLACE (RID_UUI_START + 58)
+#define STR_NAME_CLASH_RENAME_ONLY (RID_UUI_START + 59)
+#define STR_SAME_NAME_USED (RID_UUI_START + 60)
#define ERRCODE_UUI_IO_ABORT (ERRCODE_AREA_UUI + 0)
#define ERRCODE_UUI_IO_ACCESSDENIED (ERRCODE_AREA_UUI + 1)
@@ -176,7 +180,6 @@
#define HID_DLG_MASTERPASSWORD_CRT (HID_UUI_START + 3)
#define HID_DLG_FILTER_SELECT (HID_UUI_START + 4)
#define HID_DLG_PASSWORD_UUI (HID_UUI_START + 5)
-#define HID_DLG_PASSWORD_CRT (HID_UUI_START + 6)
#define HID_DLG_UNKNOWNAUTH_UUI (HID_UUI_START + 7)
#define HID_DLG_SSLWARN_UUI (HID_UUI_START + 8)
#define HID_XMLSECDLG_MACROWARN (HID_UUI_START + 9)
@@ -189,6 +192,7 @@
#define HID_LOGIN_DLG_ACCOUNT (HID_UUI_START +15)
#define HID_LOGIN_DLG_REMEMBER_PASSWORD (HID_UUI_START +16)
#define HID_LOGIN_DLG_USE_SYSTEM_CREDENTIALS (HID_UUI_START +17)
+#define HID_DLG_SIMPLE_NAME_CLASH (HID_UUI_START +18)
// HID_UUI_END (aka HID_CHAOS_NEW_DATABASE) is reserved in
// sfx2/util/hidother.src
diff --git a/uui/source/loginerr.hxx b/uui/source/loginerr.hxx
index ec1317dbd805..39bbfb7d820c 100755
--- a/uui/source/loginerr.hxx
+++ b/uui/source/loginerr.hxx
@@ -68,7 +68,7 @@ public:
const String& GetUserName() const { return m_aUserName; }
const String& GetPassword() const { return m_aPassword; }
const String& GetPasswordToModify() const { return m_aPasswordToModify; }
- const bool IsRecommendToOpenReadonly() const { return m_bRecommendToOpenReadonly; }
+ bool IsRecommendToOpenReadonly() const { return m_bRecommendToOpenReadonly; }
const String& GetPath() const { return m_aPath; }
const String& GetErrorText() const { return m_aErrorText; }
BOOL GetCanRememberPassword() const { return ( m_nFlags & LOGINERROR_FLAG_CAN_REMEMBER_PASSWORD ); }
diff --git a/uui/source/makefile.mk b/uui/source/makefile.mk
index 5c20e593046a..e09f5c01e967 100644..100755
--- a/uui/source/makefile.mk
+++ b/uui/source/makefile.mk
@@ -48,7 +48,6 @@ SLOFILES = \
$(SLO)$/masterpasscrtdlg.obj \
$(SLO)$/openlocked.obj \
$(SLO)$/passworddlg.obj \
- $(SLO)$/passcrtdlg.obj \
$(SLO)$/fltdlg.obj \
$(SLO)$/interactionhandler.obj \
$(SLO)$/requeststringresolver.obj \
@@ -60,6 +59,7 @@ SLOFILES = \
$(SLO)$/lockfailed.obj \
$(SLO)$/trylater.obj \
$(SLO)$/newerverwarn.obj \
+ $(SLO)$/nameclashdlg.obj \
$(SLO)$/passwordcontainer.obj
SRS1NAME=$(TARGET)
@@ -71,7 +71,6 @@ SRC1FILES = \
masterpasscrtdlg.src \
openlocked.src \
passworddlg.src \
- passcrtdlg.src \
passworderrs.src \
fltdlg.src \
unknownauthdlg.src\
@@ -81,6 +80,7 @@ SRC1FILES = \
alreadyopen.src\
lockfailed.src\
trylater.src\
+ nameclashdlg.src\
newerverwarn.src
.INCLUDE: target.mk
diff --git a/uui/source/nameclashdlg.cxx b/uui/source/nameclashdlg.cxx
new file mode 100755
index 000000000000..593398d53640
--- /dev/null
+++ b/uui/source/nameclashdlg.cxx
@@ -0,0 +1,107 @@
+/*************************************************************************
+ *
+ * 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.
+ *
+ ************************************************************************/
+
+#include "vcl/msgbox.hxx"
+#include "osl/file.hxx"
+
+#include "ids.hrc"
+#include "nameclashdlg.hrc"
+#include "nameclashdlg.hxx"
+
+// NameClashDialog ---------------------------------------------------------
+
+IMPL_LINK( NameClashDialog, ButtonHdl_Impl, PushButton *, pBtn )
+{
+ long nRet = (long) ABORT;
+ if ( &maBtnRename == pBtn )
+ {
+ nRet = (long) RENAME;
+ rtl::OUString aNewName = maEDNewName.GetText();
+ if ( ( aNewName == maNewName ) || !aNewName.getLength() )
+ {
+ ErrorBox aError( NULL, WB_OK, maSameName );
+ aError.Execute();
+ return 1;
+ }
+ maNewName = aNewName;
+ }
+ else if ( &maBtnOverwrite == pBtn )
+ nRet = (long) OVERWRITE;
+
+ EndDialog( nRet );
+
+ return 1;
+}
+
+// -----------------------------------------------------------------------
+NameClashDialog::NameClashDialog( Window* pParent, ResMgr* pResMgr,
+ rtl::OUString const & rTargetFolderURL,
+ rtl::OUString const & rClashingName,
+ rtl::OUString const & rProposedNewName,
+ bool bAllowOverwrite )
+ : ModalDialog( pParent, ResId( DLG_SIMPLE_NAME_CLASH, *pResMgr ) ),
+ maFTMessage ( this, ResId( FT_FILE_EXISTS_WARNING, *pResMgr ) ),
+ maEDNewName ( this, ResId( EDIT_NEW_NAME, *pResMgr ) ),
+ maBtnOverwrite ( this, ResId( BTN_OVERWRITE, *pResMgr ) ),
+ maBtnRename ( this, ResId( BTN_RENAME, *pResMgr ) ),
+ maBtnCancel ( this, ResId( BTN_CANCEL, *pResMgr ) ),
+ maBtnHelp ( this, ResId( BTN_HELP, *pResMgr ) ),
+ maNewName ( rClashingName )
+{
+ FreeResource();
+
+ Link aLink( LINK( this, NameClashDialog, ButtonHdl_Impl ) );
+ maBtnOverwrite.SetClickHdl( aLink );
+ maBtnRename.SetClickHdl( aLink );
+ maBtnCancel.SetClickHdl( aLink );
+
+ String aInfo;
+ if ( bAllowOverwrite )
+ {
+ aInfo = String( ResId( STR_RENAME_OR_REPLACE, *pResMgr ) );
+ }
+ else
+ {
+ aInfo = String( ResId( STR_NAME_CLASH_RENAME_ONLY, *pResMgr ) );
+ maBtnOverwrite.Hide();
+ }
+
+ rtl::OUString aPath;
+ if ( osl::FileBase::E_None != osl::FileBase::getSystemPathFromFileURL( rTargetFolderURL, aPath ) )
+ aPath = rTargetFolderURL;
+
+ maSameName = String ( ResId( STR_SAME_NAME_USED, *pResMgr ) );
+
+ aInfo.SearchAndReplaceAscii( "%NAME", rClashingName );
+ aInfo.SearchAndReplaceAscii( "%FOLDER", aPath );
+ maFTMessage.SetText( aInfo );
+ if ( rProposedNewName.getLength() )
+ maEDNewName.SetText( rProposedNewName );
+ else
+ maEDNewName.SetText( rClashingName );
+}
+
diff --git a/uui/source/passcrtdlg.hrc b/uui/source/nameclashdlg.hrc
index 5a999aa99209..1bfdc01de5ab 100644..100755
--- a/uui/source/passcrtdlg.hrc
+++ b/uui/source/nameclashdlg.hrc
@@ -25,19 +25,17 @@
*
************************************************************************/
-#ifndef UUI_PASSCRTDLG_HRC
-#define UUI_PASSCRTDLG_HRC
+#ifndef UUI_NAMECLASHDLG_HRC
+#define UUI_NAMECLASHDLG_HRC
-// local identifiers
-#define BTN_PASSCRT_CANCEL 1
-#define ED_PASSWORD_CRT 2
-#define FT_PASSWORD_REPEAT 3
-#define FT_PASSWORD_WARNING 4
-#define ED_PASSWORD_REPEAT 5
-#define FL_FIXED_LINE_1 6
-#define BTN_PASSCRT_OK 7
-#define BTN_PASSCRT_HELP 8
-#define FT_PASSWORD_CRT 9
-#define FT_MSPASSWORD_WARNING 10
+//============================================================================
+
+#define FT_FILE_EXISTS_WARNING 20
+#define EDIT_NEW_NAME 21
+#define BTN_OVERWRITE 22
+#define BTN_RENAME 23
+#define BTN_CANCEL 24
+#define BTN_HELP 25
+
+#endif // UUI_NAMECLASHDLG_HRC
-#endif // UUI_PASSCRTDLG_HRC
diff --git a/sfx2/source/appl/sfxdll.cxx b/uui/source/nameclashdlg.hxx
index 956a61b3e247..1e234008a229 100644..100755
--- a/sfx2/source/appl/sfxdll.cxx
+++ b/uui/source/nameclashdlg.hxx
@@ -25,45 +25,39 @@
*
************************************************************************/
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sfx2.hxx"
+#ifndef UUI_NAMECLASHDLG_HXX
+#define UUI_NAMECLASHDLG_HXX
-#ifdef WIN
-#include <svwin.h>
-#endif
+#include "vcl/button.hxx"
+#include "vcl/dialog.hxx"
+#include "vcl/fixed.hxx"
+#include "vcl/edit.hxx"
-#ifndef GCC
-#endif
+//============================================================================
-#ifdef WIN
+enum NameClashResolveDialogResult { ABORT, RENAME, OVERWRITE };
-// Statische DLL-Verwaltungs-Variablen
-static HINSTANCE hDLLInst = 0;
-
-//==========================================================================
-
-extern "C" int CALLBACK LibMain( HINSTANCE hDLL, WORD, WORD nHeap, LPSTR )
+class NameClashDialog : public ModalDialog
{
-#ifndef WNT
- if ( nHeap )
- UnlockData( 0 );
-#endif
-
- hDLLInst = hDLL;
-
- return TRUE;
-}
-
-
-//--------------------------------------------------------------------------
-
-extern "C" int CALLBACK WEP( int )
-{
- return 1;
-}
-
-
-//==========================================================================
-
-#endif
+ FixedText maFTMessage;
+ Edit maEDNewName;
+ PushButton maBtnOverwrite;
+ PushButton maBtnRename;
+ CancelButton maBtnCancel;
+ HelpButton maBtnHelp;
+ rtl::OUString maSameName;
+ rtl::OUString maNewName;
+
+ DECL_LINK( ButtonHdl_Impl, PushButton * );
+
+public:
+ NameClashDialog( Window* pParent, ResMgr* pResMgr,
+ rtl::OUString const & rTargetFolderURL,
+ rtl::OUString const & rClashingName,
+ rtl::OUString const & rProposedNewName,
+ bool bAllowOverwrite );
+ rtl::OUString getNewName() const { return maNewName; }
+};
+
+#endif // UUI_COOKIEDG_HXX
diff --git a/uui/source/nameclashdlg.src b/uui/source/nameclashdlg.src
new file mode 100755
index 000000000000..de8cdb8e716d
--- /dev/null
+++ b/uui/source/nameclashdlg.src
@@ -0,0 +1,113 @@
+/*************************************************************************
+ *
+ * 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.
+ *
+ ************************************************************************/
+
+#define __RSC
+
+#ifndef UUI_IDS_HRC
+#include "ids.hrc"
+#endif
+
+#ifndef UUI_NAMECLASHDLG_HRC
+#include "nameclashdlg.hrc"
+#endif
+
+#define DLG_WIDTH 250
+#define DLG_HEIGTH 75
+#define BORDER_OFFSET 6
+#define EDIT_HEIGTH 12
+#define BTN_WIDTH 50
+#define BTN_HEIGTH 14
+
+ModalDialog DLG_SIMPLE_NAME_CLASH
+{
+ HelpId = HID_DLG_SIMPLE_NAME_CLASH ;
+ OutputSize = TRUE ;
+ SVLook = TRUE ;
+ Size = MAP_APPFONT ( DLG_WIDTH , DLG_HEIGTH ) ;
+ Moveable = TRUE ;
+ Text [ en-US ] = "File Exists" ;
+
+ FixedText FT_FILE_EXISTS_WARNING
+ {
+ Pos = MAP_APPFONT ( BORDER_OFFSET, BORDER_OFFSET ) ;
+ Size = MAP_APPFONT ( DLG_WIDTH - 2*BORDER_OFFSET, DLG_HEIGTH - EDIT_HEIGTH - BTN_HEIGTH - 4*BORDER_OFFSET ) ;
+ WordBreak = TRUE ;
+ };
+
+ Edit EDIT_NEW_NAME
+ {
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( BORDER_OFFSET, DLG_HEIGTH - EDIT_HEIGTH - BTN_HEIGTH - 2*BORDER_OFFSET ) ;
+ Size = MAP_APPFONT ( DLG_WIDTH - 2*BORDER_OFFSET , EDIT_HEIGTH ) ;
+ };
+
+ PushButton BTN_OVERWRITE
+ {
+ Pos = MAP_APPFONT ( DLG_WIDTH - 3*(BTN_WIDTH + BORDER_OFFSET) , DLG_HEIGTH - BTN_HEIGTH - BORDER_OFFSET ) ;
+ Size = MAP_APPFONT ( BTN_WIDTH, BTN_HEIGTH ) ;
+ TabStop = TRUE ;
+ Text [ en-US ] = "Replace" ;
+ };
+
+ PushButton BTN_RENAME
+ {
+ Pos = MAP_APPFONT ( DLG_WIDTH - 2*(BTN_WIDTH + BORDER_OFFSET) , DLG_HEIGTH - BTN_HEIGTH - BORDER_OFFSET ) ;
+ Size = MAP_APPFONT ( BTN_WIDTH, BTN_HEIGTH ) ;
+ TabStop = TRUE ;
+ Text [ en-US ] = "Rename" ;
+ DefButton = TRUE ;
+ };
+
+ CancelButton BTN_CANCEL
+ {
+ Pos = MAP_APPFONT ( DLG_WIDTH - BTN_WIDTH - BORDER_OFFSET, DLG_HEIGTH - BTN_HEIGTH - BORDER_OFFSET ) ;
+ Size = MAP_APPFONT ( BTN_WIDTH, BTN_HEIGTH ) ;
+ TabStop = TRUE ;
+ };
+
+ HelpButton BTN_HELP
+ {
+ Pos = MAP_APPFONT ( BORDER_OFFSET, DLG_HEIGTH - BTN_HEIGTH - BORDER_OFFSET ) ;
+ Size = MAP_APPFONT ( BTN_WIDTH, BTN_HEIGTH ) ;
+ TabStop = TRUE ;
+ };
+};
+
+String STR_RENAME_OR_REPLACE
+{
+ Text = "A file with the name \"%NAME\" already exists in the location \"%FOLDER\".\nChoose Replace to overwrite the existing file or provide a new name.";
+};
+
+String STR_NAME_CLASH_RENAME_ONLY
+{
+ Text = "A file with the name \"%NAME\" already exists in the location \"%FOLDER\".\nPlease enter a new name.";
+};
+
+String STR_SAME_NAME_USED
+{
+ Text = "Please provide a different file name!";
+};
diff --git a/uui/source/passcrtdlg.cxx b/uui/source/passcrtdlg.cxx
deleted file mode 100644
index 1fc6024bcd19..000000000000
--- a/uui/source/passcrtdlg.cxx
+++ /dev/null
@@ -1,128 +0,0 @@
-/*************************************************************************
- *
- * 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.
- *
- ************************************************************************/
-
-#include <svtools/filedlg.hxx>
-#include <vcl/msgbox.hxx>
-
-#ifndef UUI_IDS_HRC
-#include <ids.hrc>
-#endif
-#ifndef UUI_PASSCRTDLG_HRC
-#include <passcrtdlg.hrc>
-#endif
-#include <passcrtdlg.hxx>
-
-// PasswordCreateDialog---------------------------------------------------
-
-// -----------------------------------------------------------------------
-
-IMPL_LINK( PasswordCreateDialog, EditHdl_Impl, Edit *, EMPTYARG )
-{
- aOKBtn.Enable( aEDPasswordCrt.GetText().Len() >= nMinLen );
- return 0;
-}
-
-// -----------------------------------------------------------------------
-
-IMPL_LINK( PasswordCreateDialog, OKHdl_Impl, OKButton *, EMPTYARG )
-{
- // compare both passwords and show message box if there are not equal!!
- if( aEDPasswordCrt.GetText() == aEDPasswordRepeat.GetText() )
- EndDialog( RET_OK );
- else
- {
- String aErrorMsg( ResId( STR_ERROR_PASSWORDS_NOT_IDENTICAL, *pResourceMgr ));
- ErrorBox aErrorBox( this, WB_OK, aErrorMsg );
- aErrorBox.Execute();
- aEDPasswordCrt.SetText( String() );
- aEDPasswordRepeat.SetText( String() );
- aEDPasswordCrt.GrabFocus();
- }
- return 1;
-}
-
-// -----------------------------------------------------------------------
-
-PasswordCreateDialog::PasswordCreateDialog( Window* _pParent, ResMgr * pResMgr, bool bMSCryptoMode)
- :ModalDialog( _pParent, ResId( DLG_UUI_PASSWORD_CRT, *pResMgr ) )
- ,aFTPasswordCrt ( this, ResId( FT_PASSWORD_CRT, *pResMgr ) )
- ,aEDPasswordCrt ( this, ResId( ED_PASSWORD_CRT, *pResMgr ) )
- ,aFTPasswordRepeat ( this, ResId( FT_PASSWORD_REPEAT, *pResMgr ) )
- ,aEDPasswordRepeat ( this, ResId( ED_PASSWORD_REPEAT, *pResMgr ) )
- ,aFTWarning ( this, ResId( bMSCryptoMode ? FT_MSPASSWORD_WARNING : FT_PASSWORD_WARNING, *pResMgr ) )
- ,aFixedLine1 ( this, ResId( FL_FIXED_LINE_1, *pResMgr ) )
- ,aOKBtn ( this, ResId( BTN_PASSCRT_OK, *pResMgr ) )
- ,aCancelBtn ( this, ResId( BTN_PASSCRT_CANCEL, *pResMgr ) )
- ,aHelpBtn ( this, ResId( BTN_PASSCRT_HELP, *pResMgr ) )
- ,pResourceMgr ( pResMgr )
- ,nMinLen(1) // if it should be changed for ODF, it must stay 1 for bMSCryptoMode
-{
- FreeResource();
-
- aOKBtn.SetClickHdl( LINK( this, PasswordCreateDialog, OKHdl_Impl ) );
- aEDPasswordCrt.SetModifyHdl( LINK( this, PasswordCreateDialog, EditHdl_Impl ) );
-
- aOKBtn.Enable( sal_False );
-
- if ( bMSCryptoMode )
- {
- aEDPasswordCrt.SetMaxTextLen( 15 );
- aEDPasswordRepeat.SetMaxTextLen( 15 );
- }
-
- long nLabelWidth = aFTWarning.GetSizePixel().Width();
- long nLabelHeight = aFTWarning.GetSizePixel().Height();
- long nTextWidth = aFTWarning.GetCtrlTextWidth( aFTWarning.GetText() );
- long nTextHeight = aFTWarning.GetTextHeight();
-
- Rectangle aLabelRect( aFTWarning.GetPosPixel(), aFTWarning.GetSizePixel() );
- Rectangle aRect = aFTWarning.GetTextRect( aLabelRect, aFTWarning.GetText() );
-
- long nNewLabelHeight = 0;
- for( nNewLabelHeight = ( nTextWidth / nLabelWidth + 1 ) * nTextHeight;
- nNewLabelHeight < aRect.GetHeight();
- nNewLabelHeight += nTextHeight ) {} ;
-
- long nDelta = nNewLabelHeight - nLabelHeight;
-
- Size aNewDlgSize = GetSizePixel();
- aNewDlgSize.Height() += nDelta;
- SetSizePixel( aNewDlgSize );
-
- Size aNewWarningSize = aFTWarning.GetSizePixel();
- aNewWarningSize.Height() = nNewLabelHeight;
- aFTWarning.SetPosSizePixel( aFTWarning.GetPosPixel(), aNewWarningSize );
-
- Window* pControls[] = { &aFixedLine1, &aOKBtn, &aCancelBtn, &aHelpBtn };
- const sal_Int32 nCCount = sizeof( pControls ) / sizeof( pControls[0] );
- for ( int i = 0; i < nCCount; ++i )
- {
- Point aNewPos =(*pControls[i]).GetPosPixel();
- aNewPos.Y() += nDelta;
- pControls[i]->SetPosSizePixel( aNewPos, pControls[i]->GetSizePixel() );
- }
-}
diff --git a/uui/source/passcrtdlg.hxx b/uui/source/passcrtdlg.hxx
deleted file mode 100644
index 8ad19c59924d..000000000000
--- a/uui/source/passcrtdlg.hxx
+++ /dev/null
@@ -1,63 +0,0 @@
-/*************************************************************************
- *
- * 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 UUI_PASSCRTDLG_HXX
-#define UUI_PASSCRTDLG_HXX
-
-#include <com/sun/star/task/PasswordRequestMode.hpp>
-#include <svtools/stdctrl.hxx>
-#include <vcl/dialog.hxx>
-#include <vcl/edit.hxx>
-#include <vcl/fixed.hxx>
-#include <vcl/button.hxx>
-
-//============================================================================
-class PasswordCreateDialog : public ModalDialog
-{
- FixedText aFTPasswordCrt;
- Edit aEDPasswordCrt;
- FixedText aFTPasswordRepeat;
- Edit aEDPasswordRepeat;
- FixedText aFTWarning;
- FixedLine aFixedLine1;
- OKButton aOKBtn;
- CancelButton aCancelBtn;
- HelpButton aHelpBtn;
-
- ResMgr* pResourceMgr;
- sal_uInt16 nMinLen;
-
- DECL_LINK( OKHdl_Impl, OKButton * );
- DECL_LINK( EditHdl_Impl, Edit * );
-
-public:
- PasswordCreateDialog( Window* pParent, ResMgr * pResMgr, bool bMSCryptoMode = false );
-
- String GetPassword() const { return aEDPasswordCrt.GetText(); }
-};
-
-#endif // UUI_PASSCRTDLG_HXX
diff --git a/uui/source/passcrtdlg.src b/uui/source/passcrtdlg.src
deleted file mode 100644
index a74752ed589e..000000000000
--- a/uui/source/passcrtdlg.src
+++ /dev/null
@@ -1,108 +0,0 @@
-/*************************************************************************
- *
- * 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.
- *
- ************************************************************************/
-
-#define __RSC
-
-#ifndef UUI_IDS_HRC
-#include <ids.hrc>
-#endif
-#ifndef UUI_PASSCRTDLG_HRC
-#include "passcrtdlg.hrc"
-#endif
-
-ModalDialog DLG_UUI_PASSWORD_CRT
-{
- HelpId = HID_DLG_PASSWORD_CRT ;
- Border = TRUE ;
- Moveable = TRUE ;
- OutputSize = TRUE ;
- SVLook = TRUE ;
- Size = MAP_APPFONT( 145, 129 );
- FixedText FT_PASSWORD_CRT
- {
- Pos = MAP_APPFONT( 3, 4 );
- Size = MAP_APPFONT( 139, 9 );
- Text [ en-US ] = "Enter password";
- };
- Edit ED_PASSWORD_CRT
- {
- Border = TRUE ;
- Pos = MAP_APPFONT( 3, 17 );
- Size = MAP_APPFONT( 139, 13 );
- PassWord = TRUE ;
- };
- Edit ED_PASSWORD_REPEAT
- {
- Border = TRUE ;
- Pos = MAP_APPFONT( 3, 47 );
- Size = MAP_APPFONT( 139, 13 );
- PassWord = TRUE ;
- };
- OKButton BTN_PASSCRT_OK
- {
- Pos = MAP_APPFONT( 27, 110 );
- Size = MAP_APPFONT( 37, 15 );
- DefButton = TRUE ;
- };
- CancelButton BTN_PASSCRT_CANCEL
- {
- Pos = MAP_APPFONT( 66, 110 );
- Size = MAP_APPFONT( 37, 15 );
- };
- HelpButton BTN_PASSCRT_HELP
- {
- Pos = MAP_APPFONT( 105, 110 );
- Size = MAP_APPFONT( 37, 15 );
- };
- FixedText FT_PASSWORD_REPEAT
- {
- Pos = MAP_APPFONT( 3, 34 );
- Size = MAP_APPFONT( 139, 9 );
- Text [ en-US ] = "Reenter password";
- };
- FixedText FT_PASSWORD_WARNING
- {
- Pos = MAP_APPFONT( 4, 64 );
- Size = MAP_APPFONT( 137, 40 );
- Text [ en-US ] = "WARNING: If you lose or forget the password, it cannot be recovered. It is advisable to keep passwords in a safe place. Passwords are case-sensitive.";
- WordBreak = TRUE;
- };
- FixedText FT_MSPASSWORD_WARNING
- {
- Pos = MAP_APPFONT( 4, 64 );
- Size = MAP_APPFONT( 137, 40 );
- Text [ en-US ] = "WARNING: If you lose or forget the password, it cannot be recovered. It is advisable to keep passwords in a safe place. Passwords are case-sensitive and at most fifteen characters long.";
- WordBreak = TRUE;
- };
- FixedLine FL_FIXED_LINE_1
- {
- Pos = MAP_APPFONT( 0, 104 );
- Size = MAP_APPFONT( 145, 6 );
- };
- Text [ en-US ] = "Enter Password";
-};
-