summaryrefslogtreecommitdiff
path: root/basic/inc
diff options
context:
space:
mode:
authorFrank Schoenheit [fs] <frank.schoenheit@oracle.com>2010-12-23 10:01:58 +0100
committerFrank Schoenheit [fs] <frank.schoenheit@oracle.com>2010-12-23 10:01:58 +0100
commit48de44881b95b2ce90759e0485d3a96fe1c1f4db (patch)
tree9616f3de0aa7b09e04de84f07534ccc05ef412de /basic/inc
parenteb77ace518782bcbc0ac29c03b58ca3811e25cf8 (diff)
parent794c821e4d48c34aa376cdc7b6ab2cb029d9574d (diff)
undoapi: merged after pulling DEV300_m96. Most probably still not buildable:A number of changes which happened in the CWS need to be redone due to the new build system
Diffstat (limited to 'basic/inc')
-rw-r--r--basic/inc/basic/modsizeexceeded.hxx (renamed from basic/inc/modsizeexceeded.hxx)0
-rw-r--r--basic/inc/basic/sbmod.hxx7
-rw-r--r--basic/inc/basic/sbobjmod.hxx15
-rw-r--r--basic/inc/basic/sbstar.hxx6
-rw-r--r--basic/inc/basic/sbxdef.hxx3
-rw-r--r--basic/inc/basic/sbxvar.hxx5
-rw-r--r--basic/inc/basic/svtmsg.hrc (renamed from basic/inc/svtmsg.hrc)0
-rw-r--r--basic/inc/basic/testtool.hrc (renamed from basic/inc/testtool.hrc)0
-rw-r--r--basic/inc/basic/ttmsg.hrc (renamed from basic/inc/ttmsg.hrc)0
9 files changed, 33 insertions, 3 deletions
diff --git a/basic/inc/modsizeexceeded.hxx b/basic/inc/basic/modsizeexceeded.hxx
index e2d716259f09..e2d716259f09 100644
--- a/basic/inc/modsizeexceeded.hxx
+++ b/basic/inc/basic/modsizeexceeded.hxx
diff --git a/basic/inc/basic/sbmod.hxx b/basic/inc/basic/sbmod.hxx
index 0bc764e863fe..d6ee1d3eab0e 100644
--- a/basic/inc/basic/sbmod.hxx
+++ b/basic/inc/basic/sbmod.hxx
@@ -46,6 +46,7 @@ class SbProcedureProperty;
class SbIfaceMapperMethod;
class SbClassModuleObject;
+class ModuleInitDependencyMap;
struct ClassModuleRunInitItem;
struct SbClassData;
class SbModuleImpl;
@@ -62,6 +63,8 @@ class SbModule : public SbxObject
SbModuleImpl* mpSbModuleImpl; // Impl data
std::vector< String > mModuleVariableNames;
+ void implClearIfVarDependsOnDeletedBasic( SbxVariable* pVar, StarBASIC* pDeletedBasic );
+
protected:
com::sun::star::uno::Reference< com::sun::star::script::XInvocation > mxWrapper;
::rtl::OUString aOUSource;
@@ -74,7 +77,7 @@ protected:
SbxObjectRef pDocObject; // an impl object ( used by Document Modules )
bool bIsProxyModule;
- static void implProcessModuleRunInit( ClassModuleRunInitItem& rItem );
+ static void implProcessModuleRunInit( ModuleInitDependencyMap& rMap, ClassModuleRunInitItem& rItem );
void StartDefinitions();
SbMethod* GetMethod( const String&, SbxDataType );
SbProperty* GetProperty( const String&, SbxDataType );
@@ -84,6 +87,7 @@ protected:
USHORT Run( SbMethod* );
void RunInit();
void ClearPrivateVars();
+ void ClearVarsDependingOnDeletedBasic( StarBASIC* pDeletedBasic );
void GlobalRunInit( BOOL bBasicStart ); // for all modules
void GlobalRunDeInit( void );
const BYTE* FindNextStmnt( const BYTE*, USHORT&, USHORT& ) const;
@@ -94,6 +98,7 @@ protected:
virtual BOOL LoadCompleted();
virtual void SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
const SfxHint& rHint, const TypeId& rHintType );
+ void handleProcedureProperties( SfxBroadcaster& rBC, const SfxHint& rHint );
virtual ~SbModule();
public:
SBX_DECL_PERSIST_NODATA(SBXCR_SBX,SBXID_BASICMOD,2);
diff --git a/basic/inc/basic/sbobjmod.hxx b/basic/inc/basic/sbobjmod.hxx
index 9ff46d1931f3..49fefb79309e 100644
--- a/basic/inc/basic/sbobjmod.hxx
+++ b/basic/inc/basic/sbobjmod.hxx
@@ -52,10 +52,18 @@ class SbObjModule : public SbModule
{
SbObjModule( const SbObjModule& );
SbObjModule();
+
+protected:
+ virtual ~SbObjModule();
+
public:
TYPEINFO();
SbObjModule( const String& rName, const com::sun::star::script::ModuleInfo& mInfo, bool bIsVbaCompatible );
virtual SbxVariable* Find( const XubString& rName, SbxClassType t );
+
+ virtual void SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
+ const SfxHint& rHint, const TypeId& rHintType );
+
using SbxValue::GetObject;
SbxVariable* GetObject();
void SetUnoObject( const com::sun::star::uno::Any& aObj )throw ( com::sun::star::uno::RuntimeException ) ;
@@ -81,7 +89,7 @@ public:
SbUserFormModule( const String& rName, const com::sun::star::script::ModuleInfo& mInfo, bool bIsVBACompat );
virtual ~SbUserFormModule();
virtual SbxVariable* Find( const XubString& rName, SbxClassType t );
- void ResetApiObj();
+ void ResetApiObj( bool bTriggerTerminateEvent = true );
void Unload();
void Load();
void triggerMethod( const String& );
@@ -93,6 +101,11 @@ public:
void triggerLayoutEvent();
void triggerResizeEvent();
+ bool getInitState( void )
+ { return mbInit; }
+ void setInitState( bool bInit )
+ { mbInit = bInit; }
+
class SbUserFormModuleInstance* CreateInstance();
};
diff --git a/basic/inc/basic/sbstar.hxx b/basic/inc/basic/sbstar.hxx
index 7d189c363364..db67836890e9 100644
--- a/basic/inc/basic/sbstar.hxx
+++ b/basic/inc/basic/sbstar.hxx
@@ -38,6 +38,7 @@
#include <basic/sbdef.hxx>
#include <basic/sberrors.hxx>
#include <com/sun/star/script/ModuleInfo.hpp>
+#include <com/sun/star/frame/XModel.hpp>
class SbModule; // completed module
class SbiInstance; // runtime instance
@@ -77,6 +78,8 @@ class StarBASIC : public SbxObject
SbxObjectRef pVBAGlobals;
SbxObject* getVBAGlobals( );
+ void implClearDependingVarsOnDelete( StarBASIC* pDeletedBasic );
+
protected:
BOOL CError( SbError, const String&, xub_StrLen, xub_StrLen, xub_StrLen );
private:
@@ -206,6 +209,9 @@ public:
bool GetUNOConstant( const sal_Char* _pAsciiName, ::com::sun::star::uno::Any& aOut );
void QuitAndExitApplication();
BOOL IsQuitApplication() { return bQuit; };
+
+ static ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >
+ GetModelFromBasic( SbxObject* pBasic );
};
#ifndef __SB_SBSTARBASICREF_HXX
diff --git a/basic/inc/basic/sbxdef.hxx b/basic/inc/basic/sbxdef.hxx
index 89322be776f9..b85b3552c79e 100644
--- a/basic/inc/basic/sbxdef.hxx
+++ b/basic/inc/basic/sbxdef.hxx
@@ -106,6 +106,7 @@ enum SbxDataType {
};
const UINT32 SBX_TYPE_WITH_EVENTS_FLAG = 0x10000;
+const UINT32 SBX_TYPE_DIM_AS_NEW_FLAG = 0x20000;
const UINT32 SBX_FIXED_LEN_STRING_FLAG = 0x10000; // same value as above as no conflict possible
#endif
@@ -317,6 +318,8 @@ enum SbxError { // Ergebnis einer Rechenoperation/Konversion
#define SBX_REFERENCE 0x4000 // Parameter is Reference (DLL-call)
#define SBX_NO_MODIFY 0x8000 // SetModified is suppressed
#define SBX_WITH_EVENTS 0x0080 // Same value as unused SBX_HIDDEN
+#define SBX_DIM_AS_NEW 0x0800 // Same value as SBX_GBLSEARCH, cannot conflict as one
+ // is used for objects, the other for variables only
// Broadcaster-IDs:
#define SBX_HINT_DYING SFX_HINT_DYING
diff --git a/basic/inc/basic/sbxvar.hxx b/basic/inc/basic/sbxvar.hxx
index 0cddcbdf8d17..1ba1b5d1edfa 100644
--- a/basic/inc/basic/sbxvar.hxx
+++ b/basic/inc/basic/sbxvar.hxx
@@ -439,6 +439,7 @@ SV_DECL_REF(SbxInfo)
class SfxBroadcaster;
class SbxVariableImpl;
+class StarBASIC;
class SbxVariable : public SbxValue
{
@@ -499,7 +500,9 @@ public:
const String& GetDeclareClassName( void );
void SetDeclareClassName( const String& );
- void SetComListener( ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > xComListener );
+ void SetComListener( ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > xComListener,
+ StarBASIC* pParentBasic );
+ void ClearComListener( void );
static USHORT MakeHashCode( const String& rName );
};
diff --git a/basic/inc/svtmsg.hrc b/basic/inc/basic/svtmsg.hrc
index ff215d3fc9cb..ff215d3fc9cb 100644
--- a/basic/inc/svtmsg.hrc
+++ b/basic/inc/basic/svtmsg.hrc
diff --git a/basic/inc/testtool.hrc b/basic/inc/basic/testtool.hrc
index 075b462944c9..075b462944c9 100644
--- a/basic/inc/testtool.hrc
+++ b/basic/inc/basic/testtool.hrc
diff --git a/basic/inc/ttmsg.hrc b/basic/inc/basic/ttmsg.hrc
index 26f250bc6a6a..26f250bc6a6a 100644
--- a/basic/inc/ttmsg.hrc
+++ b/basic/inc/basic/ttmsg.hrc