dba33d: merge with DEV300_m67

This commit is contained in:
Ocke Janssen [oj] 2009-12-10 07:40:02 +01:00
commit 1e078f5ee6
401 changed files with 22734 additions and 2217 deletions

View File

@ -100,8 +100,6 @@ Player::Player( const uno::Reference< lang::XMultiServiceFactory >& rxMgr ) :
if ((result == noErr) && (mnVersion >= QT701))
{
// we have version 7.01 or later, initialize
mpMovie = [QTMovie movie];
[mpMovie retain];
mbInitialized = true;
}
[pool release];
@ -111,43 +109,57 @@ Player::Player( const uno::Reference< lang::XMultiServiceFactory >& rxMgr ) :
Player::~Player()
{
if( mbInitialized )
{
if( mpMovie )
{
[mpMovie release];
mpMovie = nil;
}
}
}
// ------------------------------------------------------------------------------
QTMovie* Player::getMovie()
{
OSL_ASSERT( mpMovie );
return mpMovie;
}
// ------------------------------------------------------------------------------
bool Player::create( const ::rtl::OUString& rURL )
{
bool bRet = false;
NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
NSString* aNSStr = [[[NSString alloc] initWithCharacters: rURL.getStr() length: rURL.getLength()]stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding] ;
// NSString * aNSStringEscaped = [aNSStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL* aURL = [NSURL URLWithString:aNSStr ];
// create the Movie
if( mbInitialized )
{
NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
mpMovie = [mpMovie initWithURL:aURL error:nil];
if( mpMovie )
{
[mpMovie release];
mpMovie = nil;
}
NSString* aNSStr = [[[NSString alloc] initWithCharacters: rURL.getStr() length: rURL.getLength()]stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding] ;
NSURL* aURL = [NSURL URLWithString:aNSStr ];
NSError* pErr = nil;
mpMovie = [QTMovie movieWithURL:aURL error:&pErr];
if(mpMovie)
{
[mpMovie retain];
maURL = rURL;
bRet = true;
}
if( pErr )
{
OSL_TRACE( "NSMovie create failed with error %ld (%s)",
(long)[pErr code],
[[pErr localizedDescription] cString]
);
}
[pool release];
}
return bRet;
}
@ -159,7 +171,7 @@ void SAL_CALL Player::start( )
{
OSL_TRACE ("Player::start");
if ( mbInitialized && mpMovie )
if( mpMovie )
{
[mpMovie play];
}
@ -171,11 +183,10 @@ void SAL_CALL Player::stop( )
throw (uno::RuntimeException)
{
OSL_TRACE ("Player::stop");
if ( mpMovie )
if( mpMovie )
{
[mpMovie stop];
}
}
// ------------------------------------------------------------------------------
@ -185,7 +196,7 @@ sal_Bool SAL_CALL Player::isPlaying()
{
bool bRet = false;
if ( mbInitialized )
if ( mpMovie )
{
if ([mpMovie rate] != 0)
{
@ -244,7 +255,6 @@ double SAL_CALL Player::getMediaTime( )
stop();
}
return position;
}
@ -256,7 +266,6 @@ void SAL_CALL Player::setStopTime( double fTime )
OSL_TRACE ("Player::setStopTime %f", fTime);
mnStopTime = fTime;
}
// ------------------------------------------------------------------------------
@ -264,9 +273,7 @@ void SAL_CALL Player::setStopTime( double fTime )
double SAL_CALL Player::getStopTime( )
throw (uno::RuntimeException)
{
double fRet = 0.0;
fRet = mnStopTime;
double fRet = mnStopTime;
return fRet;
}

View File

@ -83,7 +83,7 @@ public:
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);
QTMovie* getMovie() { return mpMovie; }
QTMovie* getMovie();
private:
::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > mxMgr;

View File

@ -147,9 +147,9 @@ void MediaWindowBaseImpl::stopPlayingInternal( bool bStop )
if( isPlaying() )
{
if( bStop )
mxPlayer->start();
else
mxPlayer->stop();
else
mxPlayer->start();
}
}

View File

@ -231,6 +231,8 @@ public:
::com::sun::star::uno::Any
SetGlobalUNOConstant( const sal_Char* _pAsciiName, const ::com::sun::star::uno::Any& _rValue );
/** retrieves a global constant in the basic library, referring to some UNO object, returns true if a value is found ( value is in aOut ) false otherwise. */
bool GetGlobalUNOConstant( const sal_Char* _pAsciiName, ::com::sun::star::uno::Any& aOut );
/** determines whether there are password-protected modules whose size exceedes the
legacy module size
@param _out_rModuleNames

View File

@ -74,6 +74,11 @@ class StarBASIC : public SbxObject
BOOL bDocBasic;
BasicLibInfo* pLibInfo; // Info block for basic manager
SbLanguageMode eLanguageMode; // LanguageMode of the basic object
BOOL bQuit;
SbxObjectRef pVBAGlobals;
SbxObject* getVBAGlobals( );
protected:
BOOL CError( SbError, const String&, xub_StrLen, xub_StrLen, xub_StrLen );
private:
@ -196,6 +201,10 @@ public:
SbxObjectRef getRTL( void ) { return pRtl; }
BOOL IsDocBasic() { return bDocBasic; }
SbxVariable* VBAFind( const String& rName, SbxClassType t );
bool GetUNOConstant( const sal_Char* _pAsciiName, ::com::sun::star::uno::Any& aOut );
void QuitAndExitApplication();
BOOL IsQuitApplication() { return bQuit; };
};
#ifndef __SB_SBSTARBASICREF_HXX

View File

@ -47,6 +47,7 @@
#include <basic/sbuno.hxx>
#include <basic/basmgr.hxx>
#include <sbunoobj.hxx>
#include "basrid.hxx"
#include "sbintern.hxx"
#include <sb.hrc>
@ -1767,6 +1768,15 @@ BasicError* BasicManager::GetNextError()
DBG_CHKTHIS( BasicManager, 0 );
return pErrorMgr->GetNextError();
}
bool BasicManager::GetGlobalUNOConstant( const sal_Char* _pAsciiName, ::com::sun::star::uno::Any& aOut )
{
bool bRes = false;
StarBASIC* pStandardLib = GetStdLib();
OSL_PRECOND( pStandardLib, "BasicManager::SetGlobalUNOConstant: no lib to insert into!" );
if ( pStandardLib )
bRes = pStandardLib->GetUNOConstant( _pAsciiName, aOut );
return bRes;
}
Any BasicManager::SetGlobalUNOConstant( const sal_Char* _pAsciiName, const Any& _rValue )
{

View File

@ -95,53 +95,48 @@ Any sbxToUnoValue( SbxVariable* pVar );
Reference< frame::XModel > getModelFromBasic( SbxObject* pBasic )
{
Reference< frame::XModel > xModel;
OSL_PRECOND( pBasic != NULL, "getModelFromBasic: illegal call!" );
if ( !pBasic )
return NULL;
SbxObject* basicChosen = pBasic;
// look for the ThisComponent variable, first in the parent (which
// might be the document's Basic), then in the parent's parent (which might be
// the application Basic)
const ::rtl::OUString sThisComponent( RTL_CONSTASCII_USTRINGPARAM( "ThisComponent" ) );
SbxVariable* pThisComponent = NULL;
if ( basicChosen == NULL)
SbxObject* pLookup = pBasic->GetParent();
while ( pLookup && !pThisComponent )
{
OSL_TRACE("getModelFromBasic() StarBASIC* is NULL" );
return xModel;
pThisComponent = pLookup->Find( sThisComponent, SbxCLASS_OBJECT );
pLookup = pLookup->GetParent();
}
SbxObject* p = pBasic;
SbxObject* pParent = p->GetParent();
SbxObject* pParentParent = pParent ? pParent->GetParent() : NULL;
if( pParentParent )
if ( !pThisComponent )
{
basicChosen = pParentParent;
}
else if( pParent )
{
basicChosen = pParent;
OSL_TRACE("Failed to get ThisComponent");
// the application Basic, at the latest, should have this variable
return NULL;
}
Any aModel;
SbxVariable *pCompVar = basicChosen->Find( UniString(RTL_CONSTASCII_USTRINGPARAM("ThisComponent")), SbxCLASS_OBJECT );
if ( pCompVar )
Any aThisComponent( sbxToUnoValue( pThisComponent ) );
Reference< frame::XModel > xModel( aThisComponent, UNO_QUERY );
if ( !xModel.is() )
{
aModel = sbxToUnoValue( pCompVar );
if ( sal_False == ( aModel >>= xModel ) ||
!xModel.is() )
{
OSL_TRACE("Failed to extract model from thisComponent ");
return xModel;
// it's no XModel. Okay, ThisComponent nowadays is allowed to be a controller.
Reference< frame::XController > xController( aThisComponent, UNO_QUERY );
if ( xController.is() )
xModel = xController->getModel();
}
else
{
if ( !xModel.is() )
return NULL;
#if OSL_DEBUG_LEVEL > 0
OSL_TRACE("Have model ThisComponent points to url %s",
::rtl::OUStringToOString( xModel->getURL(),
RTL_TEXTENCODING_ASCII_US ).pData->buffer );
#endif
}
}
else
{
OSL_TRACE("Failed to get ThisComponent");
}
return xModel;
}

View File

@ -65,7 +65,29 @@ SV_IMPL_VARARR(SbTextPortions,SbTextPortion)
TYPEINIT1(StarBASIC,SbxObject)
#define RTLNAME "@SBRTL"
// i#i68894#
const static String aThisComponent( RTL_CONSTASCII_USTRINGPARAM("ThisComponent") );
const static String aVBAHook( RTL_CONSTASCII_USTRINGPARAM( "VBAGlobals" ) );
SbxObject* StarBASIC::getVBAGlobals( )
{
if ( !pVBAGlobals )
pVBAGlobals = (SbUnoObject*)Find( aVBAHook , SbxCLASS_DONTCARE );
return pVBAGlobals;
}
// i#i68894#
SbxVariable* StarBASIC::VBAFind( const String& rName, SbxClassType t )
{
if( rName == aThisComponent )
return NULL;
// rename to init globals
if ( getVBAGlobals( ) )
return pVBAGlobals->Find( rName, t );
return NULL;
}
// Create array for conversion SFX <-> VB error code
struct SFX_VB_ErrorItem
{
@ -681,6 +703,8 @@ StarBASIC::StarBASIC( StarBASIC* p, BOOL bIsDocBasic )
pRtl = new SbiStdObject( String( RTL_CONSTASCII_USTRINGPARAM(RTLNAME) ), this );
// Search via StarBasic is always global
SetFlag( SBX_GBLSEARCH );
pVBAGlobals = NULL;
bQuit = FALSE;
}
// #51727 Override SetModified so that the modified state
@ -995,6 +1019,12 @@ SbxVariable* StarBASIC::FindVarInCurrentScopy
return pVar;
}
void StarBASIC::QuitAndExitApplication()
{
Stop();
bQuit = TRUE;
}
void StarBASIC::Stop()
{
SbiInstance* p = pINST;
@ -1533,6 +1563,18 @@ BOOL StarBASIC::LoadOldModules( SvStream& )
return FALSE;
}
bool StarBASIC::GetUNOConstant( const sal_Char* _pAsciiName, ::com::sun::star::uno::Any& aOut )
{
bool bRes = false;
::rtl::OUString sVarName( ::rtl::OUString::createFromAscii( _pAsciiName ) );
SbUnoObject* pGlobs = dynamic_cast<SbUnoObject*>( Find( sVarName, SbxCLASS_DONTCARE ) );
if ( pGlobs )
{
aOut = pGlobs->getUnoAny();
bRes = true;
}
return bRes;
}
//========================================================================
// #118116 Implementation Collection object

View File

@ -69,6 +69,11 @@
#endif
#include <stdio.h>
#include <com/sun/star/frame/XDesktop.hpp>
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <comphelper/processfactory.hxx>
#include <vcl/svapp.hxx>
using namespace ::com::sun::star;
TYPEINIT1(SbModule,SbxObject)
@ -84,7 +89,63 @@ SV_IMPL_VARARR(SbiBreakpoints,USHORT)
SV_IMPL_VARARR(HighlightPortions, HighlightPortion)
class AsyncQuitHandler
{
AsyncQuitHandler() {}
AsyncQuitHandler( const AsyncQuitHandler&);
public:
static AsyncQuitHandler& instance()
{
static AsyncQuitHandler dInst;
return dInst;
}
void QuitApplication()
{
uno::Reference< lang::XMultiServiceFactory > xFactory = comphelper::getProcessServiceFactory();
if ( xFactory.is() )
{
uno::Reference< frame::XDesktop > xDeskTop( xFactory->createInstance( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.frame.Desktop") ) ), uno::UNO_QUERY );
if ( xDeskTop.is() )
xDeskTop->terminate();
}
}
DECL_LINK( OnAsyncQuit, void* );
};
IMPL_LINK( AsyncQuitHandler, OnAsyncQuit, void*, /*pNull*/ )
{
QuitApplication();
return 0L;
}
#if 0
bool UnlockControllerHack( StarBASIC* pBasic )
{
bool bRes = false;
if ( pBasic && pBasic->IsDocBasic() )
{
uno::Any aUnoVar;
::rtl::OUString sVarName( ::rtl::OUString::createFromAscii( "ThisComponent" ) );
SbUnoObject* pGlobs = dynamic_cast<SbUnoObject*>( pBasic->Find( sVarName, SbxCLASS_DONTCARE ) );
if ( pGlobs )
aUnoVar = pGlobs->getUnoAny();
uno::Reference< frame::XModel > xModel( aUnoVar, uno::UNO_QUERY);
if ( xModel.is() )
{
try
{
xModel->unlockControllers();
bRes = true;
}
catch( uno::Exception& )
{
}
}
}
return bRes;
}
#endif
/////////////////////////////////////////////////////////////////////////////
// Ein BASIC-Modul hat EXTSEARCH gesetzt, damit die im Modul enthaltenen
@ -696,6 +757,13 @@ USHORT SbModule::Run( SbMethod* pMeth )
pINST->nCallLvl--; // Call-Level wieder runter
StarBASIC::FatalError( SbERR_STACK_OVERFLOW );
}
// VBA always ensure screenupdating is enabled after completing
StarBASIC* pBasic = PTR_CAST(StarBASIC,GetParent());
#if 0
if ( pBasic && pBasic->IsDocBasic() && !pINST )
UnlockControllerHack( pBasic );
#endif
if( bDelInst )
{
// #57841 Uno-Objekte, die in RTL-Funktionen gehalten werden,
@ -705,6 +773,11 @@ USHORT SbModule::Run( SbMethod* pMeth )
delete pINST;
pINST = NULL;
}
if ( pBasic && pBasic->IsDocBasic() && pBasic->IsQuitApplication() && !pINST )
{
Application::PostUserEvent( LINK( &AsyncQuitHandler::instance(), AsyncQuitHandler, OnAsyncQuit ), NULL );
}
return nRes;
}

View File

@ -56,57 +56,6 @@ using com::sun::star::uno::Reference;
SbxVariable* getVBAConstant( const String& rName );
const static String aThisComponent( RTL_CONSTASCII_USTRINGPARAM("ThisComponent") );
const static String aVBAHook( RTL_CONSTASCII_USTRINGPARAM( "VBAGlobals" ) );
// i#i68894#
SbxArray* getVBAGlobals( )
{
static SbxArrayRef pArray;
static bool isInitialised = false;
if ( isInitialised )
return pArray;
Reference < XComponentContext > xCtx;
Reference < XPropertySet > xProps(
::comphelper::getProcessServiceFactory(), UNO_QUERY_THROW );
xCtx.set( xProps->getPropertyValue( rtl::OUString(
RTL_CONSTASCII_USTRINGPARAM( "DefaultContext" ))),
UNO_QUERY_THROW );
SbUnoObject dGlobs( String( RTL_CONSTASCII_USTRINGPARAM("ExcelGlobals") ), xCtx->getValueByName( ::rtl::OUString::createFromAscii( "/singletons/ooo.vba.theGlobals") ) );
SbxVariable *vba = dGlobs.Find( String( RTL_CONSTASCII_USTRINGPARAM("getGlobals") ) , SbxCLASS_DONTCARE );
if ( vba )
{
pArray = static_cast<SbxArray *>(vba->GetObject());
isInitialised = true;
return pArray;
}
return NULL;
}
// i#i68894#
SbxVariable* VBAFind( const String& rName, SbxClassType t )
{
if( rName == aThisComponent )
return NULL;
SbxArray *pVBAGlobals = getVBAGlobals( );
for (USHORT i = 0; pVBAGlobals && i < pVBAGlobals->Count(); i++)
{
SbxVariable *pElem = pVBAGlobals->Get( i );
if (!pElem || !pElem->IsObject())
continue;
SbxObject *pVba = static_cast<SbxObject *>(pElem->GetObject());
SbxVariable *pVbaVar = pVba ? pVba->Find( rName, t ) : NULL;
if( pVbaVar )
{
return pVbaVar;
}
}
return NULL;
}
// Suchen eines Elements
// Die Bits im String-ID:
// 0x8000 - Argv ist belegt
@ -191,7 +140,7 @@ SbxVariable* SbiRuntime::FindElement
if ( bVBAEnabled )
{
// Try Find in VBA symbols space
pElem = VBAFind( aName, SbxCLASS_DONTCARE );
pElem = rBasic.VBAFind( aName, SbxCLASS_DONTCARE );
if ( pElem )
bSetName = false; // don't overwrite uno name
else

View File

@ -44,9 +44,15 @@
#include <com/sun/star/util/Time.hpp>
#include <com/sun/star/uno/Sequence.hxx>
#include <com/sun/star/sdbc/XRow.hpp>
#include <com/sun/star/sdb/XColumn.hpp>
namespace connectivity
{
namespace detail
{
class IValueSource;
}
class OOO_DLLPUBLIC_DBTOOLS ORowSetValue
{
union
@ -361,6 +367,12 @@ namespace connectivity
const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRow>& _xRow);
void fill(const ::com::sun::star::uno::Any& _rValue);
void fill( const sal_Int32 _nType,
const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _rxColumn );
private:
void impl_fill( const sal_Int32 _nType, sal_Bool _bNullable, const detail::IValueSource& _rValueSource );
};
/// ORowSetValueDecorator decorates a ORowSetValue so the value is "refcounted"

View File

@ -65,7 +65,8 @@ public class DbaseDatabase extends AbstractDatabase
private void createDBDocument() throws Exception
{
final File documentFile = File.createTempFile("dbase", ".odb");
documentFile.deleteOnExit();
if ( documentFile.exists() )
documentFile.delete();
final File subPath = new File(documentFile.getParent() + File.separator + documentFile.getName().replaceAll(".odb", "") + File.separator );
subPath.mkdir();
//subPath.deleteOnExit();

View File

@ -72,7 +72,8 @@ public class HsqlDatabase extends AbstractDatabase
private void createDBDocument() throws Exception
{
final File documentFile = File.createTempFile("testdb", ".odb");
documentFile.deleteOnExit();
if ( documentFile.exists() )
documentFile.delete();
m_databaseDocumentFile = URLHelper.getFileURLFromSystemPath(documentFile);
m_databaseDocument = (XOfficeDatabaseDocument) UnoRuntime.queryInterface(

View File

@ -40,13 +40,16 @@
#include <rtl/ustrbuf.hxx>
#include <rtl/logfile.hxx>
using namespace connectivity;
using namespace dbtools;
using namespace ::dbtools;
using namespace ::com::sun::star::sdbc;
using namespace ::com::sun::star::sdb;
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::util;
using namespace ::com::sun::star::io;
namespace connectivity
{
namespace {
static sal_Bool isStorageCompatible(sal_Int32 _eType1, sal_Int32 _eType2)
{
@ -1897,6 +1900,107 @@ void ORowSetValue::setSigned(sal_Bool _bMod)
}
}
}
// -----------------------------------------------------------------------------
namespace detail
{
class SAL_NO_VTABLE IValueSource
{
public:
virtual ::rtl::OUString getString() const = 0;
virtual sal_Bool getBoolean() const = 0;
virtual sal_Int8 getByte() const = 0;
virtual sal_Int16 getShort() const = 0;
virtual sal_Int32 getInt() const = 0;
virtual sal_Int64 getLong() const = 0;
virtual float getFloat() const = 0;
virtual double getDouble() const = 0;
virtual Date getDate() const = 0;
virtual Time getTime() const = 0;
virtual DateTime getTimestamp() const = 0;
virtual Sequence< sal_Int8 > getBytes() const = 0;
virtual Reference< XInputStream > getBinaryStream() const = 0;
virtual Reference< XInputStream > getCharacterStream() const = 0;
virtual sal_Bool wasNull() const = 0;
virtual ~IValueSource() { }
};
class RowValue : public IValueSource
{
public:
RowValue( const Reference< XRow >& _xRow, const sal_Int32 _nPos )
:m_xRow( _xRow )
,m_nPos( _nPos )
{
}
// IValueSource
virtual ::rtl::OUString getString() const { return m_xRow->getString( m_nPos ); };
virtual sal_Bool getBoolean() const { return m_xRow->getBoolean( m_nPos ); };
virtual sal_Int8 getByte() const { return m_xRow->getByte( m_nPos ); };
virtual sal_Int16 getShort() const { return m_xRow->getShort( m_nPos ); }
virtual sal_Int32 getInt() const { return m_xRow->getInt( m_nPos ); }
virtual sal_Int64 getLong() const { return m_xRow->getLong( m_nPos ); }
virtual float getFloat() const { return m_xRow->getFloat( m_nPos ); };
virtual double getDouble() const { return m_xRow->getDouble( m_nPos ); };
virtual Date getDate() const { return m_xRow->getDate( m_nPos ); };
virtual Time getTime() const { return m_xRow->getTime( m_nPos ); };
virtual DateTime getTimestamp() const { return m_xRow->getTimestamp( m_nPos ); };
virtual Sequence< sal_Int8 > getBytes() const { return m_xRow->getBytes( m_nPos ); };
virtual Reference< XInputStream > getBinaryStream() const { return m_xRow->getBinaryStream( m_nPos ); };
virtual Reference< XInputStream > getCharacterStream() const { return m_xRow->getCharacterStream( m_nPos ); };
virtual sal_Bool wasNull() const { return m_xRow->wasNull( ); };
private:
const Reference< XRow > m_xRow;
const sal_Int32 m_nPos;
};
class ColumnValue : public IValueSource
{
public:
ColumnValue( const Reference< XColumn >& _rxColumn )
:m_xColumn( _rxColumn )
{
}
// IValueSource
virtual ::rtl::OUString getString() const { return m_xColumn->getString(); };
virtual sal_Bool getBoolean() const { return m_xColumn->getBoolean(); };
virtual sal_Int8 getByte() const { return m_xColumn->getByte(); };
virtual sal_Int16 getShort() const { return m_xColumn->getShort(); }
virtual sal_Int32 getInt() const { return m_xColumn->getInt(); }
virtual sal_Int64 getLong() const { return m_xColumn->getLong(); }
virtual float getFloat() const { return m_xColumn->getFloat(); };
virtual double getDouble() const { return m_xColumn->getDouble(); };
virtual Date getDate() const { return m_xColumn->getDate(); };
virtual Time getTime() const { return m_xColumn->getTime(); };
virtual DateTime getTimestamp() const { return m_xColumn->getTimestamp(); };
virtual Sequence< sal_Int8 > getBytes() const { return m_xColumn->getBytes(); };
virtual Reference< XInputStream > getBinaryStream() const { return m_xColumn->getBinaryStream(); };
virtual Reference< XInputStream > getCharacterStream() const { return m_xColumn->getCharacterStream(); };
virtual sal_Bool wasNull() const { return m_xColumn->wasNull( ); };
private:
const Reference< XColumn > m_xColumn;
};
}
// -----------------------------------------------------------------------------
void ORowSetValue::fill( const sal_Int32 _nType, const Reference< XColumn >& _rxColumn )
{
detail::ColumnValue aColumnValue( _rxColumn );
impl_fill( _nType, sal_True, aColumnValue );
}
// -----------------------------------------------------------------------------
void ORowSetValue::fill( sal_Int32 _nPos, sal_Int32 _nType, sal_Bool _bNullable, const Reference< XRow>& _xRow )
{
detail::RowValue aRowValue( _xRow, _nPos );
impl_fill( _nType, _bNullable, aRowValue );
}
// -----------------------------------------------------------------------------
void ORowSetValue::fill(sal_Int32 _nPos,
sal_Int32 _nType,
@ -1907,10 +2011,8 @@ void ORowSetValue::fill(sal_Int32 _nPos,
}
// -----------------------------------------------------------------------------
void ORowSetValue::fill(sal_Int32 _nPos,
sal_Int32 _nType,
sal_Bool _bNullable,
const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRow>& _xRow)
void ORowSetValue::impl_fill( const sal_Int32 _nType, sal_Bool _bNullable, const detail::IValueSource& _rValueSource )
{
RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbtools", "Ocke.Janssen@sun.com", "ORowSetValue::fill (2)" );
sal_Bool bReadData = sal_True;
@ -1921,63 +2023,71 @@ void ORowSetValue::fill(sal_Int32 _nPos,
case DataType::DECIMAL:
case DataType::NUMERIC:
case DataType::LONGVARCHAR:
(*this) = _xRow->getString(_nPos);
(*this) = _rValueSource.getString();
break;
case DataType::BIGINT:
if ( isSigned() )
(*this) = _xRow->getLong(_nPos);
(*this) = _rValueSource.getLong();
else
(*this) = _xRow->getString(_nPos);
(*this) = _rValueSource.getString();
break;
case DataType::FLOAT:
(*this) = _xRow->getFloat(_nPos);
(*this) = _rValueSource.getFloat();
break;
case DataType::DOUBLE:
case DataType::REAL:
(*this) = _xRow->getDouble(_nPos);
(*this) = _rValueSource.getDouble();
break;
case DataType::DATE:
(*this) = _xRow->getDate(_nPos);
(*this) = _rValueSource.getDate();
break;
case DataType::TIME:
(*this) = _xRow->getTime(_nPos);
(*this) = _rValueSource.getTime();
break;
case DataType::TIMESTAMP:
(*this) = _xRow->getTimestamp(_nPos);
(*this) = _rValueSource.getTimestamp();
break;
case DataType::BINARY:
case DataType::VARBINARY:
case DataType::LONGVARBINARY:
(*this) = _xRow->getBytes(_nPos);
(*this) = _rValueSource.getBytes();
break;
case DataType::BIT:
case DataType::BOOLEAN:
(*this) = _xRow->getBoolean(_nPos);
(*this) = _rValueSource.getBoolean();
break;
case DataType::TINYINT:
if ( isSigned() )
(*this) = _xRow->getByte(_nPos);
(*this) = _rValueSource.getByte();
else
(*this) = _xRow->getShort(_nPos);
(*this) = _rValueSource.getShort();
break;
case DataType::SMALLINT:
if ( isSigned() )
(*this) = _xRow->getShort(_nPos);
(*this) = _rValueSource.getShort();
else
(*this) = _xRow->getInt(_nPos);
(*this) = _rValueSource.getInt();
break;
case DataType::INTEGER:
if ( isSigned() )
(*this) = _xRow->getInt(_nPos);
(*this) = _rValueSource.getInt();
else
(*this) = _xRow->getLong(_nPos);
(*this) = _rValueSource.getLong();
break;
case DataType::CLOB:
<<<<<<< local
(*this) = ::com::sun::star::uno::makeAny(_xRow->getClob(_nPos));
=======
(*this) = ::com::sun::star::uno::makeAny(_rValueSource.getCharacterStream());
>>>>>>> other
setTypeKind(DataType::CLOB);
break;
case DataType::BLOB:
<<<<<<< local
(*this) = ::com::sun::star::uno::makeAny(_xRow->getBlob(_nPos));
=======
(*this) = ::com::sun::star::uno::makeAny(_rValueSource.getBinaryStream());
>>>>>>> other
setTypeKind(DataType::BLOB);
break;
case DataType::OTHER:
@ -1989,7 +2099,7 @@ void ORowSetValue::fill(sal_Int32 _nPos,
bReadData = false;
break;
}
if ( bReadData && _bNullable && _xRow->wasNull() )
if ( bReadData && _bNullable && _rValueSource.wasNull() )
setNull();
setTypeKind(_nType);
}
@ -2158,3 +2268,5 @@ void ORowSetValue::fill(const Any& _rValue)
break;
}
}
} // namespace connectivity

View File

@ -145,6 +145,7 @@ Reference< XResultSet > SAL_CALL ODatabaseMetaDataBase::getTypeInfo( ) throw(SQ
}
}
::connectivity::ODatabaseMetaDataResultSet::ORows aTypeInfoRows;
while( xRet->next() )
{
::connectivity::ODatabaseMetaDataResultSet::ORow aRow;
@ -169,8 +170,9 @@ Reference< XResultSet > SAL_CALL ODatabaseMetaDataBase::getTypeInfo( ) throw(SQ
else
++aIter;
}
m_aTypeInfoRows.push_back(aRow);
aTypeInfoRows.push_back(aRow);
}
m_aTypeInfoRows = aTypeInfoRows;
}
}
::connectivity::ODatabaseMetaDataResultSet* pResult = new ::connectivity::ODatabaseMetaDataResultSet(::connectivity::ODatabaseMetaDataResultSet::eTypeInfo);

