From b850eb45e80b348cbe8629c354350b051f7ef2ec Mon Sep 17 00:00:00 2001 From: Dimitri van Heesch Date: Thu, 5 Jun 2014 20:19:14 +0200 Subject: Added member indexes to template context --- src/context.cpp | 235 +++++++++++++++++++++++++++++++++++++++++++++++++++----- src/context.h | 57 ++++++++++++++ 2 files changed, 271 insertions(+), 21 deletions(-) diff --git a/src/context.cpp b/src/context.cpp index 5516729..4b2a49e 100644 --- a/src/context.cpp +++ b/src/context.cpp @@ -6393,7 +6393,6 @@ class ExampleListContext::Private : public PropertyMapper { m_pageList.reset(PageListContext::alloc(Doxygen::exampleSDict)); - //%% PageNodeList items: addProperty("items",this,&Private::items); addProperty("fileName",this,&Private::fileName); addProperty("relPath",this,&Private::relPath); @@ -6421,6 +6420,193 @@ TemplateVariant ExampleListContext::get(const char *name) const return p->get(name); } +//------------------------------------------------------------------------ + +//%% struct GlobalsIndex: list of examples page +//%% { +class GlobalsIndexContext::Private : public PropertyMapper +{ + public: + //TemplateVariant items() const + //{ + // return m_pageList.get(); + //} + TemplateVariant fileName() const + { + return "globals"; + } + TemplateVariant relPath() const + { + return ""; + } + TemplateVariant highlight() const + { + return "files"; + } + TemplateVariant subhighlight() const + { + return "globals"; + } + TemplateVariant title() const + { + return theTranslator->trFileMembers(); + } + Private() + { + //m_pageList.reset(PageListContext::alloc(Doxygen::exampleSDict)); + + //addProperty("items",this,&Private::items); + addProperty("fileName",this,&Private::fileName); + addProperty("relPath",this,&Private::relPath); + addProperty("highlight",this,&Private::highlight); + addProperty("subhighlight",this,&Private::subhighlight); + addProperty("title",this,&Private::title); + } + private: + //SharedPtr m_pageList; +}; +//%% } + +GlobalsIndexContext::GlobalsIndexContext() : RefCountedContext("GlobalsIndexContext") +{ + p = new Private; +} + +GlobalsIndexContext::~GlobalsIndexContext() +{ + delete p; +} + +TemplateVariant GlobalsIndexContext::get(const char *name) const +{ + return p->get(name); +} + +//------------------------------------------------------------------------ + +//%% struct ClassMembersIndex: list of examples page +//%% { +class ClassMembersIndexContext::Private : public PropertyMapper +{ + public: + //TemplateVariant items() const + //{ + // return m_pageList.get(); + //} + TemplateVariant fileName() const + { + return "functions"; + } + TemplateVariant relPath() const + { + return ""; + } + TemplateVariant highlight() const + { + return "classes"; + } + TemplateVariant subhighlight() const + { + return "classmembers"; + } + TemplateVariant title() const + { + return theTranslator->trCompoundMembers(); + } + Private() + { + //m_pageList.reset(PageListContext::alloc(Doxygen::exampleSDict)); + + //addProperty("items",this,&Private::items); + addProperty("fileName",this,&Private::fileName); + addProperty("relPath",this,&Private::relPath); + addProperty("highlight",this,&Private::highlight); + addProperty("subhighlight",this,&Private::subhighlight); + addProperty("title",this,&Private::title); + } + private: + //SharedPtr m_pageList; +}; +//%% } + +ClassMembersIndexContext::ClassMembersIndexContext() : RefCountedContext("ClassMembersIndexContext") +{ + p = new Private; +} + +ClassMembersIndexContext::~ClassMembersIndexContext() +{ + delete p; +} + +TemplateVariant ClassMembersIndexContext::get(const char *name) const +{ + return p->get(name); +} + +//------------------------------------------------------------------------ + +//%% struct NamespaceMembersIndex: list of examples page +//%% { +class NamespaceMembersIndexContext::Private : public PropertyMapper +{ + public: + //TemplateVariant items() const + //{ + // return m_pageList.get(); + //} + TemplateVariant fileName() const + { + return "namespacemembers"; + } + TemplateVariant relPath() const + { + return ""; + } + TemplateVariant highlight() const + { + return "namespaces"; + } + TemplateVariant subhighlight() const + { + return "namespacemembers"; + } + TemplateVariant title() const + { + return theTranslator->trNamespaceMembers(); + } + Private() + { + //m_pageList.reset(PageListContext::alloc(Doxygen::exampleSDict)); + + //%% PageNodeList items: + //addProperty("items",this,&Private::items); + addProperty("fileName",this,&Private::fileName); + addProperty("relPath",this,&Private::relPath); + addProperty("highlight",this,&Private::highlight); + addProperty("subhighlight",this,&Private::subhighlight); + addProperty("title",this,&Private::title); + } + private: + //SharedPtr m_pageList; +}; +//%% } + +NamespaceMembersIndexContext::NamespaceMembersIndexContext() : RefCountedContext("NamespaceMembersIndexContext") +{ + p = new Private; +} + +NamespaceMembersIndexContext::~NamespaceMembersIndexContext() +{ + delete p; +} + +TemplateVariant NamespaceMembersIndexContext::get(const char *name) const +{ + return p->get(name); +} + //------------------------------------------------------------------------ @@ -7500,24 +7686,27 @@ void generateOutputViaTemplate() TemplateContext *ctx = e.createContext(); if (ctx) { - SharedPtr doxygen (DoxygenContext::alloc()); - SharedPtr config (ConfigContext::alloc()); - SharedPtr tr (TranslateContext::alloc()); - SharedPtr classList (ClassListContext::alloc()); - SharedPtr classIndex (ClassIndexContext::alloc()); - SharedPtr classTree (ClassTreeContext::alloc()); - SharedPtr classHierarchy (ClassHierarchyContext::alloc()); - SharedPtr namespaceList (NamespaceListContext::alloc()); - SharedPtr namespaceTree (NamespaceTreeContext::alloc()); - SharedPtr dirList (DirListContext::alloc()); - SharedPtr fileList (FileListContext::alloc()); - SharedPtr fileTree (FileTreeContext::alloc()); - SharedPtr pageTree (PageTreeContext::alloc()); - SharedPtr pageList (PageListContext::alloc(Doxygen::pageSDict)); - SharedPtr exampleList (ExampleListContext::alloc()); - SharedPtr moduleTree (ModuleTreeContext::alloc()); - SharedPtr moduleList (ModuleListContext::alloc()); - SharedPtr mainPage (PageContext::alloc(Doxygen::mainPage,TRUE)); + SharedPtr doxygen (DoxygenContext::alloc()); + SharedPtr config (ConfigContext::alloc()); + SharedPtr tr (TranslateContext::alloc()); + SharedPtr classList (ClassListContext::alloc()); + SharedPtr classIndex (ClassIndexContext::alloc()); + SharedPtr classTree (ClassTreeContext::alloc()); + SharedPtr classHierarchy (ClassHierarchyContext::alloc()); + SharedPtr namespaceList (NamespaceListContext::alloc()); + SharedPtr namespaceTree (NamespaceTreeContext::alloc()); + SharedPtr dirList (DirListContext::alloc()); + SharedPtr fileList (FileListContext::alloc()); + SharedPtr fileTree (FileTreeContext::alloc()); + SharedPtr pageTree (PageTreeContext::alloc()); + SharedPtr pageList (PageListContext::alloc(Doxygen::pageSDict)); + SharedPtr exampleList (ExampleListContext::alloc()); + SharedPtr moduleTree (ModuleTreeContext::alloc()); + SharedPtr moduleList (ModuleListContext::alloc()); + SharedPtr mainPage (PageContext::alloc(Doxygen::mainPage,TRUE)); + SharedPtr globalsIndex (GlobalsIndexContext::alloc()); + SharedPtr classMembersIndex (ClassMembersIndexContext::alloc()); + SharedPtr namespaceMembersIndex(NamespaceMembersIndexContext::alloc()); //%% Doxygen doxygen: ctx->set("doxygen",doxygen.get()); @@ -7531,8 +7720,6 @@ void generateOutputViaTemplate() ctx->set("classTree",classTree.get()); //%% ClassIndex classIndex: ctx->set("classIndex",classIndex.get()); - // globals - // members //%% ClassHierarchy classHierarchy: ctx->set("classHierarchy",classHierarchy.get()); //%% NamespaceList namespaceList: @@ -7557,6 +7744,12 @@ void generateOutputViaTemplate() ctx->set("dirList",dirList.get()); //%% Page mainPage ctx->set("mainPage",mainPage.get()); + //%% GlobalsIndex globalsIndex: + ctx->set("globalsIndex",globalsIndex.get()); + //%% ClassMembersIndex classMembersIndex: + ctx->set("classMembersIndex",classMembersIndex.get()); + //%% NamespaceMembersIndex namespaceMembersIndex: + ctx->set("namespaceMembersIndex",namespaceMembersIndex.get()); // render HTML output Template *tpl = e.loadByName("htmllayout.tpl",1); diff --git a/src/context.h b/src/context.h index 7622e35..22c9237 100644 --- a/src/context.h +++ b/src/context.h @@ -780,6 +780,63 @@ class ExampleListContext : public RefCountedContext, public TemplateStructIntf //---------------------------------------------------- +class GlobalsIndexContext : public RefCountedContext, public TemplateStructIntf +{ + public: + static GlobalsIndexContext *alloc() { return new GlobalsIndexContext(); } + + // TemplateStructIntf methods + virtual TemplateVariant get(const char *name) const; + virtual int addRef() { return RefCountedContext::addRef(); } + virtual int release() { return RefCountedContext::release(); } + + private: + GlobalsIndexContext(); + ~GlobalsIndexContext(); + class Private; + Private *p; +}; + +//---------------------------------------------------- + +class ClassMembersIndexContext : public RefCountedContext, public TemplateStructIntf +{ + public: + static ClassMembersIndexContext *alloc() { return new ClassMembersIndexContext(); } + + // TemplateStructIntf methods + virtual TemplateVariant get(const char *name) const; + virtual int addRef() { return RefCountedContext::addRef(); } + virtual int release() { return RefCountedContext::release(); } + + private: + ClassMembersIndexContext(); + ~ClassMembersIndexContext(); + class Private; + Private *p; +}; + +//---------------------------------------------------- + +class NamespaceMembersIndexContext : public RefCountedContext, public TemplateStructIntf +{ + public: + static NamespaceMembersIndexContext *alloc() { return new NamespaceMembersIndexContext(); } + + // TemplateStructIntf methods + virtual TemplateVariant get(const char *name) const; + virtual int addRef() { return RefCountedContext::addRef(); } + virtual int release() { return RefCountedContext::release(); } + + private: + NamespaceMembersIndexContext(); + ~NamespaceMembersIndexContext(); + class Private; + Private *p; +}; + +//---------------------------------------------------- + class NavPathElemContext : public RefCountedContext, public TemplateStructIntf { public: -- cgit v0.12