summaryrefslogtreecommitdiff
path: root/idl/inc
diff options
context:
space:
mode:
authorNoel Grandin <noel@peralex.com>2016-02-16 08:55:36 +0200
committerNoel Grandin <noel@peralex.com>2016-02-16 11:59:05 +0200
commit314cb543fe69d2a08fa40084512f40062437bed1 (patch)
treeb0fcdea41e2e6776324afe4b75393210b5557a91 /idl/inc
parente384e3851de8d5c82c64be579456eccfa4c75959 (diff)
parse shell/interface entries in SvIdlParser
Change-Id: Ief68b26be0a0890ffdfa02a5904ba9d2cb364c65
Diffstat (limited to 'idl/inc')
-rw-r--r--idl/inc/bastype.hxx1
-rw-r--r--idl/inc/object.hxx6
-rw-r--r--idl/inc/parser.hxx4
-rw-r--r--idl/inc/types.hxx3
4 files changed, 9 insertions, 5 deletions
diff --git a/idl/inc/bastype.hxx b/idl/inc/bastype.hxx
index ef7a88c2e144..afe3642d10e0 100644
--- a/idl/inc/bastype.hxx
+++ b/idl/inc/bastype.hxx
@@ -52,6 +52,7 @@ class SvIdentifier
sal_uInt32 nValue;
public:
SvIdentifier() : nValue( 0 ) {};
+ SvIdentifier(sal_uInt32 n) : nValue( n ) {};
void setString(const OString& rStr) { m_aStr = rStr; }
const OString& getString() const { return m_aStr; }
diff --git a/idl/inc/object.hxx b/idl/inc/object.hxx
index 12f5af2b06ac..6d56eebeceac 100644
--- a/idl/inc/object.hxx
+++ b/idl/inc/object.hxx
@@ -50,12 +50,12 @@ class SvMetaClass : public SvMetaType
{
public:
tools::SvRef<SvMetaClass> aSuperClass;
-private:
- SvRefMemberList<SvMetaAttribute *> aAttrList;
std::vector<SvClassElement> aClassElementList;
-
+ SvRefMemberList<SvMetaAttribute *> aAttrList;
bool TestAttribute( SvIdlDataBase & rBase, SvTokenStream & rInStm,
SvMetaAttribute & rAttr ) const;
+private:
+
static void WriteSlotStubs( const OString& rShellName,
SvSlotElementList & rSlotList,
ByteStringList & rList,
diff --git a/idl/inc/parser.hxx b/idl/inc/parser.hxx
index 225836967c00..78a62af53ca1 100644
--- a/idl/inc/parser.hxx
+++ b/idl/inc/parser.hxx
@@ -29,6 +29,7 @@ class SvMetaModule;
class SvMetaTypeEnum;
class SvStringHashEntry;
class SvMetaType;
+class SvMetaClass;
class SvIdlParser
{
@@ -42,6 +43,9 @@ public:
void ReadModuleElement( SvMetaModule& rModule );
void ReadInclude( SvMetaModule& rModule );
void ReadInterfaceOrShell( SvMetaModule& rModule, MetaTypeType aMetaTypeType );
+ void ReadInterfaceOrShellEntry( SvMetaClass& rClass );
+ bool ReadInterfaceOrShellSlot( SvMetaSlot& rSlot );
+ bool ReadInterfaceOrShellAttribute( SvMetaAttribute& rAttr );
void ReadItem();
void ReadStruct();
void ReadEnum();
diff --git a/idl/inc/types.hxx b/idl/inc/types.hxx
index 3be88e1b2eb8..ec7a0de281ee 100644
--- a/idl/inc/types.hxx
+++ b/idl/inc/types.hxx
@@ -30,10 +30,9 @@ typedef SvRefMemberList< SvMetaSlot* > SvSlotElementList;
class SvMetaAttribute : public SvMetaReference
{
-protected:
+public:
virtual void ReadAttributesSvIdl( SvIdlDataBase & rBase,
SvTokenStream & rInStm ) override;
-public:
tools::SvRef<SvMetaType> aType;
SvIdentifier aSlotId;
SvMetaAttribute();