View File

@ -152,7 +152,6 @@ namespace connectivity
// Vorzeitiger Abbruch der Schleife moeglich, denn
// wir haben, was wir wollten.
nStartPos = i+1;
*pData = 0;
break;
}
else
@ -161,6 +160,7 @@ namespace connectivity
}
}
} // for( xub_StrLen i = nStartPos; i < nLen; ++i )
*pData = 0;
_rStr.ReleaseBufferAccess(xub_StrLen(pData - pStart));
}
}

View File

@ -55,6 +55,7 @@
#include <connectivity/dbexception.hxx>
#include <comphelper/namedvaluecollection.hxx>
#include <unotools/confignode.hxx>
#include <unotools/ucbstreamhelper.hxx>
#include "resource/hsqldb_res.hrc"
#include "resource/sharedresources.hxx"
@ -70,6 +71,8 @@ namespace connectivity
using namespace ::com::sun::star::frame;
using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::embed;
using namespace ::com::sun::star::io;
using namespace ::com::sun::star::task;
using namespace ::com::sun::star::reflection;
namespace hsqldb
@ -260,6 +263,50 @@ namespace connectivity
);
aProperties.put( "SystemProperties", Sequence< NamedValue >( &aPermittedClasses, 1 ) );
const ::rtl::OUString sProperties( RTL_CONSTASCII_USTRINGPARAM( "properties" ) );
::rtl::OUString sMessage;
try
{
if ( !bIsNewDatabase && xStorage->isStreamElement(sProperties) )
{
Reference<XStream > xStream = xStorage->openStreamElement(sProperties,ElementModes::READ);
if ( xStream.is() )
{
::std::auto_ptr<SvStream> pStream( ::utl::UcbStreamHelper::CreateStream(xStream) );
if ( pStream.get() )
{
ByteString sLine;
while ( pStream->ReadLine(sLine) )
{
if ( sLine.Equals("version=",0,sizeof("version=")-1) )
{
sLine = sLine.GetToken(1,'=');
const sal_Int32 nMajor = sLine.GetToken(0,'.').ToInt32();
const sal_Int32 nMinor = sLine.GetToken(1,'.').ToInt32();
const sal_Int32 nMicro = sLine.GetToken(2,'.').ToInt32();
if ( nMajor > 1
|| ( nMajor == 1 && nMinor > 8 )
|| ( nMajor == 1 && nMinor == 8 && nMicro > 0 ) )
{
::connectivity::SharedResources aResources;
sMessage = aResources.getResourceString(STR_ERROR_NEW_VERSION);
}
break;
}
}
}
} // if ( xStream.is() )
::comphelper::disposeComponent(xStream);
}
}
catch(Exception&)
{
}
if ( sMessage.getLength() )
{
::dbtools::throwGenericSQLException(sMessage ,*this);
}
// readonly?
Reference<XPropertySet> xProp(xStorage,UNO_QUERY);
if ( xProp.is() )

View File

@ -102,6 +102,7 @@ SHL1STDLIBS=\
$(DBTOOLSLIB) \
$(JVMFWKLIB) \
$(COMPHELPERLIB) \
$(TOOLSLIB) \
$(UNOTOOLSLIB)

View File

@ -30,37 +30,35 @@
#*************************************************************************
CALL_CDECL=TRUE
#mozilla specific stuff.
MOZ_LIB=$(SOLARVERSION)$/$(INPATH)$/lib$(UPDMINOREXT)
MOZ_INC=$(SOLARVERSION)$/$(INPATH)$/inc$(UPDMINOREXT)$/mozilla
#End of mozilla specific stuff.
PRJ=..$/..$/..$/..
PRJINC=..$/..$/..
PRJNAME=connectivity
TARGET=mozbootstrap
USE_DEFFILE=TRUE
ENABLE_EXCEPTIONS=TRUE
VISIBILITY_HIDDEN=TRUE
.IF "$(OS)" == "OS2"
all:
@echo " Not building under OS/2"
.ENDIF
# --- Settings ----------------------------------
.IF "$(DBGUTIL_OJ)"!=""
ENVCFLAGS+=/FR$(SLO)$/
.ENDIF
USE_DEFFILE=TRUE
ENABLE_EXCEPTIONS=TRUE
VISIBILITY_HIDDEN=TRUE
# --- begin of mozilla specific stuff
MOZ_LIB=$(SOLARVERSION)$/$(INPATH)$/lib$(UPDMINOREXT)
MOZ_INC=$(SOLARVERSION)$/$(INPATH)$/inc$(UPDMINOREXT)$/mozilla
# --- end of mozilla specific stuff
.INCLUDE : settings.mk
.INCLUDE : $(PRJ)$/version.mk
.INCLUDE : ../makefile_mozab.mk
INCPRE += -I../mozillasrc
#mozilla specific stuff.
# --- Files -------------------------------------
SLOFILES += \
@ -93,95 +91,6 @@ SLOFILES += \
$(SLO)$/MNSProfileDirServiceProvider.obj
.ENDIF
CDEFS += -DMOZILLA_INTERNAL_API
.IF "$(GUI)"=="UNX"
.IF "$(COMNAME)"=="sunpro5"
CFLAGS += -features=tmplife
#This flag is needed to build mozilla 1.7 code
.ENDIF # "$(COMNAME)"=="sunpro5"
.ENDIF
MOZINC = . -I.. -I..$/mozillasrc -I$(MOZ_INC) -I$(MOZ_INC)$/nspr -I$(MOZ_INC)$/xpcom \
-I$(MOZ_INC)$/string -I$(MOZ_INC)$/rdf -I$(MOZ_INC)$/msgbase \
-I$(MOZ_INC)$/addrbook -I$(MOZ_INC)$/mork -I$(MOZ_INC)$/locale \
-I$(MOZ_INC)$/pref -I$(MOZ_INC)$/mime -I$(MOZ_INC)$/chrome \
-I$(MOZ_INC)$/necko -I$(MOZ_INC)$/intl -I$(MOZ_INC)$/profile \
-I$(MOZ_INC)$/embed_base -I$(MOZ_INC)$/mozldap -I$(MOZ_INC)$/uconv\
-I$(MOZ_INC)$/xpcom_obsolete -I$(MOZ_INC)$/content
.IF "$(GUI)" == "WNT"
.IF "$(COM)" == "GCC"
INCPOST += $(MOZINC)
CDEFS += -DWINVER=0x400 -DMOZILLA_CLIENT \
-DNS_NET_FILE -DCookieManagement -DSingleSignon -DClientWallet \
-DTRACING -DXP_PC -DXP_WIN -DXP_WIN32 -DHW_THREADS \
-DNS_MT_SUPPORTED -DNETLIB_THREAD \
-DOJI -DWIN32 -D_X86_ -D_WINDOWS \
-DMOZ_XUL -DMOZ_REFLOW_PERF -DMOZ_REFLOW_PERF_DSP \
-DNSPR20 -DOS_HAS_DLL -DNO_JNI_STUBS \
-DNETSCAPE -DMOZILLA_CLIENT -DJS_THREADSAFE -DNECKO -DINCLUDE_XUL
CFLAGSCXX += \
-fno-rtti -Wall -Wconversion -Wpointer-arith \
-Wcast-align -Woverloaded-virtual -Wsynth \
-Wno-long-long
.ELSE
.IF "$(DBG_LEVEL)" == "0"
INCPRE += $(MOZINC)
CDEFS += -DWINVER=0x400 -DMOZILLA_CLIENT \
-DNS_NET_FILE -DCookieManagement -DSingleSignon -DClientWallet \
-DTRACING -DXP_PC -DXP_WIN -DXP_WIN32 -DHW_THREADS \
-DDMSVC4 -DNS_MT_SUPPORTED -DNETLIB_THREAD \
-DOJI -DWIN32 -D_X86_ -D_WINDOWS \
-DMOZ_XUL -DMOZ_REFLOW_PERF -DMOZ_REFLOW_PERF_DSP \
-DNSPR20 -DOS_HAS_DLL -DNO_JNI_STUBS \
-DNETSCAPE -DMOZILLA_CLIENT -DJS_THREADSAFE -DNECKO -DINCLUDE_XUL \
-UDEBUG
CFLAGS += -GR- -W3 -Gy -MD -UDEBUG
.ELSE
INCPRE += $(MOZINC)
CDEFS += -DWINVER=0x400 -DMOZILLA_CLIENT \
-DNS_NET_FILE -DCookieManagement -DSingleSignon -DClientWallet \
-DTRACING -DXP_PC -DXP_WIN -DXP_WIN32 -DHW_THREADS \
-DDMSVC4 -DDEVELOPER_DEBUG -DNS_MT_SUPPORTED -DNETLIB_THREAD \
-DOJI -DWIN32 -D_X86_ -D_WINDOWS \
-DMOZ_XUL -DMOZ_REFLOW_PERF -DMOZ_REFLOW_PERF_DSP \
-DDEBUG_Administrator -DNSPR20 -DOS_HAS_DLL -DNO_JNI_STUBS \
-DNETSCAPE -DMOZILLA_CLIENT -DJS_THREADSAFE -DNECKO -DINCLUDE_XUL \
-UDEBUG
CFLAGS += -Zi -GR- -W3 -Gy -MDd -UDEBUG
.IF "$(CCNUMVER)" >= "001399999999"
CDEFS += -D_STL_NOFORCE_MANIFEST
.ENDIF
.ENDIF
.ENDIF
.ENDIF
.IF "$(GUI)" == "UNX"
INCPOST += $(MOZINC)
CDEFS+= -DMOZILLA_CLIENT \
-DXP_UNIX
.IF "$(OS)" == "LINUX"
CFLAGS += -fPIC -g
CDEFS+= -DOJI
CFLAGSCXX += \
-fno-rtti -Wconversion -Wpointer-arith \
-Wcast-align -Woverloaded-virtual -Wsynth \
-Wno-long-long -pthread
CDEFS += -DTRACING
.ELIF "$(OS)" == "NETBSD" || "$(OS)" == "MACOSX"
CFLAGS += -fPIC
CFLAGSCXX += \
-fno-rtti -Wconversion -Wpointer-arith \
-Wcast-align -Woverloaded-virtual -Wsynth \
-Wno-long-long -Wno-deprecated
CDEFS += -DTRACING
.ENDIF
SHL1TARGET_NAME=$(TARGET)$(MOZAB_MAJOR)
.ENDIF # MACOSX
# --- Targets ----------------------------------
.INCLUDE : target.mk

View File

@ -43,38 +43,28 @@ all:
@echo " see http://www.mozilla.org/issues/show_bug.cgi?id=91209"
.ENDIF
#mozilla specific stuff.
# --- begin of mozilla specific stuff
MOZ_LIB=$(SOLARVERSION)$/$(INPATH)$/lib$(UPDMINOREXT)
MOZ_INC=$(SOLARVERSION)$/$(INPATH)$/inc$(UPDMINOREXT)$/mozilla
.IF "$(OS)"=="WNT"
.IF "$(USE_SHELL)"=="4nt"
MOZ_EMBED_LIB := $(shell @+-dir /ba:f $(MOZ_LIB)$/embed_base_s.lib 2>NUL )
MOZ_REG_LIB := $(shell @+-dir /ba:f $(MOZ_LIB)$/mozreg_s.lib 2>NUL )
.ELSE #"$(USE_SHELL)"=="4nt"
MOZ_EMBED_LIB := $(shell @-test -f $(MOZ_LIB)$/embed_base_s.lib && echo $(MOZ_LIB)$/embed_base_s.lib )
MOZ_REG_LIB := $(shell @-test -f $(MOZ_LIB)$/mozreg_s.lib && echo $(MOZ_LIB)$/mozreg_s.lib )
.ENDIF
MOZ_EMBED_LIB := $(shell @-test -f $(MOZ_LIB)$/embed_base_s.lib && echo $(MOZ_LIB)$/embed_base_s.lib )
MOZ_REG_LIB := $(shell @-test -f $(MOZ_LIB)$/mozreg_s.lib && echo $(MOZ_LIB)$/mozreg_s.lib )
.IF X"$(MOZ_EMBED_LIB)"=="X"
MOZ_EMBED_LIB := $(MOZ_LIB)$/baseembed_s.lib
.ENDIF
.IF X"$(MOZ_REG_LIB)" == "X"
MOZ_REG_LIB := $(MOZ_LIB)$/mozreg.lib
.ENDIF
.ENDIF
MOZ_EMBED_LIB *:= $(MOZ_LIB)$/baseembed_s.lib
MOZ_REG_LIB *:= $(MOZ_LIB)$/mozreg.lib
.IF "$(COM)"=="GCC"
MOZ_LIB_XPCOM= -L$(MOZ_LIB) -lembed_base_s -lnspr4 -lmozreg_s -lxpcom -lxpcom_core
.ELSE
LIB += $(MOZ_LIB)
MOZ_LIB_XPCOM= $(MOZ_EMBED_LIB) $(MOZ_LIB)$/nspr4.lib $(MOZ_REG_LIB) $(MOZ_LIB)$/xpcom.lib $(MOZ_LIB)$/xpcom_core.lib
.ENDIF
.IF "$(OS)"=="WNT"
.IF "$(COM)"=="GCC"
MOZ_LIB_XPCOM= -L$(MOZ_LIB) -lembed_base_s -lnspr4 -lmozreg_s -lxpcom -lxpcom_core
.ELSE
LIB += $(MOZ_LIB)
MOZ_LIB_XPCOM= $(MOZ_EMBED_LIB) $(MOZ_LIB)$/nspr4.lib $(MOZ_REG_LIB) $(MOZ_LIB)$/xpcom.lib $(MOZ_LIB)$/xpcom_core.lib
.ENDIF
.ELSE "$(OS)"=="WNT"
MOZ_LIB_XPCOM= -L$(MOZ_LIB) -lnspr4 -lxpcom_core -lmozreg_s -lembed_base_s
MOZ_LIB_XPCOM = -L$(MOZ_LIB) -lnspr4 -lxpcom_core -lmozreg_s -lembed_base_s
.ENDIF
#End of mozilla specific stuff.
# --- end of mozilla specific stuff
USE_DEFFILE=TRUE
ENABLE_EXCEPTIONS=TRUE
@ -87,10 +77,6 @@ COMPONENT_CONFIG_SCHEMA=$(TARGET)2.xcs
# --- Settings ----------------------------------
.IF "$(DBGUTIL_OJ)"!=""
ENVCFLAGS+=/FR$(SLO)$/
.ENDIF
.INCLUDE : $(PRJ)$/makefile.pmk
.INCLUDE : $(PRJ)$/version.mk
@ -121,7 +107,6 @@ DEF1NAME= $(SHL1TARGET)
DEF1DEPN= $(MISC)$/$(SHL1TARGET).flt \
$(SLB)$/$(TARGET).lib
DEFLIB1NAME=$(TARGET)
#DEF1EXPORTFILE= exports.dxp
# --- Files -------------------------------------
@ -165,6 +150,7 @@ DEPOBJFILES=$(SLO2FILES)
# --- MOZAB BASE Library -----------------------------------
SHL2VERSIONMAP= $(TARGET2).map
SHL2NOCHECK=TRUE
SHL2TARGET= $(TARGET2)$(DLLPOSTFIX)
SHL2OBJS=$(SLO2FILES)
SHL2STDLIBS=\

View File

@ -0,0 +1,128 @@
#*************************************************************************
#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# Copyright 2008 by Sun Microsystems, Inc.
#
# OpenOffice.org - a multi-platform office productivity suite
#
# 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.
#
#*************************************************************************
CDEFS += -DMOZILLA_INTERNAL_API
.IF "$(GUI)"=="UNX"
.IF "$(COMNAME)"=="sunpro5"
CFLAGS += -features=tmplife
#This flag is needed to build mozilla 1.7 code
.ENDIF # "$(COMNAME)"=="sunpro5"
.ENDIF
MOZINC = . \
-I.. \
-I$(MOZ_INC) \
-I$(MOZ_INC)$/nspr \
-I$(MOZ_INC)$/xpcom \
-I$(MOZ_INC)$/string \
-I$(MOZ_INC)$/rdf \
-I$(MOZ_INC)$/msgbase \
-I$(MOZ_INC)$/addrbook \
-I$(MOZ_INC)$/mork \
-I$(MOZ_INC)$/locale \
-I$(MOZ_INC)$/pref \
-I$(MOZ_INC)$/mime \
-I$(MOZ_INC)$/chrome \
-I$(MOZ_INC)$/necko \
-I$(MOZ_INC)$/intl \
-I$(MOZ_INC)$/profile \
-I$(MOZ_INC)$/embed_base \
-I$(MOZ_INC)$/mozldap \
-I$(MOZ_INC)$/uconv \
-I$(MOZ_INC)$/xpcom_obsolete \
-I$(MOZ_INC)$/content
.IF "$(GUI)" == "WNT"
CDEFS += \
-DMOZILLA_CLIENT \
-DXP_PC \
-DXP_WIN \
-DXP_WIN32 \
-DOJI \
-DWIN32 \
-D_X86_ \
-D_WINDOWS \
-DMOZ_XUL \
-DMOZ_REFLOW_PERF \
-DMOZ_REFLOW_PERF_DSP
.IF "$(COM)" == "GCC"
INCPOST += $(MOZINC)
CFLAGSCXX += \
-fno-rtti \
-Wall \
-Wconversion \
-Wpointer-arith \
-Wcast-align \
-Woverloaded-virtual \
-Wsynth \
-Wno-long-long
.ELSE # .IF "$(COM)" == "GCC"
INCPRE += $(MOZINC)
.IF "$(DBG_LEVEL)" != "0"
.IF "$(CCNUMVER)" >= "001399999999"
CDEFS += -D_STL_NOFORCE_MANIFEST
.ENDIF # .IF "$(CCNUMVER)" >= "001399999999"
.ENDIF # .IF "$(DBG_LEVEL)" != "0"
.ENDIF # .IF "$(COM)" == "GCC"
.ENDIF # .IF "$(GUI)" == "WNT"
.IF "$(GUI)" == "UNX"
INCPOST += $(MOZINC)
CDEFS+= -DMOZILLA_CLIENT \
-DXP_UNIX
.IF "$(OS)" == "LINUX"
CFLAGS += -fPIC -g
CDEFS += -DOJI
CFLAGSCXX += \
-fno-rtti \
-Wconversion \
-Wpointer-arith \
-Wcast-align \
-Woverloaded-virtual \
-Wsynth \
-Wno-long-long \
-pthread
CDEFS += -DTRACING
.ELIF "$(OS)" == "NETBSD" || "$(OS)" == "MACOSX"
CFLAGS += -fPIC
CFLAGSCXX += \
-fno-rtti \
-Wconversion \
-Wpointer-arith \
-Wcast-align \
-Woverloaded-virtual \
-Wsynth \
-Wno-long-long \
-Wno-deprecated
CDEFS += -DTRACING
.ENDIF # "$(OS)" == "NETBSD" || "$(OS)" == "MACOSX"
SHL1TARGET_NAME=$(TARGET)$(MOZAB_MAJOR)
.ENDIF # "$(GUI)" == "UNX"

View File

@ -40,16 +40,12 @@ PRJINC=..$/..$/..
PRJNAME=connectivity
TARGET=mozabsrc
# --- Settings ----------------------------------
USE_DEFFILE=TRUE
ENABLE_EXCEPTIONS=TRUE
VISIBILITY_HIDDEN=TRUE
# --- Settings ----------------------------------
.IF "$(DBGUTIL_OJ)"!=""
ENVCFLAGS+=/FR$(SLO)$/
.ENDIF
.INCLUDE : settings.mk
.IF ("$(SYSTEM_MOZILLA)" == "YES" && "$(WITH_MOZILLA)" == "YES") || "$(WITH_MOZILLA)" == "NO" || "$(OS)" == "OS2"
@ -61,8 +57,10 @@ dummy:
.INCLUDE : $(PRJ)$/version.mk
.INCLUDE : ../makefile_mozab.mk
INCPRE += -I../bootstrap
#mozilla specific stuff.
# --- Files -------------------------------------
SLOFILES = \
@ -75,97 +73,8 @@ SLOFILES = \
$(SLO)$/MNSTerminateListener.obj \
$(SLO)$/MLdapAttributeMap.obj \
CDEFS += -DMOZILLA_INTERNAL_API
.IF "$(GUI)"=="UNX"
.IF "$(COMNAME)"=="sunpro5"
CFLAGS += -features=tmplife
#This flag is needed to build mozilla 1.7 code
.ENDIF # "$(COMNAME)"=="sunpro5"
.ENDIF
MOZINC = . -I.. -I..$/bootstrap -I$(MOZ_INC) -I$(MOZ_INC)$/nspr -I$(MOZ_INC)$/xpcom \
-I$(MOZ_INC)$/string -I$(MOZ_INC)$/rdf -I$(MOZ_INC)$/msgbase \
-I$(MOZ_INC)$/addrbook -I$(MOZ_INC)$/mork -I$(MOZ_INC)$/locale \
-I$(MOZ_INC)$/pref -I$(MOZ_INC)$/mime -I$(MOZ_INC)$/chrome \
-I$(MOZ_INC)$/necko -I$(MOZ_INC)$/intl -I$(MOZ_INC)$/profile \
-I$(MOZ_INC)$/embed_base -I$(MOZ_INC)$/mozldap -I$(MOZ_INC)$/uconv\
-I$(MOZ_INC)$/xpcom_obsolete -I$(MOZ_INC)$/content
.IF "$(GUI)" == "WNT"
.IF "$(COM)"=="GCC"
INCPOST += $(MOZINC)
CDEFS += -DWINVER=0x400 -DMOZILLA_CLIENT \
-DNS_NET_FILE -DCookieManagement -DSingleSignon -DClientWallet \
-DTRACING -DXP_PC -DXP_WIN -DXP_WIN32 -DHW_THREADS \
-DNS_MT_SUPPORTED -DNETLIB_THREAD \
-DOJI -DWIN32 -D_X86_ -D_WINDOWS \
-DMOZ_XUL -DMOZ_REFLOW_PERF -DMOZ_REFLOW_PERF_DSP \
-DNSPR20 -DOS_HAS_DLL -DNO_JNI_STUBS \
-DNETSCAPE -DMOZILLA_CLIENT -DJS_THREADSAFE -DNECKO -DINCLUDE_XUL
CFLAGSCXX += \
-fno-rtti -Wall -Wconversion -Wpointer-arith \
-Wcast-align -Woverloaded-virtual -Wsynth \
-Wno-long-long
.ELSE
.IF "$(DBG_LEVEL)" == "0"
INCPRE += $(MOZINC)
CDEFS += -DWINVER=0x400 -DMOZILLA_CLIENT \
-DNS_NET_FILE -DCookieManagement -DSingleSignon -DClientWallet \
-DTRACING -DXP_PC -DXP_WIN -DXP_WIN32 -DHW_THREADS \
-DDMSVC4 -DNS_MT_SUPPORTED -DNETLIB_THREAD \
-DOJI -DWIN32 -D_X86_ -D_WINDOWS \
-DMOZ_XUL -DMOZ_REFLOW_PERF -DMOZ_REFLOW_PERF_DSP \
-DNSPR20 -DOS_HAS_DLL -DNO_JNI_STUBS \
-DNETSCAPE -DMOZILLA_CLIENT -DJS_THREADSAFE -DNECKO -DINCLUDE_XUL \
-UDEBUG
CFLAGS += -GR- -W3 -Gy -MD -UDEBUG
.ELSE
INCPRE += $(MOZINC)
CDEFS += -DWINVER=0x400 -DMOZILLA_CLIENT \
-DNS_NET_FILE -DCookieManagement -DSingleSignon -DClientWallet \
-DTRACING -DXP_PC -DXP_WIN -DXP_WIN32 -DHW_THREADS \
-DDMSVC4 -DDEVELOPER_DEBUG -DNS_MT_SUPPORTED -DNETLIB_THREAD \
-DOJI -DWIN32 -D_X86_ -D_WINDOWS \
-DMOZ_XUL -DMOZ_REFLOW_PERF -DMOZ_REFLOW_PERF_DSP \
-DDEBUG_Administrator -DNSPR20 -DOS_HAS_DLL -DNO_JNI_STUBS \
-DNETSCAPE -DMOZILLA_CLIENT -DJS_THREADSAFE -DNECKO -DINCLUDE_XUL \
-UDEBUG
CFLAGS += -Zi -GR- -W3 -Gy -MDd -UDEBUG
.IF "$(CCNUMVER)" >= "001399999999"
CDEFS += -D_STL_NOFORCE_MANIFEST
.ENDIF
.ENDIF
.ENDIF
.ENDIF
.IF "$(GUI)" == "UNX"
INCPOST += $(MOZINC)
CDEFS+= -DMOZILLA_CLIENT \
-DXP_UNIX
.IF "$(OS)" == "LINUX"
CFLAGS += -fPIC -g
CDEFS+= -DOJI
CFLAGSCXX += \
-fno-rtti -Wconversion -Wpointer-arith \
-Wcast-align -Woverloaded-virtual -Wsynth \
-Wno-long-long -pthread
CDEFS += -DTRACING
.ELIF "$(OS)" == "NETBSD" || "$(OS)" == "MACOSX"
CFLAGS += -fPIC
CFLAGSCXX += \
-fno-rtti -Wconversion -Wpointer-arith \
-Wcast-align -Woverloaded-virtual -Wsynth \
-Wno-long-long -Wno-deprecated
CDEFS += -DTRACING
.ENDIF
.ENDIF
SHL1TARGET_NAME=$(TARGET)$(MOZAB_MAJOR)
.ENDIF # MACOSX
# --- Targets ----------------------------------
.INCLUDE : target.mk

View File

@ -44,6 +44,7 @@
#define STR_NO_TABLE_EDITOR_DIALOG ( STR_HSQLDB_BASE + 3 )
#define STR_NO_TABLENAME ( STR_HSQLDB_BASE + 4 )
#define STR_NO_DOCUMENTUI ( STR_HSQLDB_BASE + 5 )
#define STR_ERROR_NEW_VERSION ( STR_HSQLDB_BASE + 6 )
#endif // CONNECTIVITY_RESOURCE_HSQLDB_HRC

View File

@ -645,3 +645,8 @@ String STR_NO_DOCUMENTUI
{
Text [ en-US ] = "The provided DocumentUI is not allowed to be NULL.";
};
String STR_ERROR_NEW_VERSION
{
Text = "The connection could not be established. The database was created by a newer version of %PRODUCTNAME.";
};

View File

@ -21,7 +21,7 @@ dt desktop\os2\source\applauncher nmake - p dt_applauncher dt_inc NULL
dt desktop\unx\source\officeloader nmake - u dt_officeloader_unx dt_inc NULL
dt desktop\source\pagein nmake - u dt_pagein dt_inc NULL
dt desktop\source\pkgchk\unopkg nmake - all dt_unopkg dt_dp_misc dt_app dt_inc dt_guiloader.w NULL
dt desktop\source\deployment nmake - all dt_deployment dt_dp_manager dt_dp_registry dt_dp_registry_package dt_dp_registry_executable dt_dp_registry_help dt_dp_registry_script dt_dp_registry_sfwk dt_dp_registry_component dt_dp_registry_configuration dt_dp_migration dt_dp_unopkg dt_inc NULL
dt desktop\source\deployment nmake - all dt_deployment dt_dp_manager dt_dp_registry dt_dp_registry_package dt_dp_registry_executable dt_dp_registry_help dt_dp_registry_script dt_dp_registry_sfwk dt_dp_registry_component dt_dp_registry_configuration dt_dp_migration dt_dp_unopkg dt_inc dt_dp_misc NULL
dt desktop\source\deployment\misc nmake - all dt_dp_misc dt_inc NULL
dt desktop\source\deployment\unopkg nmake - all dt_dp_unopkg dt_inc NULL
dt desktop\source\deployment\migration nmake - all dt_dp_migration dt_inc NULL

View File

@ -1745,8 +1745,15 @@ sal_Bool Desktop::InitializeQuickstartMode( Reference< XMultiServiceFactory >& r
aSeq[0] <<= bQuickstart;
// Try to instanciate quickstart service. This service is not mandatory, so
// do nothing if service is not available.
// do nothing if service is not available
// #i105753# the following if was invented for performance
// unfortunately this broke the QUARTZ behavior which is to always run
// in quickstart mode since Mac applications do not usually quit
// when the last document closes
#ifndef QUARTZ
if ( bQuickstart )
#endif
{
Reference < XComponent > xQuickstart( rSMgr->createInstanceWithArguments(
DEFINE_CONST_UNICODE( "com.sun.star.office.Quickstart" ), aSeq ),

View File

@ -1141,7 +1141,7 @@ void ExtensionBox_Impl::checkEntries()
//------------------------------------------------------------------------------
bool ExtensionBox_Impl::isHCMode()
{
return (bool)GetDisplayBackground().GetColor().IsDark();
return (bool)GetSettings().GetStyleSettings().GetHighContrastMode();
}
//------------------------------------------------------------------------------

View File

@ -284,8 +284,8 @@ private:
css::uno::Reference< css::uno::XComponentContext > m_context;
UpdateDialog & m_dialog;
std::vector< dp_gui::TUpdateListEntry > m_vExtensionList;
css::uno::Reference< css::deployment::XUpdateInformationProvider >
m_updateInformation;
css::uno::Reference< css::deployment::XUpdateInformationProvider > m_updateInformation;
css::uno::Reference< css::task::XInteractionHandler > m_xInteractionHdl;
// guarded by Application::GetSolarMutex():
css::uno::Reference< css::task::XAbortChannel > m_abort;
@ -302,7 +302,21 @@ UpdateDialog::Thread::Thread(
m_updateInformation(
css::deployment::UpdateInformationProvider::create(context)),
m_stop(false)
{}
{
if( m_context.is() )
{
css::uno::Reference< css::lang::XMultiComponentFactory > xServiceManager( m_context->getServiceManager() );
if( xServiceManager.is() )
{
m_xInteractionHdl = css::uno::Reference< css::task::XInteractionHandler > (
xServiceManager->createInstanceWithContext( OUSTR( "com.sun.star.task.InteractionHandler" ), m_context),
css::uno::UNO_QUERY );
if ( m_xInteractionHdl.is() )
m_updateInformation->setInteractionHandler( m_xInteractionHdl );
}
}
}
void UpdateDialog::Thread::stop() {
css::uno::Reference< css::task::XAbortChannel > abort;
@ -327,7 +341,11 @@ UpdateDialog::Thread::Entry::Entry(
version(theVersion)
{}
UpdateDialog::Thread::~Thread() {}
UpdateDialog::Thread::~Thread()
{
if ( m_xInteractionHdl.is() )
m_updateInformation->setInteractionHandler( css::uno::Reference< css::task::XInteractionHandler > () );
}
void UpdateDialog::Thread::execute()
{
@ -1260,7 +1278,7 @@ IMPL_LINK( UpdateDialog, hyperlink_clicked, svt::FixedHyperlink*, pHyperlink )
{
css::uno::Reference< css::system::XSystemShellExecute > xSystemShellExecute(
m_context->getServiceManager()->createInstanceWithContext(
::rtl::OUString::createFromAscii( "com.sun.star.system.SystemShellExecute" ),
OUSTR( "com.sun.star.system.SystemShellExecute" ),
m_context), css::uno::UNO_QUERY_THROW);
//throws css::lang::IllegalArgumentException, css::system::SystemShellExecuteException
xSystemShellExecute->execute(

View File

@ -215,7 +215,7 @@ LicenseDialogImpl::LicenseDialogImpl(
{
if (GetBackground().GetColor().IsDark())
if (GetSettings().GetStyleSettings().GetHighContrastMode())
{
// high contrast mode needs other images
m_fiArrow1.SetImage(Image(DpGuiResId(IMG_LICENCE_ARROW_HC)));

View File

@ -373,9 +373,11 @@ UserPage::UserPage( svt::OWizardMachine* parent, const ResId& resid)
SvtUserOptions aUserOpt;
m_edFirst.SetText(aUserOpt.GetFirstName());
m_edLast.SetText(aUserOpt.GetLastName());
#if 0
rtl::OUString aUserName;
vos::OSecurity().getUserName( aUserName );
aUserOpt.SetID( aUserName );
#endif
m_edInitials.SetText(aUserOpt.GetID());
if (m_lang == LANGUAGE_RUSSIAN)

View File

@ -149,6 +149,13 @@ namespace drawinglayer
/// On-demand prepared Viewport in discrete units for convenience
const basegfx::B2DRange& getDiscreteViewport() const;
/** support reduced DisplayQuality, PropertyName is 'ReducedDisplayQuality'. This
is used e.g. to allow to lower display quality for OverlayPrimitives and
may lead to simpler decompositions in the local create2DDecomposition
implementations of the primitives
*/
bool getReducedDisplayQuality() const;
/** Get the uno::Sequence< beans::PropertyValue > which contains all ViewInformation
Use this call if You need to extract all contained ViewInformation. The ones

View File

@ -41,6 +41,7 @@
#include <drawinglayer/attribute/sdrattribute3d.hxx>
#include <drawinglayer/geometry/viewinformation3d.hxx>
#include <basegfx/matrix/b2dhommatrix.hxx>
#include <vcl/bitmapex.hxx>
//////////////////////////////////////////////////////////////////////////////
@ -70,9 +71,13 @@ namespace drawinglayer
double mfOldDiscreteSizeY;
basegfx::B2DRange maOldUnitVisiblePart;
// the last created BitmapEx, e.g. for fast HitTest. This does not really need
// memory since BitmapEx is internally RefCounted
BitmapEx maOldRenderedBitmap;
// private helpers
bool impGetShadow3D(const geometry::ViewInformation2D& rViewInformation) const;
void calculateDsicreteSizes(
void calculateDiscreteSizes(
const geometry::ViewInformation2D& rViewInformation,
basegfx::B2DRange& rDiscreteRange,
basegfx::B2DRange& rVisibleDiscreteRange,
@ -87,7 +92,18 @@ namespace drawinglayer
// Geometry extractor. Shadow will be added as in createLocalDecomposition, but
// the 3D content is not converted to a bitmap visualisation but to projected 2D gemetry. This
// helper is useful e.g. for Contour extraction or HitTests.
Primitive2DSequence getGeometry2D(const geometry::ViewInformation2D& rViewInformation) const;
Primitive2DSequence getGeometry2D() const;
Primitive2DSequence getShadow2D(const geometry::ViewInformation2D& rViewInformation) const;
// Fast HitTest which uses the last buffered BitmapEx from the last
// rendered area if available. The return value describes if the check
// could be done with the current information, so do NOT use o_rResult
// when it returns false. o_rResult will be changed on return true and
// then contains a definitive answer if content of this scene is hit or
// not. On return false, it is normally necessary to use the geometric
// HitTest (see CutFindProcessor usages). The given HitPoint
// has to be in logic coordinates in scene's ObjectCoordinateSystem.
bool tryToCheckLastVisualisationDirectHit(const basegfx::B2DPoint& rLogicHitPoint, bool& o_rResult) const;
// constructor/destructor
ScenePrimitive2D(

View File

@ -43,6 +43,7 @@
namespace basegfx { class B2DPolygon; }
namespace basegfx { class B2DPolyPolygon; }
namespace drawinglayer { namespace primitive2d { class ScenePrimitive2D; }}
//////////////////////////////////////////////////////////////////////////////
@ -80,6 +81,7 @@ namespace drawinglayer
bool checkFillHitWithTolerance(
const basegfx::B2DPolyPolygon& rPolyPolygon,
double fDiscreteHitTolerance);
void check3DHit(const primitive2d::ScenePrimitive2D& rCandidate);
public:
HitTestProcessor2D(

View File

@ -97,7 +97,7 @@ namespace drawinglayer
basegfx::B2DPolyPolygon maClipPolyPolygon;
// the target MetaFile
GDIMetaFile& mrMetaFile;
GDIMetaFile* mpMetaFile;
// do not allow embedding SvtGraphicFills into each other,
// use a counter to prevent that

View File

@ -51,6 +51,7 @@ namespace drawinglayer { namespace primitive2d {
class BitmapPrimitive2D;
class FillBitmapPrimitive2D;
class PolyPolygonGradientPrimitive2D;
class PolyPolygonBitmapPrimitive2D;
class PolyPolygonColorPrimitive2D;
class MetafilePrimitive2D;
class MaskPrimitive2D;
@ -100,6 +101,7 @@ namespace drawinglayer
void RenderBitmapPrimitive2D(const primitive2d::BitmapPrimitive2D& rBitmapCandidate);
void RenderFillBitmapPrimitive2D(const primitive2d::FillBitmapPrimitive2D& rFillBitmapCandidate);
void RenderPolyPolygonGradientPrimitive2D(const primitive2d::PolyPolygonGradientPrimitive2D& rPolygonCandidate);
void RenderPolyPolygonBitmapPrimitive2D(const primitive2d::PolyPolygonBitmapPrimitive2D& rPolygonCandidate);
void RenderPolyPolygonColorPrimitive2D(const primitive2d::PolyPolygonColorPrimitive2D& rPolygonCandidate);
void RenderMetafilePrimitive2D(const primitive2d::MetafilePrimitive2D& rPolygonCandidate);
void RenderMaskPrimitive2DPixel(const primitive2d::MaskPrimitive2D& rMaskCandidate);

View File

@ -0,0 +1,86 @@
/*************************************************************************
*
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile: zbufferprocessor3d.hxx,v $
*
* $Revision: 1.4 $
*
* last change: $Author: aw $ $Date: 2008-06-24 15:30:18 $
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
*
*
* GNU Lesser General Public License Version 2.1
* =============================================
* Copyright 2005 by Sun Microsystems, Inc.
* 901 San Antonio Road, Palo Alto, CA 94303, USA
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License version 2.1, as published by the Free Software Foundation.
*
* This library 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 for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*
************************************************************************/
#ifndef INCLUDED_DRAWINGLAYER_PROCESSOR3D_CUTFINDPROCESSOR3D_HXX
#define INCLUDED_DRAWINGLAYER_PROCESSOR3D_CUTFINDPROCESSOR3D_HXX
#include <drawinglayer/processor3d/defaultprocessor3d.hxx>
//////////////////////////////////////////////////////////////////////////////
namespace drawinglayer
{
namespace processor3d
{
class CutFindProcessor : public BaseProcessor3D
{
private:
// the start and stop point for the cut vector
basegfx::B3DPoint maFront;
basegfx::B3DPoint maBack;
// the found cut points
::std::vector< basegfx::B3DPoint > maResult;
// #i102956# the transformation change from TransformPrimitive3D processings
// needs to be remembered to be able to transform found cuts to the
// basic coordinate system the processor starts with
basegfx::B3DHomMatrix maCombinedTransform;
// bitfield
bool mbAnyHit : 1;
// as tooling, the process() implementation takes over API handling and calls this
// virtual render method when the primitive implementation is BasePrimitive3D-based.
virtual void processBasePrimitive3D(const primitive3d::BasePrimitive3D& rCandidate);
public:
CutFindProcessor(const geometry::ViewInformation3D& rViewInformation,
const basegfx::B3DPoint& rFront,
const basegfx::B3DPoint& rBack,
bool bAnyHit);
// data access
const ::std::vector< basegfx::B3DPoint >& getCutPoints() const { return maResult; }
bool getAnyHit() const { return mbAnyHit; }
};
} // end of namespace processor3d
} // end of namespace drawinglayer
//////////////////////////////////////////////////////////////////////////////
#endif //INCLUDED_DRAWINGLAYER_PROCESSOR3D_CUTFINDPROCESSOR3D_HXX
// eof

View File

@ -90,6 +90,8 @@ mkdir: %_DEST%\inc%_EXT%\drawinglayer\processor2d
mkdir: %_DEST%\inc%_EXT%\drawinglayer\processor3d
..\inc\drawinglayer\processor3d\baseprocessor3d.hxx %_DEST%\inc%_EXT%\drawinglayer\processor3d\baseprocessor3d.hxx
..\inc\drawinglayer\processor3d\cutfindprocessor3d.hxx %_DEST%\inc%_EXT%\drawinglayer\processor3d\cutfindprocessor3d.hxx
..\inc\drawinglayer\processor3d\defaultprocessor3d.hxx %_DEST%\inc%_EXT%\drawinglayer\processor3d\defaultprocessor3d.hxx
..\inc\drawinglayer\processor3d\zbufferprocessor3d.hxx %_DEST%\inc%_EXT%\drawinglayer\processor3d\zbufferprocessor3d.hxx
..\inc\drawinglayer\processor3d\tbufferprocessor3d.hxx %_DEST%\inc%_EXT%\drawinglayer\processor3d\tbufferprocessor3d.hxx

View File

@ -81,12 +81,18 @@ namespace drawinglayer
basegfx::B2DRange maDiscreteViewport;
// the DrawPage which is target of visualisation. This is needed e.g. for
// the view-dependent decomposition of PageNumber TextFields
// the view-dependent decomposition of PageNumber TextFields.
// This parameter is buffered here, but mainly resides in mxExtendedInformation,
// so it will be interpreted, but held there. It will also not be added
// to mxExtendedInformation in impFillViewInformationFromContent (it's there already)
uno::Reference< drawing::XDrawPage > mxVisualizedPage;
// the point in time
double mfViewTime;
// bitfield
bool mbReducedDisplayQuality : 1;
// the complete PropertyValue representation (if already created)
uno::Sequence< beans::PropertyValue > mxViewInformation;
@ -125,6 +131,12 @@ namespace drawinglayer
return s_sNameProperty;
}
const ::rtl::OUString& getNamePropertyReducedDisplayQuality()
{
static ::rtl::OUString s_sNameProperty(RTL_CONSTASCII_USTRINGPARAM("ReducedDisplayQuality"));
return s_sNameProperty;
}
void impInterpretPropertyValues(const uno::Sequence< beans::PropertyValue >& rViewParameters)
{
if(rViewParameters.hasElements())
@ -139,7 +151,17 @@ namespace drawinglayer
{
const beans::PropertyValue& rProp = rViewParameters[a];
if(rProp.Name == getNamePropertyObjectTransformation())
if(rProp.Name == getNamePropertyReducedDisplayQuality())
{
// extra information; add to filtered information
mxExtendedInformation[nExtendedInsert++] = rProp;
// for performance reasons, also cache content locally
sal_Bool bSalBool = sal_True;
rProp.Value >>= bSalBool;
mbReducedDisplayQuality = bSalBool;
}
else if(rProp.Name == getNamePropertyObjectTransformation())
{
com::sun::star::geometry::AffineMatrix2D aAffineMatrix2D;
rProp.Value >>= aAffineMatrix2D;
@ -185,6 +207,7 @@ namespace drawinglayer
const bool bViewportUsed(!maViewport.isEmpty());
const bool bTimeUsed(0.0 < mfViewTime);
const bool bVisualizedPageUsed(mxVisualizedPage.is());
const bool bReducedDisplayQualityUsed(true == mbReducedDisplayQuality);
const bool bExtraInformation(mxExtendedInformation.hasElements());
sal_uInt32 nIndex(0);
const sal_uInt32 nCount(
@ -193,6 +216,7 @@ namespace drawinglayer
(bViewportUsed ? 1 : 0) +
(bTimeUsed ? 1 : 0) +
(bVisualizedPageUsed ? 1 : 0) +
(bReducedDisplayQualityUsed ? 1 : 0) +
(bExtraInformation ? mxExtendedInformation.getLength() : 0));
mxViewInformation.realloc(nCount);
@ -265,6 +289,7 @@ namespace drawinglayer
maDiscreteViewport(),
mxVisualizedPage(rxDrawPage),
mfViewTime(fViewTime),
mbReducedDisplayQuality(false),
mxViewInformation(),
mxExtendedInformation()
{
@ -281,6 +306,7 @@ namespace drawinglayer
maDiscreteViewport(),
mxVisualizedPage(),
mfViewTime(),
mbReducedDisplayQuality(false),
mxViewInformation(rViewParameters),
mxExtendedInformation()
{
@ -355,6 +381,11 @@ namespace drawinglayer
return mxVisualizedPage;
}
bool getReducedDisplayQuality() const
{
return mbReducedDisplayQuality;
}
const uno::Sequence< beans::PropertyValue >& getViewInformationSequence() const
{
if(!mxViewInformation.hasElements())
@ -501,6 +532,11 @@ namespace drawinglayer
return mpViewInformation2D->getDiscreteViewport();
}
bool ViewInformation2D::getReducedDisplayQuality() const
{
return mpViewInformation2D->getReducedDisplayQuality();
}
const uno::Sequence< beans::PropertyValue >& ViewInformation2D::getViewInformationSequence() const
{
return mpViewInformation2D->getViewInformationSequence();

View File

@ -100,7 +100,7 @@ namespace drawinglayer
return maShadowPrimitives.hasElements();
}
void ScenePrimitive2D::calculateDsicreteSizes(
void ScenePrimitive2D::calculateDiscreteSizes(
const geometry::ViewInformation2D& rViewInformation,
basegfx::B2DRange& rDiscreteRange,
basegfx::B2DRange& rVisibleDiscreteRange,
@ -110,23 +110,12 @@ namespace drawinglayer
rDiscreteRange = basegfx::B2DRange(0.0, 0.0, 1.0, 1.0);
rDiscreteRange.transform(rViewInformation.getObjectToViewTransformation() * getObjectTransformation());
// force to discrete expanded bounds (it grows, so expanding works perfectly well)
rDiscreteRange.expand(basegfx::B2DTuple(floor(rDiscreteRange.getMinX()), floor(rDiscreteRange.getMinY())));
rDiscreteRange.expand(basegfx::B2DTuple(ceil(rDiscreteRange.getMaxX()), ceil(rDiscreteRange.getMaxY())));
// clip it against discrete Viewport (if set)
rVisibleDiscreteRange = rDiscreteRange;
if(!rViewInformation.getViewport().isEmpty())
{
rVisibleDiscreteRange.intersect(rViewInformation.getDiscreteViewport());
if(!rVisibleDiscreteRange.isEmpty())
{
// force to discrete expanded bounds, too
rVisibleDiscreteRange.expand(basegfx::B2DTuple(floor(rVisibleDiscreteRange.getMinX()), floor(rVisibleDiscreteRange.getMinY())));
rVisibleDiscreteRange.expand(basegfx::B2DTuple(ceil(rVisibleDiscreteRange.getMaxX()), ceil(rVisibleDiscreteRange.getMaxY())));
}
}
if(rVisibleDiscreteRange.isEmpty())
@ -177,11 +166,11 @@ namespace drawinglayer
}
}
// get the involved ranges (see helper method calculateDsicreteSizes for details)
// get the involved ranges (see helper method calculateDiscreteSizes for details)
basegfx::B2DRange aDiscreteRange;
basegfx::B2DRange aVisibleDiscreteRange;
basegfx::B2DRange aUnitVisibleRange;
calculateDsicreteSizes(rViewInformation, aDiscreteRange, aVisibleDiscreteRange, aUnitVisibleRange);
calculateDiscreteSizes(rViewInformation, aDiscreteRange, aVisibleDiscreteRange, aUnitVisibleRange);
if(!aVisibleDiscreteRange.isEmpty())
{
@ -200,6 +189,31 @@ namespace drawinglayer
fViewSizeY *= fReduceFactor;
}
if(rViewInformation.getReducedDisplayQuality())
{
// when reducing the visualisation is allowed (e.g. an OverlayObject
// only needed for dragging), reduce resolution extra
// to speed up dragging interactions
const double fArea(fViewSizeX * fViewSizeY);
double fReducedVisualisationFactor(1.0 / (sqrt(fArea) * (1.0 / 170.0)));
if(fReducedVisualisationFactor > 1.0)
{
fReducedVisualisationFactor = 1.0;
}
else if(fReducedVisualisationFactor < 0.20)
{
fReducedVisualisationFactor = 0.20;
}
if(fReducedVisualisationFactor != 1.0)
{
fReduceFactor *= fReducedVisualisationFactor;
fViewSizeX *= fReducedVisualisationFactor;
fViewSizeY *= fReducedVisualisationFactor;
}
}
// calculate logic render size in world coordinates for usage in renderer
basegfx::B2DVector aLogicRenderSize(
aDiscreteRange.getWidth() * fReduceFactor,
@ -207,9 +221,8 @@ namespace drawinglayer
aLogicRenderSize *= rViewInformation.getInverseObjectToViewTransformation();
// determine the oversample value
static bool bDoOversample(false);
static sal_uInt16 nDefaultOversampleValue(3);
const sal_uInt16 nOversampleValue((bDoOversample || aDrawinglayerOpt.IsAntiAliasing()) ? nDefaultOversampleValue : 0);
const sal_uInt16 nOversampleValue(aDrawinglayerOpt.IsAntiAliasing() ? nDefaultOversampleValue : 0);
// use default 3D primitive processor to create BitmapEx for aUnitVisiblePart and process
processor3d::ZBufferProcessor3D aZBufferProcessor3D(
@ -224,18 +237,16 @@ namespace drawinglayer
aZBufferProcessor3D.processNonTransparent(getChildren3D());
aZBufferProcessor3D.processTransparent(getChildren3D());
const BitmapEx aNewBitmap(aZBufferProcessor3D.getBitmapEx());
const Size aBitmapSizePixel(aNewBitmap.GetSizePixel());
const_cast< ScenePrimitive2D* >(this)->maOldRenderedBitmap = aZBufferProcessor3D.getBitmapEx();
const Size aBitmapSizePixel(maOldRenderedBitmap.GetSizePixel());
if(aBitmapSizePixel.getWidth() && aBitmapSizePixel.getHeight())
{
// create transform for the created bitmap in discrete coordinates first.
// #i97772# Do not forget to apply evtl. render size reduction to scaling
basegfx::B2DHomMatrix aNew2DTransform;
const double fSizeReductionFactor(1.0 / fReduceFactor);
aNew2DTransform.set(0, 0, (double)(aBitmapSizePixel.getWidth() - 1) * fSizeReductionFactor);
aNew2DTransform.set(1, 1, (double)(aBitmapSizePixel.getHeight() - 1) * fSizeReductionFactor);
aNew2DTransform.set(0, 0, aVisibleDiscreteRange.getWidth());
aNew2DTransform.set(1, 1, aVisibleDiscreteRange.getHeight());
aNew2DTransform.set(0, 2, aVisibleDiscreteRange.getMinX());
aNew2DTransform.set(1, 2, aVisibleDiscreteRange.getMinY());
@ -243,7 +254,7 @@ namespace drawinglayer
aNew2DTransform *= rViewInformation.getInverseObjectToViewTransformation();
// create bitmap primitive and add
const Primitive2DReference xRef(new BitmapPrimitive2D(aNewBitmap, aNew2DTransform));
const Primitive2DReference xRef(new BitmapPrimitive2D(maOldRenderedBitmap, aNew2DTransform));
appendPrimitive2DReferenceToPrimitive2DSequence(aRetval, xRef);
// test: Allow to add an outline in the debugger when tests are needed
@ -262,17 +273,10 @@ namespace drawinglayer
return aRetval;
}
Primitive2DSequence ScenePrimitive2D::getGeometry2D(const geometry::ViewInformation2D& rViewInformation) const
Primitive2DSequence ScenePrimitive2D::getGeometry2D() const
{
Primitive2DSequence aRetval;
// create 2D shadows from contained 3D primitives
if(impGetShadow3D(rViewInformation))
{
// add extracted 2d shadows (before 3d scene creations itself)
aRetval = maShadowPrimitives;
}
// create 2D projected geometry from 3D geometry
if(getChildren3D().hasElements())
{
@ -284,14 +288,68 @@ namespace drawinglayer
// process local primitives
aGeometryProcessor.process(getChildren3D());
// fetch result and append
Primitive2DSequence a2DExtractedPrimitives(aGeometryProcessor.getPrimitive2DSequence());
appendPrimitive2DSequenceToPrimitive2DSequence(aRetval, a2DExtractedPrimitives);
// fetch result
aRetval = aGeometryProcessor.getPrimitive2DSequence();
}
return aRetval;
}
Primitive2DSequence ScenePrimitive2D::getShadow2D(const geometry::ViewInformation2D& rViewInformation) const
{
Primitive2DSequence aRetval;
// create 2D shadows from contained 3D primitives
if(impGetShadow3D(rViewInformation))
{
// add extracted 2d shadows (before 3d scene creations itself)
aRetval = maShadowPrimitives;
}
return aRetval;
}
bool ScenePrimitive2D::tryToCheckLastVisualisationDirectHit(const basegfx::B2DPoint& rLogicHitPoint, bool& o_rResult) const
{
if(!maOldRenderedBitmap.IsEmpty() && !maOldUnitVisiblePart.isEmpty())
{
basegfx::B2DHomMatrix aInverseSceneTransform(getObjectTransformation());
aInverseSceneTransform.invert();
const basegfx::B2DPoint aRelativePoint(aInverseSceneTransform * rLogicHitPoint);
if(maOldUnitVisiblePart.isInside(aRelativePoint))
{
// calculate coordinates relative to visualized part
double fDivisorX(maOldUnitVisiblePart.getWidth());
double fDivisorY(maOldUnitVisiblePart.getHeight());
if(basegfx::fTools::equalZero(fDivisorX))
{
fDivisorX = 1.0;
}
if(basegfx::fTools::equalZero(fDivisorY))
{
fDivisorY = 1.0;
}
const double fRelativeX((aRelativePoint.getX() - maOldUnitVisiblePart.getMinX()) / fDivisorX);
const double fRelativeY((aRelativePoint.getY() - maOldUnitVisiblePart.getMinY()) / fDivisorY);
// combine with real BitmapSizePixel to get bitmap coordinates
const Size aBitmapSizePixel(maOldRenderedBitmap.GetSizePixel());
const sal_Int32 nX(basegfx::fround(fRelativeX * aBitmapSizePixel.Width()));
const sal_Int32 nY(basegfx::fround(fRelativeY * aBitmapSizePixel.Height()));
// try to get a statement about transparency in that pixel
o_rResult = (0xff != maOldRenderedBitmap.GetTransparency(nX, nY));
return true;
}
}
return false;
}
ScenePrimitive2D::ScenePrimitive2D(
const primitive3d::Primitive3DSequence& rxChildren3D,
const attribute::SdrSceneAttribute& rSdrSceneAttribute,
@ -308,7 +366,8 @@ namespace drawinglayer
mbShadow3DChecked(false),
mfOldDiscreteSizeX(0.0),
mfOldDiscreteSizeY(0.0),
maOldUnitVisiblePart()
maOldUnitVisiblePart(),
maOldRenderedBitmap()
{
}
@ -359,7 +418,7 @@ namespace drawinglayer
{
::osl::MutexGuard aGuard( m_aMutex );
// get the involved ranges (see helper method calculateDsicreteSizes for details)
// get the involved ranges (see helper method calculateDiscreteSizes for details)
basegfx::B2DRange aDiscreteRange;
basegfx::B2DRange aUnitVisibleRange;
bool bNeedNewDecomposition(false);
@ -368,21 +427,22 @@ namespace drawinglayer
if(getLocalDecomposition().hasElements())
{
basegfx::B2DRange aVisibleDiscreteRange;
calculateDsicreteSizes(rViewInformation, aDiscreteRange, aVisibleDiscreteRange, aUnitVisibleRange);
calculateDiscreteSizes(rViewInformation, aDiscreteRange, aVisibleDiscreteRange, aUnitVisibleRange);
bDiscreteSizesAreCalculated = true;
// display has changed and cannot be reused when resolution did change
if(!basegfx::fTools::equal(aDiscreteRange.getWidth(), mfOldDiscreteSizeX) ||
!basegfx::fTools::equal(aDiscreteRange.getHeight(), mfOldDiscreteSizeY))
// needs to be painted when the new part is not part of the last
// decomposition
if(!maOldUnitVisiblePart.isInside(aUnitVisibleRange))
{
bNeedNewDecomposition = true;
}
// display has changed and cannot be reused when resolution got bigger. It
// can be reused when resolution got smaller, though.
if(!bNeedNewDecomposition)
{
// needs to be painted when the new part is not part of the last
// decomposition
if(!maOldUnitVisiblePart.isInside(aUnitVisibleRange))
if(basegfx::fTools::more(aDiscreteRange.getWidth(), mfOldDiscreteSizeX) ||
basegfx::fTools::more(aDiscreteRange.getHeight(), mfOldDiscreteSizeY))
{
bNeedNewDecomposition = true;
}
@ -400,7 +460,7 @@ namespace drawinglayer
if(!bDiscreteSizesAreCalculated)
{
basegfx::B2DRange aVisibleDiscreteRange;
calculateDsicreteSizes(rViewInformation, aDiscreteRange, aVisibleDiscreteRange, aUnitVisibleRange);
calculateDiscreteSizes(rViewInformation, aDiscreteRange, aVisibleDiscreteRange, aUnitVisibleRange);
}
// remember last used NewDiscreteSize and NewUnitVisiblePart

View File

@ -162,7 +162,8 @@ namespace drawinglayer
{
// 2D Scene primitive containing 3D stuff; extract 2D contour in world coordinates
const primitive2d::ScenePrimitive2D& rScenePrimitive2DCandidate(static_cast< const primitive2d::ScenePrimitive2D& >(rCandidate));
const primitive2d::Primitive2DSequence xExtracted2DSceneGeometry(rScenePrimitive2DCandidate.getGeometry2D(getViewInformation2D()));
const primitive2d::Primitive2DSequence xExtracted2DSceneGeometry(rScenePrimitive2DCandidate.getGeometry2D());
const primitive2d::Primitive2DSequence xExtracted2DSceneShadow(rScenePrimitive2DCandidate.getShadow2D(getViewInformation2D()));
// proccess content
if(xExtracted2DSceneGeometry.hasElements())
@ -170,6 +171,12 @@ namespace drawinglayer
process(xExtracted2DSceneGeometry);
}
// proccess content
if(xExtracted2DSceneShadow.hasElements())
{
process(xExtracted2DSceneShadow);
}
break;
}
case PRIMITIVE2D_ID_WRONGSPELLPRIMITIVE2D :

View File

@ -48,6 +48,8 @@
#include <drawinglayer/primitive2d/sceneprimitive2d.hxx>
#include <drawinglayer/primitive2d/hittestprimitive2d.hxx>
#include <drawinglayer/primitive2d/pointarrayprimitive2d.hxx>
#include <basegfx/matrix/b3dhommatrix.hxx>
#include <drawinglayer/processor3d/cutfindprocessor3d.hxx>
//////////////////////////////////////////////////////////////////////////////
@ -164,6 +166,121 @@ namespace drawinglayer
return bRetval;
}
void HitTestProcessor2D::check3DHit(const primitive2d::ScenePrimitive2D& rCandidate)
{
// calculate relative point in unified 2D scene
const basegfx::B2DPoint aLogicHitPosition(getViewInformation2D().getInverseObjectToViewTransformation() * getDiscreteHitPosition());
// use bitmap check in ScenePrimitive2D
bool bTryFastResult(false);
if(rCandidate.tryToCheckLastVisualisationDirectHit(aLogicHitPosition, bTryFastResult))
{
mbHit = bTryFastResult;
}
else
{
basegfx::B2DHomMatrix aInverseSceneTransform(rCandidate.getObjectTransformation());
aInverseSceneTransform.invert();
const basegfx::B2DPoint aRelativePoint(aInverseSceneTransform * aLogicHitPosition);
// check if test point is inside scene's unified area at all
if(aRelativePoint.getX() >= 0.0 && aRelativePoint.getX() <= 1.0
&& aRelativePoint.getY() >= 0.0 && aRelativePoint.getY() <= 1.0)
{
// get 3D view information
const geometry::ViewInformation3D& rObjectViewInformation3D = rCandidate.getViewInformation3D();
// create HitPoint Front and Back, transform to object coordinates
basegfx::B3DHomMatrix aViewToObject(rObjectViewInformation3D.getObjectToView());
aViewToObject.invert();
const basegfx::B3DPoint aFront(aViewToObject * basegfx::B3DPoint(aRelativePoint.getX(), aRelativePoint.getY(), 0.0));
const basegfx::B3DPoint aBack(aViewToObject * basegfx::B3DPoint(aRelativePoint.getX(), aRelativePoint.getY(), 1.0));
if(!aFront.equal(aBack))
{
const primitive3d::Primitive3DSequence& rPrimitives = rCandidate.getChildren3D();
if(rPrimitives.hasElements())
{
// make BoundVolume empty and overlapping test for speedup
const basegfx::B3DRange aObjectRange(
drawinglayer::primitive3d::getB3DRangeFromPrimitive3DSequence(
rPrimitives, rObjectViewInformation3D));
if(!aObjectRange.isEmpty())
{
const basegfx::B3DRange aFrontBackRange(aFront, aBack);
if(aObjectRange.overlaps(aFrontBackRange))
{
// bound volumes hit, geometric cut tests needed
drawinglayer::processor3d::CutFindProcessor aCutFindProcessor(
rObjectViewInformation3D,
aFront,
aBack,
true);
aCutFindProcessor.process(rPrimitives);
mbHit = (0 != aCutFindProcessor.getCutPoints().size());
}
}
}
}
}
// This is needed to check hit with 3D shadows, too. HitTest is without shadow
// to keep compatible with previous versions. Keeping here as reference
//
// if(!getHit())
// {
// // if scene has shadow, check hit with shadow, too
// const primitive2d::Primitive2DSequence xExtracted2DSceneShadow(rCandidate.getShadow2D(getViewInformation2D()));
//
// if(xExtracted2DSceneShadow.hasElements())
// {
// // proccess extracted 2D content
// process(xExtracted2DSceneShadow);
// }
// }
if(!getHit())
{
// empty 3D scene; Check for border hit
basegfx::B2DPolygon aOutline(basegfx::tools::createPolygonFromRect(basegfx::B2DRange(0.0, 0.0, 1.0, 1.0)));
aOutline.transform(rCandidate.getObjectTransformation());
mbHit = checkHairlineHitWithTolerance(aOutline, getDiscreteHitTolerance());
}
// This is what the previous version did. Keeping it here for reference
//
// // 2D Scene primitive containing 3D stuff; extract 2D contour in world coordinates
// // This may be refined later to an own 3D HitTest renderer which processes the 3D
// // geometry directly
// const primitive2d::ScenePrimitive2D& rScenePrimitive2DCandidate(static_cast< const primitive2d::ScenePrimitive2D& >(rCandidate));
// const primitive2d::Primitive2DSequence xExtracted2DSceneGeometry(rScenePrimitive2DCandidate.getGeometry2D());
// const primitive2d::Primitive2DSequence xExtracted2DSceneShadow(rScenePrimitive2DCandidate.getShadow2D(getViewInformation2D()));
//
// if(xExtracted2DSceneGeometry.hasElements() || xExtracted2DSceneShadow.hasElements())
// {
// // proccess extracted 2D content
// process(xExtracted2DSceneGeometry);
// process(xExtracted2DSceneShadow);
// }
// else
// {
// // empty 3D scene; Check for border hit
// const basegfx::B2DRange aRange(rCandidate.getB2DRange(getViewInformation2D()));
// if(!aRange.isEmpty())
// {
// const basegfx::B2DPolygon aOutline(basegfx::tools::createPolygonFromRect(aRange));
// mbHit = checkHairlineHitWithTolerance(aOutline, getDiscreteHitTolerance());
// }
// }
}
}
void HitTestProcessor2D::processBasePrimitive2D(const primitive2d::BasePrimitive2D& rCandidate)
{
if(getHit())
@ -334,25 +451,8 @@ namespace drawinglayer
{
if(!getHitTextOnly())
{
// 2D Scene primitive containing 3D stuff; extract 2D contour in world coordinates
// This may be refined later to an own 3D HitTest renderer which processes the 3D
// geometry directly
const primitive2d::ScenePrimitive2D& rScenePrimitive2DCandidate(static_cast< const primitive2d::ScenePrimitive2D& >(rCandidate));
const primitive2d::Primitive2DSequence xExtracted2DSceneGeometry(rScenePrimitive2DCandidate.getGeometry2D(getViewInformation2D()));
if(xExtracted2DSceneGeometry.hasElements())
{
// proccess extracted 2D content
process(xExtracted2DSceneGeometry);
}
else
{
// empty 3D scene; Check for border hit
const basegfx::B2DRange aRange(rCandidate.getB2DRange(getViewInformation2D()));
basegfx::B2DPolygon aOutline(basegfx::tools::createPolygonFromRect(aRange));
mbHit = checkHairlineHitWithTolerance(aOutline, getDiscreteHitTolerance());
}
const primitive2d::ScenePrimitive2D& rSceneCandidate(static_cast< const primitive2d::ScenePrimitive2D& >(rCandidate));
check3DHit(rSceneCandidate);
}
break;
@ -365,14 +465,23 @@ namespace drawinglayer
// ignorable primitives
break;
}
case PRIMITIVE2D_ID_SHADOWPRIMITIVE2D :
{
// Ignore shadows; we do not want to have shadows hittable.
// Remove this one to make shadows hittable on demand.
break;
}
case PRIMITIVE2D_ID_TEXTSIMPLEPORTIONPRIMITIVE2D :
case PRIMITIVE2D_ID_TEXTDECORATEDPORTIONPRIMITIVE2D :
{
// for text use the BoundRect of the primitive itself
const basegfx::B2DRange aRange(rCandidate.getB2DRange(getViewInformation2D()));
basegfx::B2DPolygon aOutline(basegfx::tools::createPolygonFromRect(aRange));
if(!aRange.isEmpty())
{
const basegfx::B2DPolygon aOutline(basegfx::tools::createPolygonFromRect(aRange));
mbHit = checkFillHitWithTolerance(basegfx::B2DPolyPolygon(aOutline), getDiscreteHitTolerance());
}
break;
}
@ -392,10 +501,13 @@ namespace drawinglayer
// - For Bitamps, the mask and/or alpha information may be used
// - For MetaFiles, the MetaFile content may be used
const basegfx::B2DRange aRange(rCandidate.getB2DRange(getViewInformation2D()));
basegfx::B2DPolygon aOutline(basegfx::tools::createPolygonFromRect(aRange));
if(!aRange.isEmpty())
{
const basegfx::B2DPolygon aOutline(basegfx::tools::createPolygonFromRect(aRange));
mbHit = checkFillHitWithTolerance(basegfx::B2DPolyPolygon(aOutline), getDiscreteHitTolerance());
}
}
break;
}

View File

@ -113,6 +113,7 @@ namespace drawinglayer
{
// Prepare VDev, MetaFile and connections
OutputDevice* pLastOutputDevice = mpOutputDevice;
GDIMetaFile* pLastMetafile = mpMetaFile;
basegfx::B2DRange aPrimitiveRange(primitive2d::getB2DRangeFromPrimitive2DSequence(rContent, getViewInformation2D()));
// transform primitive range with current transformation (e.g shadow offset)
@ -125,6 +126,7 @@ namespace drawinglayer
MapMode aNewMapMode(pLastOutputDevice->GetMapMode());
mpOutputDevice = &aContentVDev;
mpMetaFile = &o_rContentMetafile;
aContentVDev.EnableOutput(false);
aContentVDev.SetMapMode(pLastOutputDevice->GetMapMode());
o_rContentMetafile.Record(&aContentVDev);
@ -145,6 +147,7 @@ namespace drawinglayer
o_rContentMetafile.SetPrefMapMode(aNewMapMode);
o_rContentMetafile.SetPrefSize(aPrimitiveRectangle.GetSize());
mpOutputDevice = pLastOutputDevice;
mpMetaFile = pLastMetafile;
return aPrimitiveRectangle;
}
@ -219,7 +222,7 @@ namespace drawinglayer
SvMemoryStream aMemStm;
aMemStm << *pSvtGraphicFill;
mrMetaFile.AddAction(new MetaCommentAction("XPATHFILL_SEQ_BEGIN", 0, static_cast< const BYTE* >(aMemStm.GetData()), aMemStm.Seek(STREAM_SEEK_TO_END)));
mpMetaFile->AddAction(new MetaCommentAction("XPATHFILL_SEQ_BEGIN", 0, static_cast< const BYTE* >(aMemStm.GetData()), aMemStm.Seek(STREAM_SEEK_TO_END)));
mnSvtGraphicFillCount++;
}
}
@ -229,7 +232,7 @@ namespace drawinglayer
if(pSvtGraphicFill && mnSvtGraphicFillCount)
{
mnSvtGraphicFillCount--;
mrMetaFile.AddAction(new MetaCommentAction("XPATHFILL_SEQ_END"));
mpMetaFile->AddAction(new MetaCommentAction("XPATHFILL_SEQ_END"));
delete pSvtGraphicFill;
}
}
@ -372,7 +375,7 @@ namespace drawinglayer
SvMemoryStream aMemStm;
aMemStm << *pSvtGraphicStroke;
mrMetaFile.AddAction(new MetaCommentAction("XPATHSTROKE_SEQ_BEGIN", 0, static_cast< const BYTE* >(aMemStm.GetData()), aMemStm.Seek(STREAM_SEEK_TO_END)));
mpMetaFile->AddAction(new MetaCommentAction("XPATHSTROKE_SEQ_BEGIN", 0, static_cast< const BYTE* >(aMemStm.GetData()), aMemStm.Seek(STREAM_SEEK_TO_END)));
mnSvtGraphicStrokeCount++;
}
}
@ -382,7 +385,7 @@ namespace drawinglayer
if(pSvtGraphicStroke && mnSvtGraphicStrokeCount)
{
mnSvtGraphicStrokeCount--;
mrMetaFile.AddAction(new MetaCommentAction("XPATHSTROKE_SEQ_END"));
mpMetaFile->AddAction(new MetaCommentAction("XPATHSTROKE_SEQ_END"));
delete pSvtGraphicStroke;
}
}
@ -392,7 +395,7 @@ namespace drawinglayer
VclMetafileProcessor2D::VclMetafileProcessor2D(const geometry::ViewInformation2D& rViewInformation, OutputDevice& rOutDev)
: VclProcessor2D(rViewInformation, rOutDev),
mrMetaFile(*rOutDev.GetConnectMetaFile()),
mpMetaFile(rOutDev.GetConnectMetaFile()),
mnSvtGraphicFillCount(0),
mnSvtGraphicStrokeCount(0),
mfCurrentUnifiedTransparence(0.0),
@ -816,19 +819,19 @@ namespace drawinglayer
{
default : // case drawinglayer::primitive2d::FIELD_TYPE_COMMON :
{
mrMetaFile.AddAction(new MetaCommentAction(aCommentStringCommon));
mpMetaFile->AddAction(new MetaCommentAction(aCommentStringCommon));
break;
}
case drawinglayer::primitive2d::FIELD_TYPE_PAGE :
{
mrMetaFile.AddAction(new MetaCommentAction(aCommentStringPage));
mpMetaFile->AddAction(new MetaCommentAction(aCommentStringPage));
break;
}
case drawinglayer::primitive2d::FIELD_TYPE_URL :
{
const rtl::OUString& rURL = rFieldPrimitive.getString();
const String aOldString(rURL);
mrMetaFile.AddAction(new MetaCommentAction(aCommentStringCommon, 0, reinterpret_cast< const BYTE* >(aOldString.GetBuffer()), 2 * aOldString.Len()));
mpMetaFile->AddAction(new MetaCommentAction(aCommentStringCommon, 0, reinterpret_cast< const BYTE* >(aOldString.GetBuffer()), 2 * aOldString.Len()));
break;
}
}
@ -838,7 +841,7 @@ namespace drawinglayer
process(rContent);
// for the end comment the type is not relevant yet, they are all the same. Just add.
mrMetaFile.AddAction(new MetaCommentAction(aCommentStringEnd));
mpMetaFile->AddAction(new MetaCommentAction(aCommentStringEnd));
if(mpPDFExtOutDevData && drawinglayer::primitive2d::FIELD_TYPE_URL == rFieldPrimitive.getType())
{
@ -863,7 +866,7 @@ namespace drawinglayer
// process recursively and add MetaFile comment
process(rLinePrimitive.get2DDecomposition(getViewInformation2D()));
mrMetaFile.AddAction(new MetaCommentAction(aCommentString));
mpMetaFile->AddAction(new MetaCommentAction(aCommentString));
break;
}
@ -876,7 +879,7 @@ namespace drawinglayer
// process recursively and add MetaFile comment
process(rBulletPrimitive.get2DDecomposition(getViewInformation2D()));
mrMetaFile.AddAction(new MetaCommentAction(aCommentString));
mpMetaFile->AddAction(new MetaCommentAction(aCommentString));
break;
}
@ -893,7 +896,7 @@ namespace drawinglayer
// process recursively and add MetaFile comment
process(rParagraphPrimitive.get2DDecomposition(getViewInformation2D()));
mrMetaFile.AddAction(new MetaCommentAction(aCommentString));
mpMetaFile->AddAction(new MetaCommentAction(aCommentString));
if(mpPDFExtOutDevData)
{
@ -910,9 +913,9 @@ namespace drawinglayer
static const ByteString aCommentStringB("XTEXT_PAINTSHAPE_END");
// add MetaFile comment, process recursively and add MetaFile comment
mrMetaFile.AddAction(new MetaCommentAction(aCommentStringA));
mpMetaFile->AddAction(new MetaCommentAction(aCommentStringA));
process(rBlockPrimitive.get2DDecomposition(getViewInformation2D()));
mrMetaFile.AddAction(new MetaCommentAction(aCommentStringB));
mpMetaFile->AddAction(new MetaCommentAction(aCommentStringB));
break;
}
@ -965,17 +968,17 @@ namespace drawinglayer
// create the entries for the respective break positions
if(i == nNextCellBreak)
{
mrMetaFile.AddAction(new MetaCommentAction(aCommentStringA, i - nTextPosition));
mpMetaFile->AddAction(new MetaCommentAction(aCommentStringA, i - nTextPosition));
nNextCellBreak = mxBreakIterator->nextCharacters(rTxt, i, rLocale, ::com::sun::star::i18n::CharacterIteratorMode::SKIPCELL, 1, nDone);
}
if(i == nNextWordBoundary.endPos)
{
mrMetaFile.AddAction(new MetaCommentAction(aCommentStringB, i - nTextPosition));
mpMetaFile->AddAction(new MetaCommentAction(aCommentStringB, i - nTextPosition));
nNextWordBoundary = mxBreakIterator->getWordBoundary(rTxt, i + 1, rLocale, ::com::sun::star::i18n::WordType::ANY_WORD, sal_True);
}
if(i == nNextSentenceBreak)
{
mrMetaFile.AddAction(new MetaCommentAction(aCommentStringC, i - nTextPosition));
mpMetaFile->AddAction(new MetaCommentAction(aCommentStringC, i - nTextPosition));
nNextSentenceBreak = mxBreakIterator->endOfSentence(rTxt, i + 1, rLocale);
}
}
@ -1057,7 +1060,7 @@ namespace drawinglayer
{
const Polygon aToolsPolygon(aCandidate);
mrMetaFile.AddAction(new MetaPolyLineAction(aToolsPolygon, aLineInfo));
mpMetaFile->AddAction(new MetaPolyLineAction(aToolsPolygon, aLineInfo));
}
}
@ -1500,7 +1503,10 @@ namespace drawinglayer
// svae old mfCurrentUnifiedTransparence and set new one
// so that contained SvtGraphicStroke may use the current one
const double fLastCurrentUnifiedTransparence(mfCurrentUnifiedTransparence);
mfCurrentUnifiedTransparence = rUniAlphaCandidate.getAlpha();
// #i105377# paint the content metafile opaque as the transparency gets
// split of into the gradient below
// mfCurrentUnifiedTransparence = rUniAlphaCandidate.getAlpha();
mfCurrentUnifiedTransparence = 0;
// various content, create content-metafile
GDIMetaFile aContentMetafile;

View File

@ -218,6 +218,12 @@ namespace drawinglayer
}
break;
}
case PRIMITIVE2D_ID_POLYPOLYGONBITMAPPRIMITIVE2D :
{
// direct draw of bitmap
RenderPolyPolygonBitmapPrimitive2D(static_cast< const primitive2d::PolyPolygonBitmapPrimitive2D& >(rCandidate));
break;
}
case PRIMITIVE2D_ID_POLYPOLYGONCOLORPRIMITIVE2D :
{
// direct draw of PolyPolygon with color

View File

@ -565,6 +565,98 @@ namespace drawinglayer
}
}
// direct draw of bitmap
void VclProcessor2D::RenderPolyPolygonBitmapPrimitive2D(const primitive2d::PolyPolygonBitmapPrimitive2D& rPolygonCandidate)
{
bool bDone(false);
const basegfx::B2DPolyPolygon& rPolyPolygon = rPolygonCandidate.getB2DPolyPolygon();
if(rPolyPolygon.count())
{
const attribute::FillBitmapAttribute& rFillBitmapAttribute = rPolygonCandidate.getFillBitmap();
const Bitmap& rBitmap = rFillBitmapAttribute.getBitmap();
if(rBitmap.IsEmpty())
{
// empty bitmap, done
bDone = true;
}
else
{
// try to catch cases where the bitmap will be color-modified to a single
// color (e.g. shadow). This would NOT be optimizable with an alpha channel
// at the Bitmap which we do not have here. When this should change, this
// optimization has to be reworked accordingly.
const sal_uInt32 nBColorModifierStackCount(maBColorModifierStack.count());
if(nBColorModifierStackCount)
{
const basegfx::BColorModifier& rTopmostModifier = maBColorModifierStack.getBColorModifier(nBColorModifierStackCount - 1);
if(basegfx::BCOLORMODIFYMODE_REPLACE == rTopmostModifier.getMode())
{
// the bitmap fill is in unified color, so we can replace it with
// a single polygon fill. The form of the fill depends on tiling
if(rFillBitmapAttribute.getTiling())
{
// with tiling, fill the whole PolyPolygon with the modifier color
basegfx::B2DPolyPolygon aLocalPolyPolygon(rPolyPolygon);
aLocalPolyPolygon.transform(maCurrentTransformation);
mpOutputDevice->SetLineColor();
mpOutputDevice->SetFillColor(Color(rTopmostModifier.getBColor()));
mpOutputDevice->DrawPolyPolygon(aLocalPolyPolygon);
}
else
{
// without tiling, only the area common to the bitmap tile and the
// PolyPolygon is filled. Create the bitmap tile area in object
// coordinates. For this, the object transformation needs to be created
// from the already scaled PolyPolygon. The tile area in object
// coordinates wil always be non-rotated, so it's not necessary to
// work with a polygon here
basegfx::B2DRange aTileRange(rFillBitmapAttribute.getTopLeft(),
rFillBitmapAttribute.getTopLeft() + rFillBitmapAttribute.getSize());
const basegfx::B2DRange aPolyPolygonRange(rPolyPolygon.getB2DRange());
basegfx::B2DHomMatrix aNewObjectTransform;
aNewObjectTransform.set(0, 0, aPolyPolygonRange.getWidth());
aNewObjectTransform.set(1, 1, aPolyPolygonRange.getHeight());
aNewObjectTransform.set(0, 2, aPolyPolygonRange.getMinX());
aNewObjectTransform.set(1, 2, aPolyPolygonRange.getMinY());
aTileRange.transform(aNewObjectTransform);
// now clip the object polyPolygon against the tile range
// to get the common area (OR)
basegfx::B2DPolyPolygon aTarget = basegfx::tools::clipPolyPolygonOnRange(rPolyPolygon, aTileRange, true, false);
if(aTarget.count())
{
aTarget.transform(maCurrentTransformation);
mpOutputDevice->SetLineColor();
mpOutputDevice->SetFillColor(Color(rTopmostModifier.getBColor()));
mpOutputDevice->DrawPolyPolygon(aTarget);
}
}
bDone = true;
}
}
}
}
else
{
// empty polyPolygon, done
bDone = true;
}
if(!bDone)
{
// use default decomposition
process(rPolygonCandidate.get2DDecomposition(getViewInformation2D()));
}
}
// direct draw of PolyPolygon with color
void VclProcessor2D::RenderPolyPolygonColorPrimitive2D(const primitive2d::PolyPolygonColorPrimitive2D& rPolygonCandidate)
{

View File

@ -0,0 +1,199 @@
/*************************************************************************
*
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile: zbufferprocessor3d.cxx,v $
*
* $Revision: 1.5 $
*
* last change: $Author: aw $ $Date: 2008-06-24 15:31:09 $
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
*
*
* GNU Lesser General Public License Version 2.1
* =============================================
* Copyright 2005 by Sun Microsystems, Inc.
* 901 San Antonio Road, Palo Alto, CA 94303, USA
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License version 2.1, as published by the Free Software Foundation.
*
* This library 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 for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*
************************************************************************/
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_drawinglayer.hxx"
#include <drawinglayer/processor3d/cutfindprocessor3d.hxx>
#include <drawinglayer/primitive3d/drawinglayer_primitivetypes3d.hxx>
#include <drawinglayer/primitive3d/transformprimitive3d.hxx>
#include <drawinglayer/primitive3d/hatchtextureprimitive3d.hxx>
#include <drawinglayer/primitive3d/hittestprimitive3d.hxx>
#include <drawinglayer/primitive3d/polypolygonprimitive3d.hxx>
#include <basegfx/polygon/b3dpolygon.hxx>
#include <basegfx/polygon/b3dpolygontools.hxx>
#include <basegfx/polygon/b3dpolypolygontools.hxx>
//////////////////////////////////////////////////////////////////////////////
namespace drawinglayer
{
namespace processor3d
{
CutFindProcessor::CutFindProcessor(const geometry::ViewInformation3D& rViewInformation,
const basegfx::B3DPoint& rFront,
const basegfx::B3DPoint& rBack,
bool bAnyHit)
: BaseProcessor3D(rViewInformation),
maFront(rFront),
maBack(rBack),
maResult(),
maCombinedTransform(),
mbAnyHit(bAnyHit)
{
}
void CutFindProcessor::processBasePrimitive3D(const primitive3d::BasePrimitive3D& rCandidate)
{
if(getAnyHit() && maResult.size())
{
// stop processing as soon as a hit was recognized
return;
}
// it is a BasePrimitive3D implementation, use getPrimitiveID() call for switch
switch(rCandidate.getPrimitiveID())
{
case PRIMITIVE3D_ID_TRANSFORMPRIMITIVE3D :
{
// transform group.
const primitive3d::TransformPrimitive3D& rPrimitive = static_cast< const primitive3d::TransformPrimitive3D& >(rCandidate);
// remember old and transform front, back to object coordinates
const basegfx::B3DPoint aLastFront(maFront);
const basegfx::B3DPoint aLastBack(maBack);
basegfx::B3DHomMatrix aInverseTrans(rPrimitive.getTransformation());
aInverseTrans.invert();
maFront *= aInverseTrans;
maBack *= aInverseTrans;
// remember current and create new transformation; add new object transform from right side
const geometry::ViewInformation3D aLastViewInformation3D(getViewInformation3D());
const geometry::ViewInformation3D aNewViewInformation3D(
aLastViewInformation3D.getObjectTransformation() * rPrimitive.getTransformation(),
aLastViewInformation3D.getOrientation(),
aLastViewInformation3D.getProjection(),
aLastViewInformation3D.getDeviceToView(),
aLastViewInformation3D.getViewTime(),
aLastViewInformation3D.getExtendedInformationSequence());
updateViewInformation(aNewViewInformation3D);
// #i102956# remember needed back-transform for found cuts (combine from right side)
const basegfx::B3DHomMatrix aLastCombinedTransform(maCombinedTransform);
maCombinedTransform = maCombinedTransform * rPrimitive.getTransformation();
// let break down
process(rPrimitive.getChildren());
// restore transformations and front, back
maCombinedTransform = aLastCombinedTransform;
updateViewInformation(aLastViewInformation3D);
maFront = aLastFront;
maBack = aLastBack;
break;
}
case PRIMITIVE3D_ID_POLYGONHAIRLINEPRIMITIVE3D :
{
// PolygonHairlinePrimitive3D, not used for hit test with planes, ignore. This
// means that also thick line expansion will not be hit-tested as
// PolyPolygonMaterialPrimitive3D
break;
}
case PRIMITIVE3D_ID_HATCHTEXTUREPRIMITIVE3D :
{
// #i97321#
// For HatchTexturePrimitive3D, do not use the decomposition since it will produce
// clipped hatch lines in 3D. It can be used when the hatch also has a filling, but for
// simplicity, just use the children which are the PolyPolygonMaterialPrimitive3D
// which define the hatched areas anyways; for HitTest this is more than adequate
const primitive3d::HatchTexturePrimitive3D& rPrimitive = static_cast< const primitive3d::HatchTexturePrimitive3D& >(rCandidate);
process(rPrimitive.getChildren());
break;
}
case PRIMITIVE3D_ID_HITTESTPRIMITIVE3D :
{
// HitTestPrimitive3D, force usage due to we are doing a hit test and this
// primitive only gets generated on 3d objects without fill, exactly for this
// purpose
const primitive3d::HitTestPrimitive3D& rPrimitive = static_cast< const primitive3d::HitTestPrimitive3D& >(rCandidate);
process(rPrimitive.getChildren());
break;
}
case PRIMITIVE3D_ID_POLYPOLYGONMATERIALPRIMITIVE3D :
{
// PolyPolygonMaterialPrimitive3D
const primitive3d::PolyPolygonMaterialPrimitive3D& rPrimitive = static_cast< const primitive3d::PolyPolygonMaterialPrimitive3D& >(rCandidate);
if(!maFront.equal(maBack))
{
const basegfx::B3DPolyPolygon& rPolyPolygon = rPrimitive.getB3DPolyPolygon();
const sal_uInt32 nPolyCount(rPolyPolygon.count());
if(nPolyCount)
{
const basegfx::B3DPolygon aPolygon(rPolyPolygon.getB3DPolygon(0));
const sal_uInt32 nPointCount(aPolygon.count());
if(nPointCount > 2)
{
const basegfx::B3DVector aPlaneNormal(aPolygon.getNormal());
if(!aPlaneNormal.equalZero())
{
const basegfx::B3DPoint aPointOnPlane(aPolygon.getB3DPoint(0));
double fCut(0.0);
if(basegfx::tools::getCutBetweenLineAndPlane(aPlaneNormal, aPointOnPlane, maFront, maBack, fCut))
{
const basegfx::B3DPoint aCutPoint(basegfx::interpolate(maFront, maBack, fCut));
if(basegfx::tools::isInside(rPolyPolygon, aCutPoint, false))
{
// #i102956# add result. Do not forget to do this in the coordinate
// system the processor get started with, so use the collected
// combined transformation from processed TransformPrimitive3D's
maResult.push_back(maCombinedTransform * aCutPoint);
}
}
}
}
}
}
break;
}
default :
{
// process recursively
process(rCandidate.get3DDecomposition(getViewInformation3D()));
break;
}
}
}
} // end of namespace processor3d
} // end of namespace drawinglayer
//////////////////////////////////////////////////////////////////////////////
// eof

View File

@ -46,6 +46,7 @@ ENABLE_EXCEPTIONS=TRUE
SLOFILES= \
$(SLO)$/baseprocessor3d.obj \
$(SLO)$/cutfindprocessor3d.obj \
$(SLO)$/defaultprocessor3d.obj \
$(SLO)$/shadow3dextractor.obj \
$(SLO)$/geometry2dextractor.obj \

View File

@ -83,6 +83,7 @@
#include <rtl/process.h>
#include <comphelper/processfactory.hxx>
#include <comphelper/namedvaluecollection.hxx>
#include "docholder.hxx"
#include "commonembobj.hxx"
@ -1025,20 +1026,14 @@ sal_Bool DocumentHolder::LoadDocToFrame( sal_Bool bInPlace )
if ( xDoc.is() )
{
// load new document in to the frame
uno::Reference< frame::XComponentLoader > xComponentLoader( m_xFrame, uno::UNO_QUERY );
if( !xComponentLoader.is() )
throw uno::RuntimeException();
uno::Reference< frame::XComponentLoader > xComponentLoader( m_xFrame, uno::UNO_QUERY_THROW );
uno::Sequence< beans::PropertyValue > aArgs( bInPlace ? 3 : 2 );
aArgs[0].Name = ::rtl::OUString::createFromAscii( "Model" );
aArgs[0].Value <<= m_xComponent;
aArgs[1].Name = ::rtl::OUString::createFromAscii( "ReadOnly" );
aArgs[1].Value <<= m_bReadOnly;
::comphelper::NamedValueCollection aArgs;
aArgs.put( "Model", m_xComponent );
aArgs.put( "ReadOnly", m_bReadOnly );
//aArgs.put( "Hidden", sal_True );
if ( bInPlace )
{
aArgs[2].Name = ::rtl::OUString::createFromAscii( "PluginMode" );
aArgs[2].Value <<= sal_Int16(1);
}
aArgs.put( "PluginMode", sal_Int16(1) );
::rtl::OUString sUrl;
uno::Reference< lang::XServiceInfo> xServiceInfo(xDoc,uno::UNO_QUERY);
if ( xServiceInfo.is()
@ -1055,7 +1050,7 @@ sal_Bool DocumentHolder::LoadDocToFrame( sal_Bool bInPlace )
xComponentLoader->loadComponentFromURL( sUrl,
rtl::OUString::createFromAscii( "_self" ),
0,
aArgs );
aArgs.getPropertyValues() );
return sal_True;
}

View File

@ -208,7 +208,10 @@ int SalAquaPicker::run()
}
if (retVal == NSFileHandlingPanelOKButton) {
implsetDisplayDirectory([[NSURL fileURLWithPath:[m_pDialog directory]] OUStringForInfo:FULLPATH]);
NSString* pDir = [m_pDialog directory];
if (pDir) {
implsetDisplayDirectory([[NSURL fileURLWithPath:pDir] OUStringForInfo:FULLPATH]);
}
}
DBG_PRINT_EXIT(CLASS_NAME, __func__, retVal);

View File

@ -560,7 +560,7 @@ void SvtFileDialog::Init_Impl
WinBits nStyle
)
{
sal_Bool bIsHighContrast = GetDisplayBackground().GetColor().IsDark();
sal_Bool bIsHighContrast = GetSettings().GetStyleSettings().GetHighContrastMode();
m_aImages = ImageList( SvtResId( bIsHighContrast ? RID_FILEPICKER_IMAGES_HC : RID_FILEPICKER_IMAGES ) );
_pImp->_nStyle = nStyle;
@ -2683,7 +2683,7 @@ void SvtFileDialog::implUpdateImages( )
{
// determine high contrast mode
{
sal_Bool bIsHighContrast = GetDisplayBackground().GetColor().IsDark();
sal_Bool bIsHighContrast = GetSettings().GetStyleSettings().GetHighContrastMode();
m_aImages = ImageList( SvtResId( bIsHighContrast ? RID_FILEPICKER_IMAGES_HC : RID_FILEPICKER_IMAGES ) );
}

View File

@ -231,7 +231,7 @@ void SvtUpButton_Impl::FillURLMenu( PopupMenu* _pMenu )
::svtools::VolumeInfo aVolInfo( sal_True /* volume */, sal_False /* remote */,
sal_False /* removable */, sal_False /* floppy */,
sal_False /* compact disk */ );
sal_Bool bIsHighContrast = pBox->GetDisplayBackground().GetColor().IsDark();
sal_Bool bIsHighContrast = pBox->GetSettings().GetStyleSettings().GetHighContrastMode();
Image aVolumeImage( SvFileInformationManager::GetFolderImage( aVolInfo, bIsHighContrast ) );
while ( nCount >= 1 )
@ -319,7 +319,7 @@ void SvtTravelButton_Impl::FillURLMenu( PopupMenu* _pMenu )
_pMenu->Clear();
sal_Bool bIsHighContrast = GetDialogParent()->GetView()->GetDisplayBackground().GetColor().IsDark();
sal_Bool bIsHighContrast = GetDialogParent()->GetView()->GetSettings().GetStyleSettings().GetHighContrastMode();
USHORT nItemId = 1;
String sDisplayName;

View File

@ -73,6 +73,8 @@ rtl::OUString SalGtkPicker::uritounicode(const gchar* pIn)
INetURLObject aURL(sURL);
if (INET_PROT_FILE == aURL.GetProtocol())
{
// all the URLs are handled by office in UTF-8
// so the Gnome FP related URLs should be converted accordingly
gchar *pEncodedFileName = g_filename_from_uri(pIn, NULL, NULL);
if ( pEncodedFileName )
{
@ -94,12 +96,19 @@ rtl::OUString SalGtkPicker::uritounicode(const gchar* pIn)
rtl::OString SalGtkPicker::unicodetouri(const rtl::OUString &rURL)
{
// all the URLs are handled by office in UTF-8 ( and encoded with "%xx" codes based on UTF-8 )
// so the Gnome FP related URLs should be converted accordingly
OString sURL = OUStringToOString(rURL, RTL_TEXTENCODING_UTF8);
INetURLObject aURL(rURL);
if (INET_PROT_FILE == aURL.GetProtocol())
{
rtl::OUString sOUURL = aURL.getExternalURL(INetURLObject::DECODE_WITH_CHARSET, osl_getThreadTextEncoding());
sURL = OUStringToOString( sOUURL, osl_getThreadTextEncoding());
OUString aNewURL = Reference<uri::XExternalUriReferenceTranslator>(Reference<XMultiServiceFactory>(comphelper::getProcessServiceFactory(), UNO_QUERY_THROW)->createInstance(OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.uri.ExternalUriReferenceTranslator"))), UNO_QUERY_THROW)->translateToExternal( rURL );
if( aNewURL.getLength() )
{
// At this point the URL should contain ascii characters only actually
sURL = OUStringToOString( aNewURL, osl_getThreadTextEncoding() );
}
}
return sURL;
}

View File

@ -84,12 +84,12 @@ static Reference< XInterface > SAL_CALL createInstance( const Reference< XMultiS
// the three uno functions that will be exported
extern "C"
{
void SAL_CALL component_getImplementationEnvironment( const sal_Char ** ppEnvTypeName, uno_Environment ** ppEnv )
void SAL_CALL component_getImplementationEnvironment( const sal_Char ** ppEnvTypeName, uno_Environment ** )
{
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
sal_Bool SAL_CALL component_writeInfo( void* pServiceManager, void* pRegistryKey )
sal_Bool SAL_CALL component_writeInfo( void*, void* pRegistryKey )
{
sal_Bool bRetVal = sal_True;
@ -110,7 +110,7 @@ extern "C"
return bRetVal;
}
void* SAL_CALL component_getFactory( const sal_Char* pImplName, uno_Interface* pSrvManager, uno_Interface* pRegistryKey )
void* SAL_CALL component_getFactory( const sal_Char* pImplName, uno_Interface* pSrvManager, uno_Interface* )
{
void* pRet = 0;

View File

@ -111,6 +111,8 @@ using namespace ::com::sun::star::uno;
// helper functions
//////////////////////////////////////////////////////////////////////////
#include <QDebug>
namespace
{
// controling event notifications
@ -157,14 +159,15 @@ KDE4FilePicker::KDE4FilePicker( const uno::Reference<lang::XMultiServiceFactory>
_resMgr( CREATEVERSIONRESMGR( fps_office ) )
{
_extraControls = new QWidget();
_layout = new QGridLayout(_extraControls);
_dialog = new KFileDialog(KUrl(""), QString(""), 0, _extraControls);
_dialog = new KFileDialog(KUrl("~"), QString(""), 0, _extraControls);
_dialog->setMode(KFile::File | KFile::LocalOnly);
//default mode
_dialog->setOperationMode(KFileDialog::Opening);
_dialog->setStyleSheet("color: black;");
}
KDE4FilePicker::~KDE4FilePicker()
@ -207,21 +210,12 @@ sal_Int16 SAL_CALL KDE4FilePicker::execute()
}
}
_dialog->clearFilter();
_dialog->setFilter(_filter);
_dialog->exec();
//nasty hack to get a local qt event loop going to process the dialog
//otherwise the dialog returns immediately
while (_dialog->isVisible())
{
kapp->processEvents(QEventLoop::WaitForMoreEvents);
}
//block and wait for user input
if (_dialog->result() == KFileDialog::Accepted)
{
if (_dialog->exec() == KFileDialog::Accepted)
return ExecutableDialogResults::OK;
}
return ExecutableDialogResults::CANCEL;
}
@ -230,13 +224,9 @@ void SAL_CALL KDE4FilePicker::setMultiSelectionMode( sal_Bool multiSelect )
throw( uno::RuntimeException )
{
if (multiSelect)
{
_dialog->setMode(KFile::Files | KFile::LocalOnly);
}
else
{
_dialog->setMode(KFile::File | KFile::LocalOnly);
}
}
void SAL_CALL KDE4FilePicker::setDefaultName( const ::rtl::OUString &name )
@ -250,7 +240,7 @@ void SAL_CALL KDE4FilePicker::setDisplayDirectory( const rtl::OUString &dir )
throw( uno::RuntimeException )
{
const QString url = toQString(dir);
_dialog->setStartDir(KUrl(url));
_dialog->setUrl(KUrl(url));
}
rtl::OUString SAL_CALL KDE4FilePicker::getDisplayDirectory()
@ -263,15 +253,62 @@ rtl::OUString SAL_CALL KDE4FilePicker::getDisplayDirectory()
uno::Sequence< ::rtl::OUString > SAL_CALL KDE4FilePicker::getFiles()
throw( uno::RuntimeException )
{
QStringList files = _dialog->selectedFiles();
QStringList rawFiles = _dialog->selectedFiles();
QStringList files;
uno::Sequence< ::rtl::OUString > seq(files.size());
for (int i=0 ; i<files.size() ; ++i)
// check if we need to add an extension
QString extension = "";
if ( _dialog->operationMode() == KFileDialog::Saving )
{
const QString fileName = "file:" + files[i];
seq[i] = toOUString(fileName);
QCheckBox *cb = dynamic_cast<QCheckBox*> (
_customWidgets[ExtendedFilePickerElementIds::CHECKBOX_AUTOEXTENSION ]);
if (cb->isChecked())
{
extension = _dialog->currentFilter(); // assuming filter value is like this *.ext
extension.replace("*","");
}
}
// Workaround for the double click selection KDE4 bug
// kde file picker returns the file and directories for selectedFiles()
// when a file is double clicked
// make a true list of files
const QString dir = "file://" + KUrl(rawFiles[0]).directory();
bool singleFile = true;
if (rawFiles.size() > 1)
{
singleFile = false;
//for multi file sequences, oo expects the first param to be the directory
//can't treat all cases like multi file because in some instances (inserting image)
//oo WANTS only one entry in the final list
files.append(dir);
}
for (USHORT i = 0; i < rawFiles.size(); ++i)
{
// if the raw file is not the base directory (see above kde bug)
// we add the file to list of avail files
if ((dir + "/") != ("file://" + rawFiles[i]))
{
QString filename = KUrl(rawFiles[i]).fileName();
if (singleFile)
filename.prepend(dir + "/");
//prevent extension append if we already have one
if (filename.endsWith(extension))
files.append(filename);
else
files.append(filename + extension);
}
}
// add all files and leading directory to outgoing OO sequence
uno::Sequence< ::rtl::OUString > seq(files.size());
for (int i = 0; i < files.size(); ++i)
seq[i] = toOUString(files[i]);
return seq;
}
@ -283,9 +320,7 @@ void SAL_CALL KDE4FilePicker::appendFilter( const ::rtl::OUString &title, const
QString f = toQString(filter);
if (!_filter.isNull())
{
_filter.append("\n");
}
//add to hash map for reverse lookup in getCurrentFilter
_filters.insert(f, t);
@ -294,15 +329,18 @@ void SAL_CALL KDE4FilePicker::appendFilter( const ::rtl::OUString &title, const
//see the docs
t.replace("/", "\\/");
// openoffice gives us filters separated by ';' qt dialogs just want space separated
f.replace(";", " ");
_filter.append(QString("%1|%2").arg(f).arg(t));
}
void SAL_CALL KDE4FilePicker::setCurrentFilter( const rtl::OUString &title )
throw( lang::IllegalArgumentException, uno::RuntimeException )
{
QString filter = toQString(title);
filter.replace("/", "\\/");
_dialog->filterWidget()->setCurrentFilter(filter);
QString t = toQString(title);
t.replace("/", "\\/");
_dialog->filterWidget()->setCurrentFilter(t);
}
rtl::OUString SAL_CALL KDE4FilePicker::getCurrentFilter()
@ -312,17 +350,29 @@ rtl::OUString SAL_CALL KDE4FilePicker::getCurrentFilter()
//default if not found
if (filter.isNull())
{
filter = "ODF Text Document (.odt)";
}
return toOUString(filter);
}
void SAL_CALL KDE4FilePicker::appendFilterGroup( const rtl::OUString&, const uno::Sequence<beans::StringPair>& )
void SAL_CALL KDE4FilePicker::appendFilterGroup( const rtl::OUString& , const uno::Sequence<beans::StringPair>& filters)
throw( lang::IllegalArgumentException, uno::RuntimeException )
{
//TODO
if (!_filter.isNull())
_filter.append(QString("\n"));
const USHORT length = filters.getLength();
for (USHORT i = 0; i < length; ++i)
{
beans::StringPair aPair = filters[i];
_filter.append(QString("%1|%2").arg(
toQString(aPair.Second).replace(";", " ")).arg(
toQString(aPair.First).replace("/","\\/")));
if (i != length - 1)
_filter.append('\n');
}
}
void SAL_CALL KDE4FilePicker::setValue( sal_Int16 controlId, sal_Int16, const uno::Any &value )

View File

@ -139,7 +139,7 @@ ________________________________________________________________________________
// define helper to get information about service environment
//*****************************************************************************************************************
#define COMPONENTGETIMPLEMENTATIONENVIRONMENT \
extern "C" void SAL_CALL component_getImplementationEnvironment( const sal_Char** ppEnvironmentTypeName , \
extern "C" SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment( const sal_Char** ppEnvironmentTypeName , \
uno_Environment** ) \
{ \
*ppEnvironmentTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME ; \
@ -150,7 +150,7 @@ ________________________________________________________________________________
// define registration of service
//*****************************************************************************************************************
#define COMPONENTWRITEINFO( INFOS ) \
extern "C" sal_Bool SAL_CALL component_writeInfo( void* /*pServiceManager*/ , \
extern "C" SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo( void* /*pServiceManager*/ , \
void* pRegistryKey ) \
{ \
LOG_REGISTRATION_WRITEINFO( "\t[start]\n" ) \
@ -185,7 +185,7 @@ ________________________________________________________________________________
// define method to instanciate new services
//*****************************************************************************************************************
#define COMPONENTGETFACTORY( IFFACTORIES ) \
extern "C" void* SAL_CALL component_getFactory( const sal_Char* pImplementationName , \
extern "C" SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory( const sal_Char* pImplementationName , \
void* pServiceManager , \
void* /*pRegistryKey*/ ) \
{ \

View File

@ -198,20 +198,21 @@ namespace framework{
#define LAYOUTMANAGER_PROPNAME_ASCII_REFRESHVISIBILITY "RefreshContextToolbarVisibility"
#define LAYOUTMANAGER_PROPNAME_ASCII_HIDECURRENTUI "HideCurrentUI"
#define LAYOUTMANAGER_PROPNAME_ASCII_LOCKCOUNT "LockCount"
#define LAYOUTMANAGER_PROPNAME_ASCII_PRESERVE_CONTENT_SIZE "PreserveContentSize"
#define LAYOUTMANAGER_PROPNAME_MENUBARCLOSER ::rtl::OUString::createFromAscii( LAYOUTMANAGER_PROPNAME_ASCII_MENUBARCLOSER )
#define LAYOUTMANAGER_PROPNAME_AUTOMATICTOOLBARS ::rtl::OUString::createFromAscii( LAYOUTMANAGER_PROPNAME_ASCII_AUTOMATICTOOLBARS )
#define LAYOUTMANAGER_PROPNAME_REFRESHVISIBILITY ::rtl::OUString::createFromAscii( LAYOUTMANAGER_PROPNAME_ASCII_REFRESHVISIBILITY )
#define LAYOUTMANAGER_PROPNAME_HIDECURRENTUI ::rtl::OUString::createFromAscii( LAYOUTMANAGER_PROPNAME_ASCII_HIDECURRENTUI )
#define LAYOUTMANAGER_PROPNAME_LOCKCOUNT ::rtl::OUString::createFromAscii( LAYOUTMANAGER_PROPNAME_ASCII_LOCKCOUNT )
#define LAYOUTMANAGER_PROPNAME_PRESERVE_CONTENT_SIZE ::rtl::OUString::createFromAscii( LAYOUTMANAGER_PROPNAME_ASCII_PRESERVE_CONTENT_SIZE )
#define LAYOUTMANAGER_PROPHANDLE_MENUBARCLOSER 0
#define LAYOUTMANAGER_PROPHANDLE_AUTOMATICTOOLBARS 1
#define LAYOUTMANAGER_PROPHANDLE_REFRESHVISIBILITY 2
#define LAYOUTMANAGER_PROPHANDLE_HIDECURRENTUI 3
#define LAYOUTMANAGER_PROPHANDLE_LOCKCOUNT 4
#define LAYOUTMANAGER_PROPCOUNT 5
#define LAYOUTMANAGER_PROPHANDLE_PRESERVE_CONTENT_SIZE 5
//_______________________________________________
/** properties for "UICommandDescription" class */

View File

@ -127,6 +127,7 @@ namespace framework{
#define SERVICENAME_IMAGEMANAGER DECLARE_ASCII("com.sun.star.ui.ImageManager" )
#define SERVICENAME_TABWINDOWSERVICE DECLARE_ASCII("com.sun.star.ui.dialogs.TabContainerWindow" )
#define SERVICENAME_WINDOWCONTENTFACTORYMANAGER DECLARE_ASCII("com.sun.star.ui.WindowContentFactoryManager" )
#define SERVICENAME_DISPLAYACCESS DECLARE_ASCII("com.sun.star.awt.DisplayAccess" )
//_________________________________________________________________________________________________________________
// used implementationnames by framework

View File

@ -69,6 +69,7 @@
#include <com/sun/star/ui/XUIElementFactory.hpp>
#include <com/sun/star/frame/XInplaceLayout.hpp>
#include <com/sun/star/ui/DockingArea.hpp>
#include <com/sun/star/awt/XTopWindow2.hpp>
#include <com/sun/star/awt/XDockableWindow.hpp>
#include <com/sun/star/awt/XDockableWindowListener.hpp>
#include <com/sun/star/frame/XMenuBarMergingAcceptor.hpp>
@ -78,8 +79,9 @@
// other includes
//_________________________________________________________________________________________________________________
#include <cppuhelper/propshlp.hxx>
#include <cppuhelper/implbase9.hxx>
#include <cppuhelper/interfacecontainer.hxx>
#include <cppuhelper/weak.hxx>
#include <comphelper/propertycontainer.hxx>
#include <vcl/wintypes.hxx>
#include <svtools/miscopt.hxx>
#include <vcl/toolbox.hxx>
@ -89,22 +91,23 @@ class MenuBar;
namespace framework
{
class GlobalSettings;
class LayoutManager : public css::lang::XTypeProvider ,
public css::lang::XServiceInfo ,
public ::com::sun::star::frame::XLayoutManager ,
public css::awt::XWindowListener ,
public css::frame::XFrameActionListener ,
public ::com::sun::star::ui::XUIConfigurationListener ,
public ::com::sun::star::frame::XInplaceLayout ,
public css::awt::XDockableWindowListener ,
public ::com::sun::star::frame::XMenuBarMergingAcceptor,
public css::frame::XLayoutManagerEventBroadcaster ,
typedef ::cppu::WeakImplHelper9 < ::com::sun::star::lang::XServiceInfo
, ::com::sun::star::frame::XLayoutManager
, ::com::sun::star::awt::XWindowListener
, ::com::sun::star::frame::XFrameActionListener
, ::com::sun::star::ui::XUIConfigurationListener
, ::com::sun::star::frame::XInplaceLayout
, ::com::sun::star::awt::XDockableWindowListener
, ::com::sun::star::frame::XMenuBarMergingAcceptor
, ::com::sun::star::frame::XLayoutManagerEventBroadcaster
> LayoutManager_Base;
typedef ::comphelper::OPropertyContainer LayoutManager_PBase;
class LayoutManager : public LayoutManager_Base ,
// base classes
// Order is neccessary for right initialization!
private ThreadHelpBase , // Struct for right initalization of mutex member! Must be first of baseclasses.
public ::cppu::OBroadcastHelper ,
public ::cppu::OPropertySetHelper , // => XPropertySet / XFastPropertySet / XMultiPropertySet
public ::cppu::OWeakObject // => XWeak, XInterface
public LayoutManager_PBase
{
public:
enum { DOCKINGAREAS_COUNT = 4 };
@ -388,6 +391,7 @@ namespace framework
// layouting methods
sal_Bool implts_compareRectangles( const ::com::sun::star::awt::Rectangle& rRect1, const ::com::sun::star::awt::Rectangle& rRect2 );
sal_Bool implts_resizeContainerWindow( const ::com::sun::star::awt::Size& rContainerSize, const ::com::sun::star::awt::Point& rComponentPos );
::Size implts_getTopBottomDockingAreaSizes();
::Size implts_getContainerWindowOutputSize();
::com::sun::star::awt::Rectangle implts_getDockingAreaWindowSizes();
@ -399,7 +403,8 @@ namespace framework
void implts_findNextDockingPos( ::com::sun::star::ui::DockingArea DockingArea, const ::Size& aUIElementSize, ::Point& rVirtualPos, ::Point& rPixelPos );
::com::sun::star::awt::Rectangle implts_calcDockingAreaSizes();
void implts_setDockingAreaWindowSizes( const com::sun::star::awt::Rectangle& rBorderSpace );
sal_Bool implts_doLayout( sal_Bool bForceRequestBorderSpace );
sal_Bool implts_doLayout( sal_Bool bForceRequestBorderSpace, sal_Bool bOuterResize );
void implts_doLayout_notify( sal_Bool bOuterResize );
// internal methods to control status/progress bar
::Size implts_getStatusBarSize();
@ -449,15 +454,15 @@ namespace framework
virtual ::cppu::IPropertyArrayHelper& SAL_CALL getInfoHelper();
virtual ::com::sun::star::uno::Reference< com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() throw (::com::sun::star::uno::RuntimeException);
static const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::Property > impl_getStaticPropertyDescriptor();
css::uno::Reference< css::lang::XMultiServiceFactory > m_xSMGR; /** reference to factory, which has created this instance. */
css::uno::Reference< css::util::XURLTransformer > m_xURLTransformer;
css::uno::Reference< css::container::XIndexAccess > m_xDisplayAccess;
css::uno::Reference< css::frame::XFrame > m_xFrame;
css::uno::Reference< ::com::sun::star::ui::XUIConfigurationManager > m_xModuleCfgMgr;
css::uno::Reference< ::com::sun::star::ui::XUIConfigurationManager > m_xDocCfgMgr;
css::uno::WeakReference< css::frame::XModel > m_xModel;
css::uno::Reference< css::awt::XWindow > m_xContainerWindow;
css::uno::Reference< css::awt::XTopWindow2 > m_xContainerTopWindow;
css::uno::Reference< css::awt::XWindow > m_xDockAreaWindows[DOCKINGAREAS_COUNT];
sal_Int32 m_nLockCount;
UIElementVector m_aUIElements;
@ -474,6 +479,7 @@ namespace framework
bool m_bStoreWindowState;
bool m_bHideCurrentUI;
bool m_bGlobalSettings;
bool m_bPreserveContentSize;
DockingOperation m_eDockOperation;
UIElement m_aDockUIElement;
css::awt::Rectangle m_aDockingArea;

View File

@ -186,6 +186,8 @@ void SAL_CALL PopupMenuControllerBase::highlight( const css::awt::MenuEvent& ) t
void PopupMenuControllerBase::impl_select(const Reference< XDispatch >& _xDispatch,const ::com::sun::star::util::URL& aURL)
{
Sequence<PropertyValue> aArgs;
OSL_ENSURE(_xDispatch.is(),"PopupMenuControllerBase::impl_select: No dispatch");
if ( _xDispatch.is() )
_xDispatch->dispatch( aURL, aArgs );
}
@ -204,7 +206,7 @@ void SAL_CALL PopupMenuControllerBase::select( const css::awt::MenuEvent& rEvent
xServiceManager = m_xServiceManager;
aLock.unlock();
if ( xPopupMenu.is() && xDispatch.is() )
if ( xPopupMenu.is() )
{
VCLXPopupMenu* pPopupMenu = (VCLXPopupMenu *)VCLXPopupMenu::GetImplementation( xPopupMenu );
if ( pPopupMenu )

View File

@ -67,17 +67,13 @@
#include <com/sun/star/lang/XMultiComponentFactory.hpp>
#include <com/sun/star/awt/XTopWindow.hpp>
#include <com/sun/star/awt/XSystemDependentMenuPeer.hpp>
#ifndef _COM_SUN_STAR_LANG_XYSTEMDEPENDENT_HPP_
#include <com/sun/star/lang/SystemDependent.hpp>
#endif
#include <com/sun/star/awt/VclWindowPeerAttribute.hpp>
#include <com/sun/star/awt/PosSize.hpp>
#include <com/sun/star/awt/XDevice.hpp>
#include <com/sun/star/awt/XSystemDependentWindowPeer.hpp>
#include <com/sun/star/awt/XTopWindow.hpp>
#ifndef _COM_SUN_STAR_UI_XMODULEUICONFIGURATIONMANAGER_HPP_
#include <com/sun/star/ui/XModuleUIConfigurationManagerSupplier.hpp>
#endif
#include <com/sun/star/ui/XUIConfigurationManagerSupplier.hpp>
#include <com/sun/star/ui/UIElementType.hpp>
#include <com/sun/star/container/XNameReplace.hpp>
@ -92,18 +88,18 @@
// other includes
//_________________________________________________________________________________________________________________
#include <svtools/imgdef.hxx>
#include <tools/diagnose_ex.h>
#include <vcl/window.hxx>
#include <vcl/wrkwin.hxx>
#include <vcl/dockingarea.hxx>
#include <vcl/svapp.hxx>
#include <vcl/i18nhelp.hxx>
#include <vcl/wall.hxx>
#ifndef _TOOLKIT_HELPER_VCLUNOHELPER_HXX_
#include <toolkit/unohlp.hxx>
#endif
#include <toolkit/awt/vclxwindow.hxx>
#include <toolkit/awt/vclxmenu.hxx>
#include <comphelper/mediadescriptor.hxx>
#include <comphelper/uno3.hxx>
#include <rtl/logfile.hxx>
#include <svtools/cmdoptions.hxx>
@ -354,40 +350,8 @@ static void impl_setDockingWindowVisibility( const css::uno::Reference< css::lan
//*****************************************************************************************************************
// XInterface, XTypeProvider, XServiceInfo
//*****************************************************************************************************************
DEFINE_XINTERFACE_14 ( LayoutManager ,
OWeakObject ,
DIRECT_INTERFACE( css::lang::XTypeProvider ),
DIRECT_INTERFACE( css::lang::XServiceInfo ),
DIRECT_INTERFACE( ::com::sun::star::frame::XLayoutManager ),
DIRECT_INTERFACE( css::awt::XWindowListener ),
DIRECT_INTERFACE( css::frame::XFrameActionListener ),
DIRECT_INTERFACE( ::com::sun::star::ui::XUIConfigurationListener ),
DIRECT_INTERFACE( ::com::sun::star::frame::XInplaceLayout ),
DIRECT_INTERFACE( css::awt::XDockableWindowListener ),
DIRECT_INTERFACE( ::com::sun::star::frame::XMenuBarMergingAcceptor ),
DIRECT_INTERFACE( css::frame::XLayoutManagerEventBroadcaster ),
DERIVED_INTERFACE( css::lang::XEventListener, css::frame::XFrameActionListener ),
DIRECT_INTERFACE( ::com::sun::star::beans::XMultiPropertySet ),
DIRECT_INTERFACE( ::com::sun::star::beans::XFastPropertySet ),
DIRECT_INTERFACE( ::com::sun::star::beans::XPropertySet )
)
DEFINE_XTYPEPROVIDER_14 ( LayoutManager ,
css::lang::XTypeProvider ,
css::lang::XServiceInfo ,
::com::sun::star::frame::XLayoutManager ,
css::awt::XWindowListener ,
css::frame::XFrameActionListener ,
css::lang::XEventListener ,
::com::sun::star::ui::XUIConfigurationListener ,
::com::sun::star::frame::XInplaceLayout ,
css::awt::XDockableWindowListener ,
::com::sun::star::frame::XMenuBarMergingAcceptor ,
css::frame::XLayoutManagerEventBroadcaster ,
::com::sun::star::beans::XMultiPropertySet ,
::com::sun::star::beans::XFastPropertySet ,
::com::sun::star::beans::XPropertySet
)
IMPLEMENT_FORWARD_XTYPEPROVIDER2( LayoutManager, LayoutManager_Base, LayoutManager_PBase )
IMPLEMENT_FORWARD_XINTERFACE2( LayoutManager, LayoutManager_Base, LayoutManager_PBase )
DEFINE_XSERVICEINFO_MULTISERVICE ( LayoutManager ,
::cppu::OWeakObject ,
@ -398,15 +362,14 @@ DEFINE_XSERVICEINFO_MULTISERVICE ( LayoutManager
DEFINE_INIT_SERVICE ( LayoutManager, {} )
LayoutManager::LayoutManager( const Reference< XMultiServiceFactory >& xServiceManager ) :
ThreadHelpBase( &Application::GetSolarMutex() )
LayoutManager::LayoutManager( const Reference< XMultiServiceFactory >& xServiceManager )
: LayoutManager_Base ( )
, ThreadHelpBase ( &Application::GetSolarMutex() )
, ::cppu::OBroadcastHelperVar< ::cppu::OMultiTypeInterfaceContainerHelper, ::cppu::OMultiTypeInterfaceContainerHelper::keyType >( m_aLock.getShareableOslMutex() )
, ::cppu::OPropertySetHelper ( *(static_cast< ::cppu::OBroadcastHelper* >(this)) )
, ::cppu::OWeakObject ( )
, LayoutManager_PBase ( *(static_cast< ::cppu::OBroadcastHelper* >(this)) )
, m_xSMGR( xServiceManager )
, m_xURLTransformer( Reference< XURLTransformer >( xServiceManager->createInstance(
SERVICENAME_URLTRANSFORMER),
UNO_QUERY ))
, m_xURLTransformer( xServiceManager->createInstance( SERVICENAME_URLTRANSFORMER ), UNO_QUERY )
, m_xDisplayAccess( xServiceManager->createInstance( SERVICENAME_DISPLAYACCESS ), UNO_QUERY )
, m_nLockCount( 0 )
, m_bActive( sal_False )
, m_bInplaceMenuSet( sal_False )
@ -421,6 +384,7 @@ LayoutManager::LayoutManager( const Reference< XMultiServiceFactory >& xServiceM
, m_bStoreWindowState( sal_False )
, m_bHideCurrentUI( false )
, m_bGlobalSettings( sal_False )
, m_bPreserveContentSize( false )
, m_eDockOperation( DOCKOP_ON_COLROW )
, m_pInplaceMenuBar( NULL )
, m_xModuleManager( Reference< XModuleManager >(
@ -462,6 +426,15 @@ LayoutManager::LayoutManager( const Reference< XMultiServiceFactory >& xServiceM
m_aAsyncLayoutTimer.SetTimeout( 50 );
m_aAsyncLayoutTimer.SetTimeoutHdl( LINK( this, LayoutManager, AsyncLayoutHdl ) );
registerProperty( LAYOUTMANAGER_PROPNAME_AUTOMATICTOOLBARS, LAYOUTMANAGER_PROPHANDLE_AUTOMATICTOOLBARS, css::beans::PropertyAttribute::TRANSIENT, &m_bAutomaticToolbars, ::getCppuType( &m_bAutomaticToolbars ) );
registerProperty( LAYOUTMANAGER_PROPNAME_HIDECURRENTUI, LAYOUTMANAGER_PROPHANDLE_HIDECURRENTUI, css::beans::PropertyAttribute::TRANSIENT, &m_bHideCurrentUI, ::getCppuType( &m_bHideCurrentUI ) );
registerProperty( LAYOUTMANAGER_PROPNAME_LOCKCOUNT, LAYOUTMANAGER_PROPHANDLE_LOCKCOUNT, css::beans::PropertyAttribute::TRANSIENT | css::beans::PropertyAttribute::READONLY, &m_nLockCount, getCppuType( &m_nLockCount ) );
registerProperty( LAYOUTMANAGER_PROPNAME_MENUBARCLOSER, LAYOUTMANAGER_PROPHANDLE_MENUBARCLOSER, css::beans::PropertyAttribute::TRANSIENT, &m_bMenuBarCloser, ::getCppuType( &m_bMenuBarCloser ) );
const sal_Bool bRefreshVisibility = sal_False;
registerPropertyNoMember( LAYOUTMANAGER_PROPNAME_REFRESHVISIBILITY, LAYOUTMANAGER_PROPHANDLE_REFRESHVISIBILITY, css::beans::PropertyAttribute::TRANSIENT, ::getCppuType( &bRefreshVisibility ), &bRefreshVisibility );
registerProperty( LAYOUTMANAGER_PROPNAME_PRESERVE_CONTENT_SIZE, LAYOUTMANAGER_PROPHANDLE_PRESERVE_CONTENT_SIZE, css::beans::PropertyAttribute::TRANSIENT, &m_bPreserveContentSize, ::getCppuType( &m_bPreserveContentSize ) );
}
LayoutManager::~LayoutManager()
@ -3240,7 +3213,7 @@ void LayoutManager::implts_updateUIElementsVisibleState( sal_Bool bSetVisible )
if ( bSetVisible )
{
implts_createNonContextSensitiveToolBars();
doLayout();
implts_doLayout_notify( sal_False );
}
else
{
@ -3516,7 +3489,7 @@ sal_Bool LayoutManager::implts_showProgressBar()
if ( !pWindow->IsVisible() )
{
pWindow->Show();
doLayout();
implts_doLayout_notify( sal_False );
}
return sal_True;
}
@ -3557,7 +3530,7 @@ sal_Bool LayoutManager::implts_hideProgressBar()
( bHideStatusBar || bInternalStatusBar ))
{
pWindow->Hide();
doLayout();
implts_doLayout_notify( sal_False );
return sal_True;
}
@ -3829,6 +3802,7 @@ throw ( RuntimeException )
{
m_aDockingArea = css::awt::Rectangle();
m_xContainerWindow = m_xDockingAreaAcceptor->getContainerWindow();
m_xContainerTopWindow.set( m_xContainerWindow, UNO_QUERY );
m_xContainerWindow->addWindowListener( Reference< css::awt::XWindowListener >( static_cast< OWeakObject* >( this ), UNO_QUERY ));
// we always must keep a connection to the window of our frame for resize events
@ -3913,7 +3887,7 @@ throw ( RuntimeException )
implts_createNonContextSensitiveToolBars();
}
implts_sortUIElements();
implts_doLayout( sal_True );
implts_doLayout( sal_True, sal_False );
}
}
@ -5477,26 +5451,33 @@ throw (RuntimeException)
implts_notifyListeners( css::frame::LayoutManagerEvents::UNLOCK, a );
if ( bDoLayout )
doLayout();
implts_doLayout_notify( sal_True );
}
void SAL_CALL LayoutManager::doLayout()
throw (RuntimeException)
{
sal_Bool bLayouted = implts_doLayout( sal_False );
implts_doLayout_notify( sal_True );
}
void LayoutManager::implts_doLayout_notify( sal_Bool bOuterResize )
{
sal_Bool bLayouted = implts_doLayout( sal_False, bOuterResize );
if ( bLayouted )
implts_notifyListeners( css::frame::LayoutManagerEvents::LAYOUT, Any() );
}
sal_Bool LayoutManager::implts_doLayout( sal_Bool bForceRequestBorderSpace )
sal_Bool LayoutManager::implts_doLayout( sal_Bool bForceRequestBorderSpace, sal_Bool bOuterResize )
{
RTL_LOGFILE_CONTEXT( aLog, "framework (cd100003) ::LayoutManager::implts_doLayout" );
sal_Bool bNoLock( sal_False );
css::awt::Rectangle aCurrBorderSpace;
Reference< css::awt::XWindow > xContainerWindow;
Reference< css::awt::XTopWindow2 > xContainerTopWindow;
Reference< css::awt::XWindow > xComponentWindow;
Reference< XDockingAreaAcceptor > xDockingAreaAcceptor;
bool bPreserveContentSize( false );
/* SAFE AREA ----------------------------------------------------------------------------------------------- */
ReadGuard aReadLock( m_aLock );
@ -5507,8 +5488,11 @@ sal_Bool LayoutManager::implts_doLayout( sal_Bool bForceRequestBorderSpace )
bNoLock = ( m_nLockCount == 0 );
xContainerWindow = m_xContainerWindow;
xContainerTopWindow = m_xContainerTopWindow;
xComponentWindow = m_xFrame->getComponentWindow();
xDockingAreaAcceptor = m_xDockingAreaAcceptor;
aCurrBorderSpace = m_aDockingArea;
bPreserveContentSize = m_bPreserveContentSize;
aReadLock.unlock();
/* SAFE AREA ----------------------------------------------------------------------------------------------- */
@ -5516,7 +5500,8 @@ sal_Bool LayoutManager::implts_doLayout( sal_Bool bForceRequestBorderSpace )
if ( bNoLock &&
xDockingAreaAcceptor.is() &&
xContainerWindow.is() )
xContainerWindow.is() &&
xComponentWindow.is() )
{
bLayouted = sal_True;
@ -5531,12 +5516,45 @@ sal_Bool LayoutManager::implts_doLayout( sal_Bool bForceRequestBorderSpace )
sal_Bool bEqual = implts_compareRectangles( aBorderSpace, aCurrBorderSpace );
if ( !bEqual || bForceRequestBorderSpace || bMustDoLayout )
{
// we always resize the content window (instead of the complete container window) if we're not set up
// to (attempt to) preserve the content window's size
if ( bOuterResize && !bPreserveContentSize )
bOuterResize = sal_False;
// maximized windows can resized their content window only, not their container window
if ( bOuterResize && xContainerTopWindow.is() && xContainerTopWindow->getIsMaximized() )
bOuterResize = sal_False;
// if the component window does not have a size (yet), then we can't use it to calc the container
// window size
css::awt::Rectangle aComponentRect = xComponentWindow->getPosSize();
if ( bOuterResize && ( aComponentRect.Width == 0 ) && ( aComponentRect.Height == 0 ) )
bOuterResize = sal_False;
bGotRequestedBorderSpace = sal_False;
if ( bOuterResize )
{
Reference< awt::XDevice > xDevice( xContainerWindow, uno::UNO_QUERY );
awt::DeviceInfo aContainerInfo = xDevice->getInfo();
awt::Size aRequestedSize( aComponentRect.Width + aContainerInfo.LeftInset + aContainerInfo.RightInset + aBorderSpace.X + aBorderSpace.Width,
aComponentRect.Height + aContainerInfo.TopInset + aContainerInfo.BottomInset + aBorderSpace.Y + aBorderSpace.Height );
awt::Point aComponentPos( aBorderSpace.X, aBorderSpace.Y );
bGotRequestedBorderSpace = implts_resizeContainerWindow( aRequestedSize, aComponentPos );
}
// if we did not do an container window resize, or it failed, then use the DockingAcceptor as usual
if ( !bGotRequestedBorderSpace )
{
bGotRequestedBorderSpace = xDockingAreaAcceptor->requestDockingAreaSpace( aBorderSpace );
if ( bGotRequestedBorderSpace )
{
xDockingAreaAcceptor->setDockingAreaSpace( aBorderSpace );
}
if ( bGotRequestedBorderSpace )
{
/* SAFE AREA ----------------------------------------------------------------------------------------------- */
aWriteGuard.lock();
m_aDockingArea = aBorderSpace;
@ -5603,6 +5621,52 @@ sal_Bool LayoutManager::implts_compareRectangles( const css::awt::Rectangle& rRe
( rRect1.Height == rRect2.Height ));
}
sal_Bool LayoutManager::implts_resizeContainerWindow( const awt::Size& rContainerSize,
const awt::Point& rComponentPos )
{
/* SAFE AREA ----------------------------------------------------------------------------------------------- */
ReadGuard aReadLock( m_aLock );
Reference< awt::XWindow > xContainerWindow = m_xContainerWindow;
Reference< awt::XTopWindow2 > xContainerTopWindow = m_xContainerTopWindow;
Reference< awt::XWindow > xComponentWindow = m_xFrame->getComponentWindow();
Reference< container::XIndexAccess > xDisplayAccess = m_xDisplayAccess;
aReadLock.unlock();
/* SAFE AREA ----------------------------------------------------------------------------------------------- */
// calculate the maximum size we have for the container window
awt::Rectangle aWorkArea;
try
{
sal_Int32 nDisplay = xContainerTopWindow->getDisplay();
Reference< beans::XPropertySet > xDisplayInfo( xDisplayAccess->getByIndex( nDisplay ), UNO_QUERY_THROW );
OSL_VERIFY( xDisplayInfo->getPropertyValue( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "WorkArea" ) ) ) >>= aWorkArea );
}
catch( const Exception& )
{
DBG_UNHANDLED_EXCEPTION();
}
if ( ( aWorkArea.Width > 0 ) && ( aWorkArea.Height > 0 ) )
{
if ( ( rContainerSize.Width > aWorkArea.Width )
|| ( rContainerSize.Height > aWorkArea.Height )
)
return sal_False;
// Strictly, this is not correct. If we have a multi-screen display (css.awt.DisplayAccess.MultiDisplay == true),
// the the "effective work area" would be much larger than the work area of a single display, since we could in theory
// position the container window across multiple screens.
// However, this should suffice as a heuristics here ... (nobody really wants to check whethere the different screens are
// stacked horizontally or vertically, whether their work areas can really be combined, or are separated by non-work-areas,
// and the like ... right?)
}
// resize our container window
xContainerWindow->setPosSize( 0, 0, rContainerSize.Width, rContainerSize.Height, css::awt::PosSize::SIZE );
// position the component window
xComponentWindow->setPosSize( rComponentPos.X, rComponentPos.Y, 0, 0, css::awt::PosSize::POS );
return sal_True;
}
void SAL_CALL LayoutManager::setVisible( sal_Bool bVisible )
throw (::com::sun::star::uno::RuntimeException)
{
@ -7028,7 +7092,7 @@ IMPL_LINK( LayoutManager, AsyncLayoutHdl, Timer *, EMPTYARG )
aReadLock.unlock();
implts_setDockingAreaWindowSizes( aDockingArea );
implts_doLayout( sal_True );
implts_doLayout( sal_True, sal_False );
return 0;
}
@ -7079,7 +7143,8 @@ throw ( RuntimeException )
/* SAFE AREA ----------------------------------------------------------------------------------------------- */
implts_reset( sal_True );
implts_doLayout( sal_True );
implts_doLayout( sal_True, sal_False );
implts_doLayout( sal_True, sal_True );
}
else if (( aEvent.Action == FrameAction_FRAME_UI_ACTIVATED ) ||
( aEvent.Action == FrameAction_FRAME_UI_DEACTIVATING ))
@ -7106,7 +7171,6 @@ throw ( RuntimeException )
// SAFE AREA -----------------------------------------------------------------------------------------------
implts_reset( sal_False );
}
}
@ -7148,6 +7212,7 @@ throw( RuntimeException )
}
m_xInplaceMenuBar.clear();
m_xContainerWindow.clear();
m_xContainerTopWindow.clear();
implts_destroyDockingAreaWindows();
if ( m_xModuleCfgMgr.is() )
@ -7198,6 +7263,7 @@ throw( RuntimeException )
}
m_xInplaceMenuBar.clear();
m_xContainerWindow.clear();
m_xContainerTopWindow.clear();
}
else if ( rEvent.Source == Reference< XInterface >( m_xDocCfgMgr, UNO_QUERY ))
{
@ -7412,65 +7478,21 @@ sal_Bool SAL_CALL LayoutManager::convertFastPropertyValue( Any& aConverted
sal_Int32 nHandle ,
const Any& aValue ) throw( com::sun::star::lang::IllegalArgumentException )
{
// Initialize state with FALSE !!!
// (Handle can be invalid)
sal_Bool bReturn = sal_False;
switch( nHandle )
{
case LAYOUTMANAGER_PROPHANDLE_MENUBARCLOSER :
bReturn = PropHelper::willPropertyBeChanged(
com::sun::star::uno::makeAny(m_bMenuBarCloser),
aValue,
aOldValue,
aConvertedValue);
break;
case LAYOUTMANAGER_PROPHANDLE_AUTOMATICTOOLBARS:
bReturn = PropHelper::willPropertyBeChanged(
com::sun::star::uno::makeAny(m_bAutomaticToolbars),
aValue,
aOldValue,
aConvertedValue);
break;
case LAYOUTMANAGER_PROPHANDLE_REFRESHVISIBILITY:
bReturn = PropHelper::willPropertyBeChanged(
com::sun::star::uno::makeAny(sal_False),
aValue,
aOldValue,
aConvertedValue);
break;
case LAYOUTMANAGER_PROPHANDLE_HIDECURRENTUI:
bReturn = PropHelper::willPropertyBeChanged(
com::sun::star::uno::makeAny(m_bHideCurrentUI),
aValue,
aOldValue,
aConvertedValue);
break;
}
// Return state of operation.
return bReturn ;
return LayoutManager_PBase::convertFastPropertyValue( aConvertedValue, aOldValue, nHandle, aValue );
}
void SAL_CALL LayoutManager::setFastPropertyValue_NoBroadcast( sal_Int32 nHandle ,
const com::sun::star::uno::Any& aValue ) throw( com::sun::star::uno::Exception )
{
if ( nHandle != LAYOUTMANAGER_PROPHANDLE_REFRESHVISIBILITY )
LayoutManager_PBase::setFastPropertyValue_NoBroadcast( nHandle, aValue );
switch( nHandle )
{
case LAYOUTMANAGER_PROPHANDLE_MENUBARCLOSER:
{
sal_Bool bCloserState = sal_False;
aValue >>= bCloserState;
implts_setMenuBarCloser( bCloserState );
implts_updateMenuBarClose();
break;
}
case LAYOUTMANAGER_PROPHANDLE_AUTOMATICTOOLBARS:
{
sal_Bool bValue = sal_Bool();
if ( aValue >>= bValue )
m_bAutomaticToolbars = bValue;
break;
}
case LAYOUTMANAGER_PROPHANDLE_REFRESHVISIBILITY:
{
sal_Bool bValue = sal_Bool();
@ -7478,40 +7500,17 @@ void SAL_CALL LayoutManager::setFastPropertyValue_NoBroadcast( sal_Int32
implts_refreshContextToolbarsVisibility();
break;
}
case LAYOUTMANAGER_PROPHANDLE_HIDECURRENTUI:
{
sal_Bool bValue = sal_Bool();
if ( aValue >>= bValue )
{
m_bHideCurrentUI = bValue;
implts_setCurrentUIVisibility( !bValue );
}
implts_setCurrentUIVisibility( !m_bHideCurrentUI );
break;
}
}
}
void SAL_CALL LayoutManager::getFastPropertyValue( com::sun::star::uno::Any& aValue ,
sal_Int32 nHandle ) const
{
switch( nHandle )
{
case LAYOUTMANAGER_PROPHANDLE_MENUBARCLOSER:
aValue <<= m_bMenuBarCloser;
break;
case LAYOUTMANAGER_PROPHANDLE_AUTOMATICTOOLBARS:
aValue <<= m_bAutomaticToolbars;
break;
case LAYOUTMANAGER_PROPHANDLE_REFRESHVISIBILITY:
aValue <<= sal_False;
break;
case LAYOUTMANAGER_PROPHANDLE_HIDECURRENTUI:
aValue <<= m_bHideCurrentUI;
break;
case LAYOUTMANAGER_PROPHANDLE_LOCKCOUNT:
aValue <<= m_nLockCount;
break;
}
LayoutManager_PBase::getFastPropertyValue( aValue, nHandle );
}
::cppu::IPropertyArrayHelper& SAL_CALL LayoutManager::getInfoHelper()
@ -7530,9 +7529,9 @@ void SAL_CALL LayoutManager::getFastPropertyValue( com::sun::star::uno::Any& aVa
if( pInfoHelper == NULL )
{
// Define static member to give structure of properties to baseclass "OPropertySetHelper".
// "impl_getStaticPropertyDescriptor" is a non exported and static funtion, who will define a static propertytable.
// "sal_True" say: Table is sorted by name.
static ::cppu::OPropertyArrayHelper aInfoHelper( impl_getStaticPropertyDescriptor(), sal_True );
uno::Sequence< beans::Property > aProperties;
describeProperties( aProperties );
static ::cppu::OPropertyArrayHelper aInfoHelper( aProperties, sal_True );
pInfoHelper = &aInfoHelper;
}
}
@ -7564,28 +7563,5 @@ com::sun::star::uno::Reference< com::sun::star::beans::XPropertySetInfo > SAL_CA
return (*pInfo);
}
const com::sun::star::uno::Sequence< com::sun::star::beans::Property > LayoutManager::impl_getStaticPropertyDescriptor()
{
// Create a new static property array to initialize sequence!
// Table of all predefined properties of this class. Its used from OPropertySetHelper-class!
// Don't forget to change the defines (see begin of this file), if you add, change or delete a property in this list!!!
// It's necessary for methods of OPropertySetHelper.
// ATTENTION:
// YOU MUST SORT FOLLOW TABLE BY NAME ALPHABETICAL !!!
static const com::sun::star::beans::Property pProperties[] =
{
com::sun::star::beans::Property( LAYOUTMANAGER_PROPNAME_AUTOMATICTOOLBARS, LAYOUTMANAGER_PROPHANDLE_AUTOMATICTOOLBARS, ::getCppuType((const sal_Bool*)NULL), com::sun::star::beans::PropertyAttribute::TRANSIENT ),
com::sun::star::beans::Property( LAYOUTMANAGER_PROPNAME_HIDECURRENTUI, LAYOUTMANAGER_PROPHANDLE_HIDECURRENTUI, ::getCppuType((const sal_Bool*)NULL), com::sun::star::beans::PropertyAttribute::TRANSIENT ),
com::sun::star::beans::Property( LAYOUTMANAGER_PROPNAME_LOCKCOUNT, LAYOUTMANAGER_PROPHANDLE_LOCKCOUNT, ::getCppuType((const sal_Int32*)NULL), com::sun::star::beans::PropertyAttribute::TRANSIENT|com::sun::star::beans::PropertyAttribute::READONLY ),
com::sun::star::beans::Property( LAYOUTMANAGER_PROPNAME_MENUBARCLOSER, LAYOUTMANAGER_PROPHANDLE_MENUBARCLOSER, ::getCppuType((const sal_Bool*)NULL), com::sun::star::beans::PropertyAttribute::TRANSIENT ),
com::sun::star::beans::Property( LAYOUTMANAGER_PROPNAME_REFRESHVISIBILITY, LAYOUTMANAGER_PROPHANDLE_REFRESHVISIBILITY, ::getCppuType((const sal_Bool*)NULL), com::sun::star::beans::PropertyAttribute::TRANSIENT )
};
// Use it to initialize sequence!
static const com::sun::star::uno::Sequence< com::sun::star::beans::Property > lPropertyDescriptor( pProperties, LAYOUTMANAGER_PROPCOUNT );
// Return static "PropertyDescriptor"
return lPropertyDescriptor;
}
} // namespace framework

View File

@ -39,6 +39,8 @@ ENABLE_EXCEPTIONS= TRUE
.INCLUDE : settings.mk
VISIBILITY_HIDDEN = TRUE
# --- Generate -----------------------------------------------------
SLOFILES= \

View File

@ -40,6 +40,8 @@ LIBTARGET= NO
.INCLUDE : settings.mk
VISIBILITY_HIDDEN = TRUE
# --- Generate -----------------------------------------------------
SLOFILES= \

View File

@ -231,6 +231,13 @@ BackingWindow::~BackingWindow()
delete mpAccExec;
}
void BackingWindow::GetFocus()
{
if( IsVisible() )
maWriterButton.GrabFocus();
Window::GetFocus();
}
class ImageContainerRes : public Resource
{
public:

View File

@ -173,6 +173,7 @@ namespace framework
virtual void DataChanged( const DataChangedEvent& rDCEvt );
virtual Window* GetParentLabelFor( const Window* pLabel ) const;
virtual Window* GetParentLabeledBy( const Window* pLabeled ) const;
virtual void GetFocus();
void setOwningFrame( const com::sun::star::uno::Reference< com::sun::star::frame::XFrame >& xFrame );
};

View File

@ -188,6 +188,8 @@ void FontMenuController::impl_select(const Reference< XDispatch >& _xDispatch,co
m_xFrame,
aTargetURL,
Sequence<PropertyValue>());
OSL_ENSURE(_xDispatch.is(),"FontMenuController::impl_select: No dispatch");
if ( _xDispatch.is() )
_xDispatch->dispatch( aTargetURL, aArgs );
}

View File

@ -326,6 +326,8 @@ void FontSizeMenuController::impl_select(const Reference< XDispatch >& _xDispatc
Sequence<PropertyValue> aArgs;
if(::comphelper::UiEventsLogger::isEnabled()) //#i88653#
UiEventLogHelper(::rtl::OUString::createFromAscii("FontSizeMenuController")).log(m_xServiceManager, m_xFrame, aTargetURL, aArgs);
OSL_ENSURE(_xDispatch.is(),"FontSizeMenuController::impl_select: No dispatch");
if ( _xDispatch.is() )
_xDispatch->dispatch( aTargetURL, aArgs );
}

View File

@ -254,6 +254,8 @@ void HeaderMenuController::impl_select(const Reference< XDispatch >& _xDispatch,
Sequence<PropertyValue> aArgs;
if(::comphelper::UiEventsLogger::isEnabled()) //#i88653#
UiEventLogHelper(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(m_bFooter ? "FooterMenuController" : "HeaderMenuController"))).log(m_xServiceManager, m_xFrame, aTargetURL, aArgs);
OSL_ENSURE(_xDispatch.is(),"HeaderMenuController::impl_select: No dispatch");
if ( _xDispatch.is() )
_xDispatch->dispatch( aTargetURL, aArgs );
}

View File

@ -160,6 +160,8 @@ void ObjectMenuController::impl_select(const Reference< XDispatch >& _xDispatch,
Sequence<PropertyValue> aArgs;
if(::comphelper::UiEventsLogger::isEnabled()) //#i88653#
UiEventLogHelper(::rtl::OUString::createFromAscii("ObjectMenuController")).log(m_xServiceManager, m_xFrame, aTargetURL, aArgs);
OSL_ENSURE(_xDispatch.is(),"ObjectMenuController::impl_select: No dispatch");
if ( _xDispatch.is() )
_xDispatch->dispatch( aTargetURL, aArgs );
}

View File

@ -44,10 +44,6 @@
#include <xml/saxnamespacefilter.hxx>
#include <services.h>
#ifndef _FRAMEWORK_SERVICES_LAYOUTMANAGER_HXX_
#include <services/layoutmanager.hxx>
#endif
#ifndef _FRAMEWORK_UIELEMENT_ROOTITEMCONTAINER_HXX_
#include <uielement/rootitemcontainer.hxx>
#endif

View File

@ -275,7 +275,8 @@ Reference< XHyphenatedWord > SAL_CALL
return xRes;
// search for entry with that language
LangSvcEntries_Hyph *pEntry = aSvcMap[ nLanguage ].get();
HyphSvcByLangMap_t::iterator aIt( aSvcMap.find( nLanguage ) );
LangSvcEntries_Hyph *pEntry = aIt != aSvcMap.end() ? aIt->second.get() : NULL;
BOOL bWordModified = FALSE;
if (!pEntry || (nMaxLeading < 0 || nMaxLeading > nWordLen))
@ -418,7 +419,8 @@ Reference< XHyphenatedWord > SAL_CALL
return xRes;
// search for entry with that language
LangSvcEntries_Hyph *pEntry = aSvcMap[ nLanguage ].get();
HyphSvcByLangMap_t::iterator aIt( aSvcMap.find( nLanguage ) );
LangSvcEntries_Hyph *pEntry = aIt != aSvcMap.end() ? aIt->second.get() : NULL;
BOOL bWordModified = FALSE;
if (!pEntry || !(0 <= nIndex && nIndex <= nWordLen - 2))
@ -555,7 +557,8 @@ Reference< XPossibleHyphens > SAL_CALL
return xRes;
// search for entry with that language
LangSvcEntries_Hyph *pEntry = aSvcMap[ nLanguage ].get();
HyphSvcByLangMap_t::iterator aIt( aSvcMap.find( nLanguage ) );
LangSvcEntries_Hyph *pEntry = aIt != aSvcMap.end() ? aIt->second.get() : NULL;
if (!pEntry)
{
@ -714,7 +717,8 @@ Sequence< OUString >
// search for entry with that language and use data from that
INT16 nLanguage = LocaleToLanguage( rLocale );
HyphenatorDispatcher *pThis = (HyphenatorDispatcher *) this;
const LangSvcEntries_Hyph *pEntry = pThis->aSvcMap[ nLanguage ].get();
const HyphSvcByLangMap_t::iterator aIt( pThis->aSvcMap.find( nLanguage ) );
const LangSvcEntries_Hyph *pEntry = aIt != aSvcMap.end() ? aIt->second.get() : NULL;
if (pEntry)
{
aRes = pEntry->aSvcImplNames;

View File

@ -330,7 +330,8 @@ BOOL SpellCheckerDispatcher::isValid_Impl(
return bRes;
// search for entry with that language
LangSvcEntries_Spell *pEntry = aSvcMap[ nLanguage ].get();
SpellSvcByLangMap_t::iterator aIt( aSvcMap.find( nLanguage ) );
LangSvcEntries_Spell *pEntry = aIt != aSvcMap.end() ? aIt->second.get() : NULL;
if (!pEntry)
{
@ -497,7 +498,8 @@ Reference< XSpellAlternatives > SpellCheckerDispatcher::spell_Impl(
return xRes;
// search for entry with that language
LangSvcEntries_Spell *pEntry = aSvcMap[ nLanguage ].get();
SpellSvcByLangMap_t::iterator aIt( aSvcMap.find( nLanguage ) );
LangSvcEntries_Spell *pEntry = aIt != aSvcMap.end() ? aIt->second.get() : NULL;
if (!pEntry)
{
@ -848,7 +850,8 @@ Sequence< OUString >
// search for entry with that language and use data from that
INT16 nLanguage = LocaleToLanguage( rLocale );
SpellCheckerDispatcher *pThis = (SpellCheckerDispatcher *) this;
const LangSvcEntries_Spell *pEntry = pThis->aSvcMap[ nLanguage ].get();
const SpellSvcByLangMap_t::iterator aIt( pThis->aSvcMap.find( nLanguage ) );
const LangSvcEntries_Spell *pEntry = aIt != aSvcMap.end() ? aIt->second.get() : NULL;
if (pEntry)
aRes = pEntry->aSvcImplNames;

View File

@ -136,7 +136,8 @@ Sequence< Reference< XMeaning > > SAL_CALL
return aMeanings;
// search for entry with that language
LangSvcEntries_Thes *pEntry = aSvcMap[ nLanguage ].get();
ThesSvcByLangMap_t::iterator aIt( aSvcMap.find( nLanguage ) );
LangSvcEntries_Thes *pEntry = aIt != aSvcMap.end() ? aIt->second.get() : NULL;
if (!pEntry)
{
@ -265,7 +266,8 @@ Sequence< OUString >
// search for entry with that language and use data from that
INT16 nLanguage = LocaleToLanguage( rLocale );
ThesaurusDispatcher *pThis = (ThesaurusDispatcher *) this;
const LangSvcEntries_Thes *pEntry = pThis->aSvcMap[ nLanguage ].get();
const ThesSvcByLangMap_t::iterator aIt( pThis->aSvcMap.find( nLanguage ) );
const LangSvcEntries_Thes *pEntry = aIt != aSvcMap.end() ? aIt->second.get() : NULL;
if (pEntry)
aRes = pEntry->aSvcImplNames;

View File

@ -35,11 +35,6 @@
<value>1</value>
</prop>
</node>
<node oor:name="DefaultSearchEngine" install:module="defaultsearchengine">
<prop oor:name="Name">
<value>Google</value>
</prop>
</node>
<node oor:name="SearchEngines">
<node oor:name="Euroseek" oor:op="replace">
<node oor:name="And">

View File

@ -521,6 +521,14 @@
<prop oor:name="DynamicBorderColors" oor:type="xs:boolean">
<value>true</value>
</prop>
<prop oor:name="UseDocumentTextMetrics" oor:type="xs:boolean">
<value>false</value>
</prop>
</node>
<node oor:name="com.sun.star.sheet.SpreadsheetDocument">
<prop oor:name="UseDocumentTextMetrics" oor:type="xs:boolean">
<value>false</value>
</prop>
</node>
</node>
</node>

View File

@ -702,33 +702,6 @@
<node oor:name="Topics"/>
</node>
</node>
<node oor:name="Cursor" >
<node oor:name="DirectCursor" >
<prop oor:name="UseDirectCursor" install:module="directcursor">
<value>true</value>
</prop>
<prop oor:name="Insert" install:module="directcursor">
<value>3</value>
</prop>
</node>
</node>
<node oor:name="DefaultFont" install:module="defaultfontarial">
<prop oor:name="Standard">
<value >Arial</value>
</prop>
<prop oor:name="Heading">
<value >Arial</value>
</prop>
<prop oor:name="List">
<value >Arial</value>
</prop>
<prop oor:name="Caption">
<value >Arial</value>
</prop>
<prop oor:name="Index">
<value >Arial</value>
</prop>
</node>
<node oor:name="Layout" >
<node oor:name="Other" >
<prop oor:name="TabStop">

View File

@ -89,8 +89,6 @@ MODULEFILES= \
Paths-macosx.xcu \
Paths-unxwnt.xcu \
Writer-cjk.xcu \
Writer-defaultfontarial.xcu \
Writer-directcursor.xcu \
Writer-javamail.xcu \
Impress-ogltrans.xcu \
Embedding-calc.xcu \

View File

@ -7,9 +7,6 @@
*
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile: VCL.xcu,v $
* $Revision: 1.62.116.1 $
*
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
@ -825,64 +822,184 @@
<value>Lohit Nepali;Kalimati;Samanata;Sans</value>
</prop>
</node>
<node oor:name="hi-IN" oor:op="replace">
<node oor:name="as-IN" oor:op="replace">
<prop oor:name="UI_SANS" oor:op="replace" oor:type="xs:string">
<value>Lohit Hindi;Tahoma;Lucidasans;Lucida Sans;Supplement;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;clearlyU;Interface User;WarpSans;Geneva;MS Sans Serif;Helv;Dialog;Albany AMT;Albany;Lucida;Arial;Nimbus Sans L;Helvetica;Charcoal;Chicago;Helmet;Interface System;Sans Serif</value>
<value>Lohit Assamese;Tahoma;Lucidasans;Lucida Sans;Supplement;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;clearlyU</value>
</prop>
<prop oor:name="CTL_DISPLAY" oor:op="replace" oor:type="xs:string">
<value>Lohit Hindi;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
<value>Lohit Assamese;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
<prop oor:name="CTL_HEADING" oor:op="replace" oor:type="xs:string">
<value>Lohit Hindi;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
<value>Lohit Assamese;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
<prop oor:name="CTL_PRESENTATION" oor:op="replace" oor:type="xs:string">
<value>Lohit Hindi;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
<value>Lohit Assamese;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
<prop oor:name="CTL_SPREADSHEET" oor:op="replace" oor:type="xs:string">
<value>Lohit Hindi;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
<value>Lohit Assamese;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
<prop oor:name="CTL_TEXT" oor:op="replace" oor:type="xs:string">
<value>Lohit Hindi;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
<value>Lohit Assamese;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
</node>
<node oor:name="bn-IN" oor:op="replace">
<prop oor:name="UI_SANS" oor:op="replace" oor:type="xs:string">
<value>Lohit Bengali;Vrinda;Lucidasans;Lucida Sans;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;clearlyU</value>
</prop>
<prop oor:name="CTL_DISPLAY" oor:op="replace" oor:type="xs:string">
<value>Lohit Bengali;Vrinda;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
<prop oor:name="CTL_HEADING" oor:op="replace" oor:type="xs:string">
<value>Lohit Bengali;Vrinda;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
<prop oor:name="CTL_PRESENTATION" oor:op="replace" oor:type="xs:string">
<value>Lohit Bengali;Vrinda;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
<prop oor:name="CTL_SPREADSHEET" oor:op="replace" oor:type="xs:string">
<value>Lohit Bengali;Vrinda;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
<prop oor:name="CTL_TEXT" oor:op="replace" oor:type="xs:string">
<value>Lohit Bengali;Vrinda;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
</node>
<node oor:name="hi-IN" oor:op="replace">
<prop oor:name="UI_SANS" oor:op="replace" oor:type="xs:string">
<value>Lohit Hindi;Mangal;Lucidasans;Lucida Sans;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;clearlyU</value>
</prop>
<prop oor:name="CTL_DISPLAY" oor:op="replace" oor:type="xs:string">
<value>Lohit Hindi;Mangal;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
<prop oor:name="CTL_HEADING" oor:op="replace" oor:type="xs:string">
<value>Lohit Hindi;Mangal;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
<prop oor:name="CTL_PRESENTATION" oor:op="replace" oor:type="xs:string">
<value>Lohit Hindi;Mangal;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
<prop oor:name="CTL_SPREADSHEET" oor:op="replace" oor:type="xs:string">
<value>Lohit Hindi;Mangal;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
<prop oor:name="CTL_TEXT" oor:op="replace" oor:type="xs:string">
<value>Lohit Hindi;Mangal;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
</node>
<node oor:name="gu-IN" oor:op="replace">
<prop oor:name="UI_SANS" oor:op="replace" oor:type="xs:string">
<value>Lohit Gujarati;Tahoma;Lucidasans;Lucida Sans;Supplement;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;clearlyU;Interface User;WarpSans;Geneva;MS Sans Serif;Helv;Dialog;Albany AMT;Albany;Lucida;Arial;Nimbus Sans L;Helvetica;Charcoal;Chicago;Helmet;Interface System;Sans Serif</value>
<value>Lohit Gujarati;Shruti;Lucidasans;Lucida Sans;Arial Unicode MS;Lucida Sans Unicode;clearlyU</value>
</prop>
<prop oor:name="CTL_DISPLAY" oor:op="replace" oor:type="xs:string">
<value>Lohit Gujarati;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
<value>Lohit Gujarati;Shruti;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
<prop oor:name="CTL_HEADING" oor:op="replace" oor:type="xs:string">
<value>Lohit Gujarati;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
<value>Lohit Gujarati;Shruti;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
<prop oor:name="CTL_PRESENTATION" oor:op="replace" oor:type="xs:string">
<value>Lohit Gujarati;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
<value>Lohit Gujarati;Shruti;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
<prop oor:name="CTL_SPREADSHEET" oor:op="replace" oor:type="xs:string">
<value>Lohit Gujarati;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
<value>Lohit Gujarati;Shruti;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
<prop oor:name="CTL_TEXT" oor:op="replace" oor:type="xs:string">
<value>Lohit Gujarati;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
<value>Lohit Gujarati;Shruti;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
</node>
<node oor:name="kn-IN" oor:op="replace">
<prop oor:name="UI_SANS" oor:op="replace" oor:type="xs:string">
<value>Lohit Kannada;Tunga;Lucidasans;Lucida Sans;Arial Unicode MS;Lucida Sans Unicode;clearlyU</value>
</prop>
<prop oor:name="CTL_DISPLAY" oor:op="replace" oor:type="xs:string">
<value>Lohit Kannada;Tunga;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
<prop oor:name="CTL_HEADING" oor:op="replace" oor:type="xs:string">
<value>Lohit Kannada;Tunga;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
<prop oor:name="CTL_PRESENTATION" oor:op="replace" oor:type="xs:string">
<value>Lohit Kannada;Tunga;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
<prop oor:name="CTL_SPREADSHEET" oor:op="replace" oor:type="xs:string">
<value>Lohit Kannada;Tunga;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
<prop oor:name="CTL_TEXT" oor:op="replace" oor:type="xs:string">
<value>Lohit Kannada;Tunga;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
</node>
<node oor:name="mai-IN" oor:op="replace">
<prop oor:name="UI_SANS" oor:op="replace" oor:type="xs:string">
<value>Lohit Maithili;Tahoma;Lucidasans;Lucida Sans;Supplement;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;clearlyU</value>
</prop>
<prop oor:name="CTL_DISPLAY" oor:op="replace" oor:type="xs:string">
<value>Lohit Maithili;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
<prop oor:name="CTL_HEADING" oor:op="replace" oor:type="xs:string">
<value>Lohit Maithili;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
<prop oor:name="CTL_PRESENTATION" oor:op="replace" oor:type="xs:string">
<value>Lohit Maithili;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
<prop oor:name="CTL_SPREADSHEET" oor:op="replace" oor:type="xs:string">
<value>Lohit Maithili;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
<prop oor:name="CTL_TEXT" oor:op="replace" oor:type="xs:string">
<value>Lohit Maithili;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
</node>
<node oor:name="ml-IN" oor:op="replace">
<prop oor:name="UI_SANS" oor:op="replace" oor:type="xs:string">
<value>Meera;Tahoma;Lucidasans;Lucida Sans;Supplement;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;clearlyU</value>
</prop>
<prop oor:name="CTL_DISPLAY" oor:op="replace" oor:type="xs:string">
<value>Meera;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
<prop oor:name="CTL_HEADING" oor:op="replace" oor:type="xs:string">
<value>Meera;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
<prop oor:name="CTL_PRESENTATION" oor:op="replace" oor:type="xs:string">
<value>Meera;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
<prop oor:name="CTL_SPREADSHEET" oor:op="replace" oor:type="xs:string">
<value>Meera;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
<prop oor:name="CTL_TEXT" oor:op="replace" oor:type="xs:string">
<value>Meera;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
</node>
<node oor:name="mr-IN" oor:op="replace">
<prop oor:name="UI_SANS" oor:op="replace" oor:type="xs:string">
<value>Lohit Marathi;Tahoma;Lucidasans;Lucida Sans;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;clearlyU</value>
</prop>
<prop oor:name="CTL_DISPLAY" oor:op="replace" oor:type="xs:string">
<value>Lohit Marathi;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
<prop oor:name="CTL_HEADING" oor:op="replace" oor:type="xs:string">
<value>Lohit Marathi;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
<prop oor:name="CTL_PRESENTATION" oor:op="replace" oor:type="xs:string">
<value>Lohit Marathi;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
<prop oor:name="CTL_SPREADSHEET" oor:op="replace" oor:type="xs:string">
<value>Lohit Marathi;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
<prop oor:name="CTL_TEXT" oor:op="replace" oor:type="xs:string">
<value>Lohit Marathi;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
</node>
<node oor:name="or-IN" oor:op="replace">
<prop oor:name="UI_SANS" oor:op="replace" oor:type="xs:string">
<value>utkal;Tahoma;Lucidasans;Lucida Sans;Supplement;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;clearlyU;Interface User;WarpSans;Geneva;MS Sans Serif;Helv;Dialog;Albany AMT;Albany;Lucida;Arial;Nimbus Sans L;Helvetica;Charcoal;Chicago;Helmet;Interface System;Sans Serif</value>
<value>utkal;Kalinga;Lohit Oriya;Samyak Oriya;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS;Lucida Sans Unicode;clearlyU</value>
</prop>
<prop oor:name="CTL_DISPLAY" oor:op="replace" oor:type="xs:string">
<value>utkal;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
<value>utkal;Kalinga;Lohit Oriya;Samyak Oriya;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
<prop oor:name="CTL_HEADING" oor:op="replace" oor:type="xs:string">
<value>utkal;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
<value>utkal;Kalinga;Lohit Oriya;Samyak Oriya;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
<prop oor:name="CTL_PRESENTATION" oor:op="replace" oor:type="xs:string">
<value>utkal;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
<value>utkal;Kalinga;Lohit Oriya;Samyak Oriya;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
<prop oor:name="CTL_SPREADSHEET" oor:op="replace" oor:type="xs:string">
<value>utkal;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
<value>utkal;Kalinga;Lohit Oriya;Samyak Oriya;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
<prop oor:name="CTL_TEXT" oor:op="replace" oor:type="xs:string">
<value>utkal;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
<value>utkal;Kalinga;Lohit Oriya;Samyak Oriya;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
</node>
<node oor:name="pa-IN" oor:op="replace">
@ -907,22 +1024,62 @@
</node>
<node oor:name="ta-IN" oor:op="replace">
<prop oor:name="UI_SANS" oor:op="replace" oor:type="xs:string">
<value>Lohit Tamil;Tahoma;Sans Serif</value>
<value>Lohit Tamil;Latha;Sans Serif</value>
</prop>
<prop oor:name="CTL_DISPLAY" oor:op="replace" oor:type="xs:string">
<value>Lohit Tamil;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
<value>Lohit Tamil;Latha;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
<prop oor:name="CTL_HEADING" oor:op="replace" oor:type="xs:string">
<value>Lohit Tamil;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
<value>Lohit Tamil;Latha;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
<prop oor:name="CTL_PRESENTATION" oor:op="replace" oor:type="xs:string">
<value>Lohit Tamil;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
<value>Lohit Tamil;Latha;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
<prop oor:name="CTL_SPREADSHEET" oor:op="replace" oor:type="xs:string">
<value>Lohit Tamil;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
<value>Lohit Tamil;Latha;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
<prop oor:name="CTL_TEXT" oor:op="replace" oor:type="xs:string">
<value>Lohit Tamil;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
<value>Lohit Tamil;Latha;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
</node>
<node oor:name="te-IN" oor:op="replace">
<prop oor:name="UI_SANS" oor:op="replace" oor:type="xs:string">
<value>Lohit Telugu;Gautami;Lucidasans;Lucida Sans;Arial Unicode MS;Lucida Sans Unicode;clearlyU</value>
</prop>
<prop oor:name="CTL_DISPLAY" oor:op="replace" oor:type="xs:string">
<value>Lohit Telugu;Gautami;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
<prop oor:name="CTL_HEADING" oor:op="replace" oor:type="xs:string">
<value>Lohit Telugu;Gautami;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
<prop oor:name="CTL_PRESENTATION" oor:op="replace" oor:type="xs:string">
<value>Lohit Telugu;Gautami;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
<prop oor:name="CTL_SPREADSHEET" oor:op="replace" oor:type="xs:string">
<value>Lohit Telugu;Gautami;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
<prop oor:name="CTL_TEXT" oor:op="replace" oor:type="xs:string">
<value>Lohit Telugu;Gautami;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
</node>
<node oor:name="ur" oor:op="replace">
<prop oor:name="UI_SANS" oor:op="replace" oor:type="xs:string">
<value>PakTypeNaqsh;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS;Lucida Sans Unicode;clearlyU</value>
</prop>
<prop oor:name="CTL_DISPLAY" oor:op="replace" oor:type="xs:string">
<value>PakTypeNaqsh;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
<prop oor:name="CTL_HEADING" oor:op="replace" oor:type="xs:string">
<value>PakTypeNaqsh;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
<prop oor:name="CTL_PRESENTATION" oor:op="replace" oor:type="xs:string">
<value>PakTypeNaqsh;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
<prop oor:name="CTL_SPREADSHEET" oor:op="replace" oor:type="xs:string">
<value>PakTypeNaqsh;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
<prop oor:name="CTL_TEXT" oor:op="replace" oor:type="xs:string">
<value>PakTypeNaqsh;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
</node>
@ -1022,6 +1179,26 @@
</node>
<node oor:name="rw" oor:op="replace">
</node>
<node oor:name="si" oor:op="replace">
<prop oor:name="UI_SANS" oor:op="replace" oor:type="xs:string">
<value>LKLUG;Iskoola Pota;Lucidasans;Lucida Sans;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;clearlyU</value>
</prop>
<prop oor:name="CTL_DISPLAY" oor:op="replace" oor:type="xs:string">
<value>Iskoola Pota;LKLUG;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
<prop oor:name="CTL_HEADING" oor:op="replace" oor:type="xs:string">
<value>Iskoola Pota;LKLUG;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
<prop oor:name="CTL_PRESENTATION" oor:op="replace" oor:type="xs:string">
<value>Iskoola Pota;LKLUG;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
<prop oor:name="CTL_SPREADSHEET" oor:op="replace" oor:type="xs:string">
<value>Iskoola Pota;LKLUG;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
<prop oor:name="CTL_TEXT" oor:op="replace" oor:type="xs:string">
<value>Iskoola Pota;LKLUG;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
</prop>
</node>
</node>
<node oor:name="FontSubstitutions">
<node oor:name="en" oor:op="replace">
@ -1471,9 +1648,9 @@
<value>Default,Serif</value>
</prop>
</node>
<node oor:name="bitstreamveramono" oor:op="replace">
<node oor:name="bitstreamverasansmono" oor:op="replace">
<prop oor:name="SubstFonts">
<value>dejavumono</value>
<value>dejavusansmono;couriernew;liberationmono</value>
</prop>
<prop oor:name="SubstFontsHTML"><value>monospace</value></prop>
<prop oor:name="FontWeight"><value>Normal</value></prop>
@ -2200,7 +2377,7 @@
</node>
<node oor:name="couriernew" oor:op="replace">
<prop oor:name="SubstFonts">
<value>cumberland;cumberlandamt;liberationmono;nimbusmonol;courier;lucidatypewriter;lucidasanstypewriter;monaco;monospaced;nimbusmono;nimbusmonol</value>
<value>cumberland;cumberlandamt;liberationmono;dejavusansmono;nimbusmonol;courier;lucidatypewriter;lucidasanstypewriter;monaco;monospaced;nimbusmono;nimbusmonol</value>
</prop>
<prop oor:name="SubstFontsMS"><value></value></prop>
<prop oor:name="SubstFontsPS"><value>Courier</value></prop>
@ -2211,7 +2388,7 @@
</node>
<node oor:name="cumberland" oor:op="replace">
<prop oor:name="SubstFonts">
<value>cumberlandamt;couriernew;liberationmono;nimbusmonol;courier;lucidatypewriter;lucidasanstypewriter;monaco;monospaced;nimbusmono;nimbusmonol</value>
<value>cumberlandamt;couriernew;liberationmono;dejavusansmono;nimbusmonol;courier;lucidatypewriter;lucidasanstypewriter;monaco;monospaced;nimbusmono;nimbusmonol</value>
</prop>
<prop oor:name="SubstFontsMS">
<value>Courier New</value>
@ -2234,7 +2411,7 @@
</node>
<node oor:name="cumberlandamt" oor:op="replace">
<prop oor:name="SubstFonts">
<value>cumberland;couriernew;liberationmono;nimbusmonol;courier;lucidatypewriter;lucidasanstypewriter;monaco;monospaced;nimbusmono;nimbusmonol</value>
<value>cumberland;couriernew;liberationmono;dejavusansmono;nimbusmonol;courier;lucidatypewriter;lucidasanstypewriter;monaco;monospaced;nimbusmono;nimbusmonol</value>
</prop>
<prop oor:name="SubstFontsMS">
<value>Courier New</value>
@ -2321,9 +2498,9 @@
<value>Default,Serif</value>
</prop>
</node>
<node oor:name="dejavumono" oor:op="replace">
<node oor:name="dejavusansmono" oor:op="replace">
<prop oor:name="SubstFonts">
<value>bitstreamveramono</value>
<value>bitstreamverasansmono;couriernew;liberationmono</value>
</prop>
<prop oor:name="SubstFontsHTML"><value>monospace</value></prop>
<prop oor:name="FontWeight"><value>Normal</value></prop>
@ -4562,7 +4739,7 @@
</node>
<node oor:name="liberationmono" oor:op="replace">
<prop oor:name="SubstFonts">
<value>cumberland;cumberlandamt;couriernew;nimbusmonol;courier;lucidatypewriter;lucidasanstypewriter;monaco;monospaced;nimbusmono;nimbusmonol</value>
<value>cumberland;cumberlandamt;couriernew;dejavusansmono;nimbusmonol;courier;lucidatypewriter;lucidasanstypewriter;monaco;monospaced;nimbusmono;nimbusmonol</value>
</prop>
<prop oor:name="SubstFontsMS">
<value>Courier New</value>

View File

@ -47,7 +47,6 @@ XCUFILES= \
UserProfile.xcu
MODULEFILES= \
Inet-defaultsearchengine.xcu \
Setup-brand.xcu \
Setup-writer.xcu \
Setup-calc.xcu \

View File

@ -844,11 +844,28 @@
</prop>
<prop oor:name="DynamicBorderColors" oor:type="xs:boolean">
<info>
<desc>specifies whether the controls should use dynamic border coloring, if possible.
Dymamic border coloring means that when the mouse is hovered over a control, and when a control receives the focus, this is indicated with special border colors.</desc>
<desc>
specifies whether the controls should use dynamic border coloring, if possible.
Dymamic border coloring means that when the mouse is hovered over a control, and when a control receives the focus, this is indicated with special border colors.
</desc>
</info>
<value>false</value>
</prop>
<prop oor:name="UseDocumentTextMetrics" oor:type="xs:boolean">
<info>
<desc>
controls whether form controls, when they render their text, use the same metrics as the document
does. If this is set to &lt;true&gt;, then the control text's appearance better matches the text
in the surrounding document.&lt;/p&gt;
&lt;p&gt;Technically, documents use a reference device for formatting, which usually has a higher
resolution than the actual output device. The option decides whether form controls should use
the same reference device as the surrounding document. However, some of OOo's document implementations
do not properly use their reference device in all situations, in which case the option might better
be disabled.&lt;p&gt;
</desc>
</info>
<value>true</value>
</prop>
</group>
<group oor:name="ProductVersionID">
<info>
@ -1181,7 +1198,8 @@ Dymamic border coloring means that when the mouse is hovered over a control, and
<prop oor:name="QuadraticFormControlRenderLimit" oor:type="xs:int">
<info>
<author>AW</author>
<desc>This defines a Limitation for the default raster conversion of FormControls in edit mode.
<desc>
This defines a Limitation for the default raster conversion of FormControls in edit mode.
These have the ability to be displayed using this fallback to Bitmaps.
The number is the maximum number of pixels to use, e.g. 300x150 Pixels is allowed as default.
When FormControls would need more Pixels than this, the Bitmap will be limited and scaled to the needed pixel size at paint time.
@ -5356,6 +5374,13 @@ Dymamic border coloring means that when the mouse is hovered over a control, and
</constraints>
<value>0</value>
</prop>
<prop oor:name="AllowDuplicateFieldNames" oor:type="xs:boolean">
<info>
<author>pl</author>
<desc>Specifies whether multiple form fields exported are allowed to have the same field name.</desc>
</info>
<value>false</value>
</prop>
<prop oor:name="IsSkipEmptyPages" oor:type="xs:boolean">
<info>
<author>FME</author>

View File

@ -56,18 +56,16 @@ MYDONEFILES += $(foreach,i,$(MYSYMFILES) $(MISC)$/$(i:b).done)
ALLTAR: GENIDL
GENIDL : $(MY_GEN_IDL_PATH) $(MYDONEFILES)
GENIDL : $(MYDONEFILES)
GENRDB : GENIDL $(MYURDFILES)
$(MISC)$/%.done : %.api
@@-$(MKDIR) $(MY_GEN_IDL_PATH)
@echo Processing $?
$(PERL) api-to-idl.pl $? $(MY_GEN_IDL_PATH)
@$(TOUCH) $@
$(MY_GEN_IDL_PATH) :
@@-$(MKDIR) $@
CLEAN :
@$(RM) $(MY_GEN_IDL_PATH)$/*.idl
@$(RM) $(foreach,i,$(MYSYMFILES) $(MISC)$/$(i:b).done)

View File

@ -0,0 +1,54 @@
/*************************************************************************
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* Copyright 2008 by Sun Microsystems, Inc.
*
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile: XGlobals.idl,v $
* $Revision: 1.4 $
*
* 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 __ooo_vba_ControlProvider_idl__
#define __ooo_vba_ControlProvider_idl__
#ifndef __com_sun_star_uno_XInterface_idl__
#include <com/sun/star/uno/XInterface.idl>
#endif
#ifndef __com_sun_star_frame_XModel_idl__
#include <com/sun/star/frame/XModel.idl>
#endif
module ooo { module vba {
interface XControlProvider;
service ControlProvider
{
interface ::ooo::vba::XControlProvider;
};
}; };
#endif

View File

@ -0,0 +1,66 @@
/*************************************************************************
*
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile$
*
* $Revision$
*
* last change: $Author$ $Date$
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
*
*
* GNU Lesser General Public License Version 2.1
* =============================================
* Copyright 2005 by Sun Microsystems, Inc.
* 901 San Antonio Road, Palo Alto, CA 94303, USA
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License version 2.1, as published by the Free Software Foundation.
*
* This library 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 for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*
************************************************************************/
#ifndef __ooo_vba_XApplicationBase_idl__
#define __ooo_vba_XApplicationBase_idl__
#ifndef __com_sun_star_uno_XInterface_idl__
#include <com/sun/star/uno/XInterface.idl>
#endif
#ifndef __ooo_vba_XHelperInterface_idl__
#include <ooo/vba/XHelperInterface.idl>
#endif
module ooo { module vba {
//=============================================================================
interface XApplicationBase
{
interface ::ooo::vba::XHelperInterface;
[attribute] boolean ScreenUpdating;
[attribute] boolean DisplayStatusBar;
[attribute, readonly] string Version;
void Quit();
any CommandBars( [in] any aIndex );
void Run([in] string MacroName, [in] /*Optional*/ any varg1, [in] /*Optional*/ any varg2, [in] /*Optional*/ any varg3, [in] /*Optional*/ any varg4, [in] /*Optional*/ any varg5, [in] /*Optional*/ any varg6, [in] /*Optional*/ any varg7, [in] /*Optional*/ any varg8, [in] /*Optional*/ any varg9, [in] /*Optional*/ any varg10, [in] /*Optional*/ any varg11, [in] /*Optional*/ any varg12, [in] /*Optional*/ any varg13, [in] /*Optional*/ any varg14, [in] /*Optional*/ any varg15, [in] /*Optional*/ any varg16, [in] /*Optional*/ any varg17, [in] /*Optional*/ any varg18, [in] /*Optional*/ any varg19, [in] /*Optional*/ any varg20, [in] /*Optional*/ any varg21, [in] /*Optional*/ any varg22, [in] /*Optional*/ any varg23, [in] /*Optional*/ any varg24, [in] /*Optional*/ any varg25, [in] /*Optional*/ any varg26, [in] /*Optional*/ any varg27, [in] /*Optional*/ any varg28, [in] /*Optional*/ any varg29, [in] /*Optional*/ any varg30);
float CentimetersToPoints([in] float Centimeters );
};
}; };
#endif

View File

@ -54,9 +54,12 @@ interface XCommandBar
[attribute] string Name;
[attribute] boolean Visible;
[attribute] boolean Enabled;
void Delete() raises ( com::sun::star::script::BasicErrorException );
any Controls( [in] any Index ) raises ( com::sun::star::script::BasicErrorException );
long Type() raises ( com::sun::star::script::BasicErrorException );
any FindControl( [in] any Type, [in] any Id, [in] any Tag, [in] any Visible, [in] any Recursive ) raises ( com::sun::star::script::BasicErrorException );
};
}; };

View File

@ -0,0 +1,52 @@
/*************************************************************************
*
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile$
*
* $Revision$
*
* last change: $Author$ $Date$
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
*
*
* GNU Lesser General Public License Version 2.1
* =============================================
* Copyright 2005 by Sun Microsystems, Inc.
* 901 San Antonio Road, Palo Alto, CA 94303, USA
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License version 2.1, as published by the Free Software Foundation.
*
* This library 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 for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*
************************************************************************/
#ifndef __ooo_vba_XCommandBarButton_idl__
#define __ooo_vba_XCommandBarButton_idl__
#ifndef __com_sun_star_uno_XInterface_idl__
#include <com/sun/star/uno/XInterface.idl>
#endif
//=============================================================================
module ooo { module vba {
//=============================================================================
interface XCommandBarButton: com::sun::star::uno::XInterface
{
};
}; };
#endif

View File

@ -54,6 +54,8 @@ interface XCommandBarControl
[attribute] string Caption;
[attribute] string OnAction;
[attribute] boolean Visible;
[attribute, readonly] long Type;
[attribute] boolean Enabled;
void Delete() raises ( com::sun::star::script::BasicErrorException );
any Controls( [in] any Index ) raises ( com::sun::star::script::BasicErrorException );

View File

@ -0,0 +1,52 @@
/*************************************************************************
*
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile$
*
* $Revision$
*
* last change: $Author$ $Date$
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
*
*
* GNU Lesser General Public License Version 2.1
* =============================================
* Copyright 2005 by Sun Microsystems, Inc.
* 901 San Antonio Road, Palo Alto, CA 94303, USA
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License version 2.1, as published by the Free Software Foundation.
*
* This library 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 for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*
************************************************************************/
#ifndef __ooo_vba_XCommandBarPopup_idl__
#define __ooo_vba_XCommandBarPopup_idl__
#ifndef __com_sun_star_uno_XInterface_idl__
#include <com/sun/star/uno/XInterface.idl>
#endif
//=============================================================================
module ooo { module vba {
//=============================================================================
interface XCommandBarPopup: com::sun::star::uno::XInterface
{
};
}; };
#endif

View File

@ -27,41 +27,38 @@
* for a copy of the LGPLv3 License.
*
************************************************************************/
#ifndef __ooo_vba_XGlobals_idl__
#define __ooo_vba_XGlobals_idl__
#ifndef __ooo_vba_XControlProvider_idl__
#define __ooo_vba_XControlProvider_idl__
#ifndef __com_sun_star_uno_XInterface_idl__
#include <com/sun/star/uno/XInterface.idl>
#endif
#ifndef __ooo_vba_excel_XApplication_idl__
#include <ooo/vba/excel/XApplication.idl>
#ifndef __com_sun_star_frame_XModel_idl__
#include <com/sun/star/frame/XModel.idl>
#endif
#ifndef __ooo_vba_excel_XWorkbook_idl__
#include <ooo/vba/excel/XWorkbook.idl>
#ifndef __com_sun_star_awt_XControl_idl__
#include <com/sun/star/awt/XControl.idl>
#endif
#ifndef __ooo_vba_excel_XWorksheet_idl__
#include <ooo/vba/excel/XWorksheet.idl>
#ifndef __com_sun_star_drawing_XControlShape_idl__
#include <com/sun/star/drawing/XControlShape.idl>
#endif
#ifndef __ooo_vba_msforms_XControl_idl__
#include <ooo/vba/msforms/XControl.idl>
#endif
module ooo { module vba {
interface XGlobals: com::sun::star::uno::XInterface
interface XControlProvider
{
// FIXME, need better way to expose globals
sequence< any > getGlobals();
::ooo::vba::msforms::XControl createControl( [in] ::com::sun::star::drawing::XControlShape xControl, [in] ::com::sun::star::frame::XModel xDocOwner );
::ooo::vba::msforms::XControl createUserformControl( [in] ::com::sun::star::awt::XControl xControl, [in] ::com::sun::star::awt::XControl xDialog, [in] ::com::sun::star::frame::XModel xDocOwner );
[attribute, readonly] ooo::vba::excel::XApplication Application;
[attribute, readonly] ooo::vba::excel::XWorkbook ActiveWorkbook;
[attribute, readonly] ooo::vba::excel::XWorksheet ActiveSheet;
any WorkSheets( [in] any aIndex );
any WorkBooks( [in] any aIndex );
any Sheets( [in] any aIndex );
any Range( [in] any Cell1, [in] any Cell2 );
any Names( [in] any Index );
};
}; };
#endif

View File

@ -0,0 +1,58 @@
/*************************************************************************
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* Copyright 2008 by Sun Microsystems, Inc.
*
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile: XDialog.idl,v $
* $Revision: 1.4 $
*
* 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 __ooo_vba_XDialog_idl__
#define __ooo_vba_XDialog_idl__
#ifndef __com_sun_star_uno_XInterface_idl__
#include <com/sun/star/uno/XInterface.idl>
#endif
#ifndef __ooo_vba_XHelperInterface_idl__
#include <ooo/vba/XHelperInterface.idl>
#endif
//=============================================================================
module ooo { module vba {
//=============================================================================
interface XDialogBase
{
interface ::ooo::vba::XHelperInterface;
void Show();
};
}; };
#endif

View File

@ -0,0 +1,60 @@
/*************************************************************************
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* Copyright 2008 by Sun Microsystems, Inc.
*
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile: XDialogs.idl,v $
* $Revision: 1.4 $
*
* 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 __ooo_vba_XDialogs_idl__
#define __ooo_vba_XDialogs_idl__
#ifndef __com_sun_star_uno_XInterface_idl__
#include <com/sun/star/uno/XInterface.idl>
#endif
#ifndef __ooo_vba_XCollection_idl__
#include <ooo/vba/XCollection.idl>
#endif
#ifndef __ooo_vba_XHelperInterface_idl__
#include <ooo/vba/XHelperInterface.idl>
#endif
//=============================================================================
module ooo { module vba {
//interface XDialogs : ::ooo::vba::XCollection
interface XDialogsBase
{
interface ::ooo::vba::XHelperInterface;
[attribute, readonly] long Count;
any Item( [in] any Index );
};
}; };
#endif

View File

@ -0,0 +1,67 @@
/*************************************************************************
*
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile$
*
* $Revision$
*
* last change: $Author$ $Date$
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
*
*
* GNU Lesser General Public License Version 2.1
* =============================================
* Copyright 2005 by Sun Microsystems, Inc.
* 901 San Antonio Road, Palo Alto, CA 94303, USA
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License version 2.1, as published by the Free Software Foundation.
*
* This library 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 for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*
************************************************************************/
#ifndef __ooo_vba_XDocumentBase_idl__
#define __ooo_vba_XDocumentBase_idl__
#ifndef __com_sun_star_uno_XInterface_idl__
#include <com/sun/star/uno/XInterface.idl>
#endif
#ifndef __ooo_vba_XHelperInterface_idl__
#include <ooo/vba/XHelperInterface.idl>
#endif
module ooo { module vba {
//=============================================================================
interface XDocumentBase
{
interface ::ooo::vba::XHelperInterface;
[attribute, readonly] string Name;
[attribute, readonly] string Path;
[attribute, readonly] string FullName;
[attribute] boolean Saved;
void Close([in] any SaveChanges, [in] any FileName, [in] any RouteWorkBook);
void Save();
void Activate();
void Protect( [in] any Password );
void Unprotect( [in] any Password );
};
}; };
#endif

View File

@ -0,0 +1,71 @@
/*************************************************************************
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* Copyright 2008 by Sun Microsystems, Inc.
*
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile: XDocument.idl,v $
* $Revision: 1.4 $
*
* 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 __ooo_vba_XDocumentProperties_idl__
#define __ooo_vba_XDocumentProperties_idl__
#ifndef __com_sun_star_script_BasicErrorException_idl__
#include <com/sun/star/script/BasicErrorException.idl>
#endif
#ifndef __ooo_vba_XHelperInterface_idl__
#include <ooo/vba/XHelperInterface.idl>
#endif
#ifndef __ooo_vba_XCollection_idl__
#include <ooo/vba/XCollection.idl>
#endif
module ooo { module vba {
interface XDocumentProperty;
interface XDocumentProperties
{
interface XCollection;
/** Creates a new custom document property.
* You can only add a new document property to the custom DocumentProperties collection. Depending on value of
* boolean LinkSource, either (False) Value or (True) LinkSource must be provided.
* @param Name (Required String. The name of the property.
* @param LinkToContent Specifies whether the property is linked to the contents of the container document. If this argument is True, the LinkSource argument is required; if it's False, the value argument is required.
* @param Type The data type of the property. Can be one of the following MsoDocProperties constants:
* msoPropertyTypeBoolean, msoPropertyTypeDate, msoPropertyTypeFloat, msoPropertyTypeNumber, or msoPropertyTypeString.
* @param Value The value of the property, if it's not linked to the contents of the container document.
* The value is converted to match the data type specified by the type argument, if it can't be converted, an error occurs.
* If LinkToContent is True, the Value argument is ignored and the new document property is assigned a default value
* until the linked property values are updated by the container application (usually when the document is saved).
* @param LinkSource Ignored if LinkToContent is False. The source of the linked property. The container application determines
* what types of source linking you can use.
*/
XDocumentProperty Add([in] string Name, [in] boolean LinkToContent, [in] /* MsoDocProperties */ byte Type, [in] any Value,
[in] /*optional*/ any LinkSource)
raises (com::sun::star::script::BasicErrorException);
};
}; };
#endif

View File

@ -0,0 +1,106 @@
/*************************************************************************
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* Copyright 2008 by Sun Microsystems, Inc.
*
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile: XDocument.idl,v $
* $Revision: 1.4 $
*
* 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 __ooo_vba_XDocumentProperty_idl__
#define __ooo_vba_XDocumentProperty_idl__
#ifndef __com_sun_star_script_BasicErrorException_idl__
#include <com/sun/star/script/BasicErrorException.idl>
#endif
#ifndef __com_sun_star_script_XDefaultProperty_idl__
#include <com/sun/star/script/XDefaultProperty.idl>
#endif
#ifndef __ooo_vba_XHelperInterface_idl__
#include <ooo/vba/XHelperInterface.idl>
#endif
module ooo { module vba {
/**
* Specific built-in document property. Use CustomDocumentProperties(index),
* where index is the name or index number of the custom document property,
* to return a DocumentProperty object that represents a specific custom document property.
*/
interface XDocumentProperty
{
interface com::sun::star::script::XDefaultProperty;
interface ooo::vba::XHelperInterface;
void Delete()
raises (com::sun::star::script::BasicErrorException);
/** Required String. The name of the property.
*/
string getName()
raises (com::sun::star::script::BasicErrorException);
void setName([in] string Name)
raises (com::sun::star::script::BasicErrorException);
/** The data type of the property.
* Can be one of the following MsoDocProperties constants:
* msoPropertyTypeBoolean, msoPropertyTypeDate, msoPropertyTypeFloat,
* msoPropertyTypeNumber, or msoPropertyTypeString.
*/
byte getType()
raises (com::sun::star::script::BasicErrorException);
void setType([in] byte Type)
raises (com::sun::star::script::BasicErrorException);
/** If true, then LinkSource has a valid value. */
boolean getLinkToContent()
raises (com::sun::star::script::BasicErrorException);
void setLinkToContent([in] boolean LinkToContent)
raises (com::sun::star::script::BasicErrorException);
/** If LinkToContent is false, then this contains the value of the property
* The data type of the value will match the Type property.
*/
any getValue()
raises (com::sun::star::script::BasicErrorException);
void setValue([in] any Value)
raises (com::sun::star::script::BasicErrorException);
/** If LinkToContent is false, then this contains the value of the property */
string getLinkSource()
raises (com::sun::star::script::BasicErrorException);
void setLinkSource([in] string LinkSource)
raises (com::sun::star::script::BasicErrorException);
};
}; };
#endif

View File

@ -0,0 +1,55 @@
/*************************************************************************
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* Copyright 2008 by Sun Microsystems, Inc.
*
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile: XDocumentsBase.idl,v $
* $Revision: 1.4 $
*
* 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 __ooo_vba_XDocumentsBase_idl__
#define __ooo_vba_XDocumentsBase_idl__
#ifndef __com_sun_star_uno_XInterface_idl__
#include <com/sun/star/uno/XInterface.idl>
#endif
#ifndef __ooo_vba_XCollection_idl__
#include <ooo/vba/XCollection.idl>
#endif
//=============================================================================
module ooo { module vba {
//=============================================================================
interface XDocumentsBase
{
interface ::ooo::vba::XCollection;
};
}; };
#endif

View File

@ -0,0 +1,71 @@
/*************************************************************************
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* Copyright 2008 by Sun Microsystems, Inc.
*
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile: XFont.idl,v $
* $Revision: 1.4 $
*
* 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 __ooo_vba_XFont_idl__
#define __ooo_vba_XFont_idl__
#ifndef __com_sun_star_uno_XInterface_idl__
#include <com/sun/star/uno/XInterface.idl>
#endif
#ifndef __com_sun_star_lang_IndexOutOfBoundsException_idl__
#include <com/sun/star/lang/IndexOutOfBoundsException.idl>
#endif
#ifndef __ooo_vba_XHelperInterface_idl__
#include <ooo/vba/XHelperInterface.idl>
#endif
//=============================================================================
module ooo { module vba {
interface XFontBase
{
interface ::ooo::vba::XHelperInterface;
[attribute] any Size;
[attribute] any ColorIndex;
[attribute] any Color;
[attribute] any Bold;
[attribute] any Underline;
[attribute] any Strikethrough;
[attribute] any Shadow;
[attribute] any Italic;
[attribute] any Subscript;
[attribute] any Superscript;
[attribute] any Name;
};
//=============================================================================
}; };
#endif

View File

@ -0,0 +1,53 @@
/*************************************************************************
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* Copyright 2008 by Sun Microsystems, Inc.
*
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile: XGlobals.idl,v $
* $Revision: 1.4 $
*
* 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 __ooo_vba_XGlobalsBase_idl__
#define __ooo_vba_XGlobalsBase_idl__
#ifndef __com_sun_star_uno_XInterface_idl__
#include <com/sun/star/uno/XInterface.idl>
#endif
#ifndef __ooo_vba_XHelperInterface_idl__
#include <ooo/vba/XHelperInterface.idl>
#endif
#ifndef __com_sun_star_lang_XMultiServiceFactory
#include <com/sun/star/lang/XMultiServiceFactory.idl>
#endif
module ooo { module vba {
interface XGlobalsBase
{
interface ::ooo::vba::XHelperInterface;
interface ::com::sun::star::lang::XMultiServiceFactory;
};
}; };
#endif

View File

@ -0,0 +1,67 @@
/*************************************************************************
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* Copyright 2008 by Sun Microsystems, Inc.
*
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile$
* $Revision$
*
* 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 __ooo_vba_XPageSetupBase_idl__
#define __ooo_vba_XPageSetupBase_idl__
#ifndef __com_sun_star_uno_XInterface_idl__
#include <com/sun/star/uno/XInterface.idl>
#endif
#ifndef __ooo_vba_XHelperInterface_idl__
#include <ooo/vba/XHelperInterface.idl>
#endif
//=============================================================================
module ooo { module vba {
//=============================================================================
interface XPageSetupBase
{
interface ::ooo::vba::XHelperInterface;
//Attributes
[attribute] double TopMargin;
[attribute] double BottomMargin;
[attribute] double RightMargin;
[attribute] double LeftMargin;
[attribute] long Orientation;
};
//=============================================================================
}; };
#endif

View File

@ -0,0 +1,62 @@
/*************************************************************************
*
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile$
*
* $Revision$
*
* last change: $Author$ $Date$
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
*
*
* GNU Lesser General Public License Version 2.1
* =============================================
* Copyright 2005 by Sun Microsystems, Inc.
* 901 San Antonio Road, Palo Alto, CA 94303, USA
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License version 2.1, as published by the Free Software Foundation.
*
* This library 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 for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*
************************************************************************/
#ifndef __ooo_vba_XHelperWindow_idl__
#define __ooo_vba_XHelperWindow_idl__
#ifndef __com_sun_star_uno_XInterface_idl__
#include <com/sun/star/uno/XInterface.idl>
#endif
#ifndef __ooo_vba_XHelperInterface_idl__
#include <ooo/vba/XHelperInterface.idl>
#endif
module ooo { module vba {
//=============================================================================
interface XWindowBase
{
interface ::ooo::vba::XHelperInterface;
[attribute] long Height;
[attribute] long Left;
[attribute] long Top;
[attribute] boolean Visible;
[attribute] long Width;
};
}; };
#endif

View File

@ -28,21 +28,21 @@
*
************************************************************************/
#ifndef __ooo_vba_Globals_idl__
#define __ooo_vba_Globals_idl__
#ifndef __ooo_vba_excel_Globals_idl__
#define __ooo_vba_excel_Globals_idl__
#ifndef __ooo_vba_XGlobals_idl__
#include <ooo/vba/XGlobals.idl>
#ifndef __ooo_vba_excel_XGlobals_idl__
#include <ooo/vba/excel/XGlobals.idl>
#endif
#include <com/sun/star/uno/XComponentContext.idl>
#include <com/sun/star/table/XCellRange.idl>
module ooo { module vba {
module ooo { module vba { module excel {
service Globals : XGlobals
{
};
}; };
}; }; };
#endif

View File

@ -0,0 +1,53 @@
/*************************************************************************
*
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile$
*
* $Revision$
*
* last change: $Author$ $Date$
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
*
*
* GNU Lesser General Public License Version 2.1
* =============================================
* Copyright 2005 by Sun Microsystems, Inc.
* 901 San Antonio Road, Palo Alto, CA 94303, USA
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License version 2.1, as published by the Free Software Foundation.
*
* This library 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 for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*
************************************************************************/
#ifndef __ooo_vba_excel_TextFrame_idl__
#define __ooo_vba_excel_TextFrame_idl__
#ifndef __ooo_vba_excel_XTextFrame_idl__
#include <ooo/vba/excel/XTextFrame.idl>
#endif
#include <com/sun/star/uno/XComponentContext.idl>
module ooo { module vba { module excel {
service TextFrame : XTextFrame
{
//createTextFrame( [in] ::ooo::vba::XHelperInterface Parent, [in] ::com::sun::star::frame::XModel xModel );
};
}; }; };
#endif

View File

@ -42,10 +42,6 @@
#include <ooo/vba/XAssistant.idl>
#endif
#ifndef __ooo_vba_XCommandBars_idl__
#include <ooo/vba/XCommandBars.idl>
#endif
module ooo { module vba { module excel {
interface XRange;
@ -56,10 +52,10 @@ interface XWorksheetFunction;
interface XWindow;
interface XWorksheet;
interface XApplication
interface XApplication : com::sun::star::uno::XInterface
{
interface ::ooo::vba::XHelperInterface;
// interface ::ooo::vba::XHelperInterface;
[attribute, readonly] any Selection;
[attribute, readonly] XWorkbook ActiveWorkbook;
@ -74,14 +70,11 @@ interface XApplication
// to determine this
[attribute, readonly] XWorkbook ThisWorkbook;
[attribute, readonly] string Name;
[attribute] boolean ScreenUpdating;
[attribute] boolean DisplayStatusBar;
[attribute] boolean DisplayAlerts;
[attribute] boolean DisplayFormulaBar;
[attribute] any CutCopyMode;
[attribute] any StatusBar;
[attribute] long Cursor;
[attribute, readonly] string Version;
void setDefaultFilePath([in] string DefaultFilePath) raises(com::sun::star::script::BasicErrorException);
@ -90,7 +83,7 @@ interface XApplication
string LibraryPath() raises(com::sun::star::script::BasicErrorException);
string TemplatesPath() raises(com::sun::star::script::BasicErrorException);
string PathSeparator() raises(com::sun::star::script::BasicErrorException);
any CommandBars( [in] any aIndex );
//any CommandBars( [in] any aIndex );
any Workbooks( [in] any aIndex );
any Worksheets( [in] any aIndex );
any Windows( [in] any aIndex );
@ -110,6 +103,7 @@ interface XApplication
raises(com::sun::star::script::BasicErrorException);
void Volatile([in] any Volatile);
void DoEvents();
any Caller( [in] any aIndex );
};
}; }; };

View File

@ -45,13 +45,8 @@ module ooo { module vba { module excel {
//=============================================================================
interface XApplication;
interface XDialog
interface XDialog : com::sun::star::uno::XInterface
{
interface ::ooo::vba::XHelperInterface;
void Show();
};
}; }; };

Some files were not shown because too many files have changed in this diff Show More