Commit 0fea3d4c authored by Dimitri van Heesch's avatar Dimitri van Heesch

Introduced template directory for template and resource files and resource compiler & manager

parent 475b0c51
......@@ -70,3 +70,6 @@
/man
/docbook
/perlmod
!/templates/html
!/templates/latex
......@@ -102,7 +102,7 @@ pdf: docs
DISTFILES = Doxyfile vhdlparser libmd5 addon tmake doc examples bin lib objects testing \
qtools src configure configure.bin Makefile.in Makefile.win_nmake.in \
Makefile.win_make.in INSTALL LANGUAGE.HOWTO LICENSE PLATFORMS \
VERSION README.md packages winbuild jquery
VERSION README.md packages winbuild jquery templates
archive: clean
tar zcvf dx`date +%y%m%d`.tgz $(DISTFILES)
......
......@@ -3,6 +3,7 @@ JQUERY_UI_VERSION = 1.8.18
HASHCHANGE_VERSION = 1.3
SCROLL_VERSION = 1.4.2
POWERTIP_VERSION = 1.2.0
MINIFIER ?= /usr/local/bin/yuicompressor-2.4.7
SCRIPTS = jquery-$(JQUERY_VERSION).js \
jquery.ui-$(JQUERY_UI_VERSION).core.js \
......@@ -12,31 +13,17 @@ SCRIPTS = jquery-$(JQUERY_VERSION).js \
jquery.ba-$(HASHCHANGE_VERSION)-hashchange.js \
jquery.scrollTo-$(SCROLL_VERSION).js \
jquery.powertip-$(POWERTIP_VERSION).js
RESULTS = jquery_p1.js jquery_p2.js jquery_p3.js \
jquery_ui.js jquery_fx.js jquery_pt.js
RESULTS = jquery.js
SCRIPTS_MIN = $(SCRIPTS:%.js=%-min.js)
all: $(RESULTS)
install: $(RESULTS)
cp $(RESULTS) ../src/
jquery_ui.js: scripts
cat jquery.ui-$(JQUERY_UI_VERSION).core-min.js \
jquery.ui-$(JQUERY_UI_VERSION).widget-min.js \
jquery.ui-$(JQUERY_UI_VERSION).mouse-min.js \
jquery.ui-$(JQUERY_UI_VERSION).resizable-min.js \
jquery.ba-$(HASHCHANGE_VERSION)-hashchange-min.js > jquery_ui.js
jquery_pt.js: scripts
cat jquery.powertip-$(POWERTIP_VERSION)-min.js > jquery_pt.js
jquery_fx.js: scripts
cat jquery.scrollTo-$(SCROLL_VERSION)-min.js > jquery_fx.js
cp $(RESULTS) ../templates/html/
jquery_p1.js jquery_p2.js jquery_p3.js: scripts
perl split_jquery.pl jquery-$(JQUERY_VERSION)-min.js $@
jquery.js: scripts
cat $(SCRIPTS_MIN) > jquery.js
scripts: $(SCRIPTS_MIN)
......@@ -44,5 +31,5 @@ clean:
rm -f $(SCRIPTS_MIN) $(RESULTS)
%-min.js: %.js
java -jar $(MINIFIER).jar --line-break 13000 $^ > $@
java -jar $(MINIFIER).jar $^ > $@
......@@ -11,7 +11,4 @@ packages:
- jquery.scrollTo: 1.4.2: https://github.com/flesler/jquery.scrollTo
- jquery.powertip: 1.2.0: http://stevenbenner.github.io/jquery-powertip/
The Makefile will built the jquery_*.js files used by doxygen.
Some files are split into smaller parts to make sure Visual Studio can compile them
as strings.
The Makefile will built the jquery.js files used by doxygen.
# script to split file into parts of roughly 32kb
#!/bin/perl
my $file = shift;
my $target = shift;
my $count = 1;
my $len = 0;
$target=~/p(\d+).js/;
my $part = $1;
open(F,"<$file") || die ("cannot open file for reading: $!");
open(G,">$target") || die("cannot open file for writing: $!");
while (<F>)
{
if ($part==$count)
{
print G "$_";
}
$len+=length($_);
if ($len>32768)
{
$len=0;
$count++;
}
}
close(F);
close(G);
......@@ -297,7 +297,7 @@ public:
{
if (!str) return *this;
int len1 = length();
int len2 = strlen(str);
int len2 = (int)strlen(str);
resize(len1+len2+1);
memcpy(data()+len1,str,len2);
return *this;
......@@ -467,7 +467,7 @@ public:
{
if (str)
{
int len = strlen(str);
int len = (int)strlen(str);
u.s.isShort = len<SHORT_STR_CAPACITY;
if (len<SHORT_STR_CAPACITY)
{
......@@ -489,7 +489,7 @@ public:
{
if (str && maxlen>0)
{
uint len=strlen(str);
uint len=(uint)strlen(str);
if (len>maxlen) len=maxlen;
u.s.isShort = len<=SHORT_STR_MAX_LEN;
if (u.s.isShort)
......@@ -543,7 +543,7 @@ public:
}
if (str)
{
int len = strlen(str);
int len = (int)strlen(str);
u.s.isShort = len<SHORT_STR_CAPACITY;
if (len<SHORT_STR_CAPACITY)
{
......
......@@ -21,20 +21,11 @@
#include "util.h"
#include "language.h"
#include "ftextstream.h"
#include "resourcemgr.h"
#include <qdir.h>
//--------------------------------------------------------------------------
static const char *doxygen_bst =
#include "doxygen.bst.h"
;
static const char *bib2xhtml_pl =
#include "bib2xhtml.pl.h"
;
//--------------------------------------------------------------------------
const QCString CiteConsts::fileName("citelist");
const QCString CiteConsts::anchorPrefix("CITEREF_");
const QCString bibTmpFile("bibTmpFile_");
......@@ -153,26 +144,12 @@ void CiteDict::generatePage() const
f.close();
// 2. generate bib2xhtml
QCString bib2xhtmlFile = outputDir+"/bib2xhtml.pl";
f.setName(bib2xhtmlFile);
QCString bib2xhtml = bib2xhtml_pl;
if (!f.open(IO_WriteOnly))
{
err("could not open file %s for writing\n",bib2xhtmlFile.data());
}
f.writeBlock(bib2xhtml, bib2xhtml.length());
f.close();
QCString bib2xhtmlFile = outputDir+"/bib2xhtml.pl";
ResourceMgr::instance().copyResource("bib2xhtml.pl",outputDir);
// 3. generate doxygen.bst
QCString doxygenBstFile = outputDir+"/doxygen.bst";
QCString bstData = doxygen_bst;
f.setName(doxygenBstFile);
if (!f.open(IO_WriteOnly))
{
err("could not open file %s for writing\n",doxygenBstFile.data());
}
f.writeBlock(bstData, bstData.length());
f.close();
ResourceMgr::instance().copyResource("doxygen.bst",outputDir);
// 4. for all formats we just copy the bib files to as special output directory
// so bibtex can find them without path (bibtex doesn't support paths or
......
......@@ -13,6 +13,7 @@
*
*/
#include <assert.h>
#include <qdir.h>
#include "context.h"
......@@ -1108,6 +1109,7 @@ class DefinitionContext : public PropertyMapper
public:
DefinitionContext(Definition *d) : m_def(d)
{
assert(d!=0);
//%% string name: the name of the symbol
addProperty("name",this,&DefinitionContext::name);
//%% string bareName: the bare name of the symbol with scope info
......@@ -8147,7 +8149,6 @@ void generateOutputViaTemplate()
SharedPtr<ExampleListContext> exampleList (ExampleListContext::alloc());
SharedPtr<ModuleTreeContext> moduleTree (ModuleTreeContext::alloc());
SharedPtr<ModuleListContext> moduleList (ModuleListContext::alloc());
SharedPtr<PageContext> mainPage (PageContext::alloc(Doxygen::mainPage,TRUE));
SharedPtr<GlobalsIndexContext> globalsIndex (GlobalsIndexContext::alloc());
SharedPtr<ClassMembersIndexContext> classMembersIndex (ClassMembersIndexContext::alloc());
SharedPtr<NamespaceMembersIndexContext> namespaceMembersIndex(NamespaceMembersIndexContext::alloc());
......@@ -8187,7 +8188,15 @@ void generateOutputViaTemplate()
//%% DirList dirList
ctx->set("dirList",dirList.get());
//%% Page mainPage
ctx->set("mainPage",mainPage.get());
if (Doxygen::mainPage)
{
SharedPtr<PageContext> mainPage(PageContext::alloc(Doxygen::mainPage,TRUE));
ctx->set("mainPage",mainPage.get());
}
else
{
ctx->set("mainPage",FALSE);
}
//%% GlobalsIndex globalsIndex:
ctx->set("globalsIndex",globalsIndex.get());
//%% ClassMembersIndex classMembersIndex:
......
......@@ -100,6 +100,9 @@
#include "context.h"
#include "fileparser.h"
// provided by the generated file resources.cpp
extern void initResources();
#define RECURSE_ENTRYTREE(func,var) \
do { if (var->children()) { \
EntryNavListIterator eli(*var->children()); \
......@@ -9915,6 +9918,7 @@ static const char *getArg(int argc,char **argv,int &optind)
void initDoxygen()
{
initResources();
const char *lang = portable_getenv("LC_ALL");
if (lang) portable_setenv("LANG",lang);
setlocale(LC_ALL,"");
......@@ -10884,7 +10888,7 @@ void parseInput()
QCString htmlOutput;
bool &generateHtml = Config_getBool("GENERATE_HTML");
if (generateHtml)
if (generateHtml || g_useOutputTemplate /* TODO: temp hack */)
htmlOutput = createOutputDirectory(outputDirectory,"HTML_OUTPUT","/html");
QCString docbookOutput;
......
This diff is collapsed.
This diff is collapsed.
(function(c){var a=c.scrollTo=function(f,e,d){c(window).scrollTo(f,e,d)};a.defaults={axis:"xy",duration:parseFloat(c.fn.jquery)>=1.3?0:1};a.window=function(d){return c(window)._scrollable()};c.fn._scrollable=function(){return this.map(function(){var e=this,d=!e.nodeName||c.inArray(e.nodeName.toLowerCase(),["iframe","#document","html","body"])!=-1;if(!d){return e}var f=(e.contentWindow||e).document||e.ownerDocument||e;return c.browser.safari||f.compatMode=="BackCompat"?f.body:f.documentElement})};c.fn.scrollTo=function(f,e,d){if(typeof e=="object"){d=e;e=0}if(typeof d=="function"){d={onAfter:d}}if(f=="max"){f=9000000000}d=c.extend({},a.defaults,d);e=e||d.speed||d.duration;d.queue=d.queue&&d.axis.length>1;if(d.queue){e/=2}d.offset=b(d.offset);d.over=b(d.over);return this._scrollable().each(function(){var l=this,j=c(l),k=f,i,g={},m=j.is("html,body");switch(typeof k){case"number":case"string":if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(k)){k=b(k);break}k=c(k,this);case"object":if(k.is||k.style){i=(k=c(k)).offset()}}c.each(d.axis.split(""),function(q,r){var s=r=="x"?"Left":"Top",u=s.toLowerCase(),p="scroll"+s,o=l[p],n=a.max(l,r);if(i){g[p]=i[u]+(m?0:o-j.offset()[u]);if(d.margin){g[p]-=parseInt(k.css("margin"+s))||0;g[p]-=parseInt(k.css("border"+s+"Width"))||0}g[p]+=d.offset[u]||0;if(d.over[u]){g[p]+=k[r=="x"?"width":"height"]()*d.over[u]}}else{var t=k[u];g[p]=t.slice&&t.slice(-1)=="%"?parseFloat(t)/100*n:t}if(/^\d+$/.test(g[p])){g[p]=g[p]<=0?0:Math.min(g[p],n)}if(!q&&d.queue){if(o!=g[p]){h(d.onAfterFirst)}delete g[p]}});h(d.onAfter);function h(n){j.animate(g,e,d.easing,n&&function(){n.call(this,f,d)})}}).end()};a.max=function(j,i){var h=i=="x"?"Width":"Height",e="scroll"+h;if(!c(j).is("html,body")){return j[e]-c(j)[h.toLowerCase()]()}var g="client"+h,f=j.ownerDocument.documentElement,d=j.ownerDocument.body;return Math.max(f[e],d[e])-Math.min(f[g],d[g])};function b(d){return typeof d=="object"?d:{top:d,left:d}}})(jQuery);
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
/*!
PowerTip - v1.2.0 - 2013-04-03
http://stevenbenner.github.com/jquery-powertip/
Copyright (c) 2013 Steven Benner (http://stevenbenner.com/).
Released under MIT license.
https://raw.github.com/stevenbenner/jquery-powertip/master/LICENSE.txt
*/
(function(a){if(typeof define==="function"&&define.amd){define(["jquery"],a)}else{a(jQuery)}}(function(k){var A=k(document),s=k(window),w=k("body");var n="displayController",e="hasActiveHover",d="forcedOpen",u="hasMouseMove",f="mouseOnToPopup",g="originalTitle",y="powertip",o="powertipjq",l="powertiptarget",E=180/Math.PI;var c={isTipOpen:false,isFixedTipOpen:false,isClosing:false,tipOpenImminent:false,activeHover:null,currentX:0,currentY:0,previousX:0,previousY:0,desyncTimeout:null,mouseTrackingActive:false,delayInProgress:false,windowWidth:0,windowHeight:0,scrollTop:0,scrollLeft:0};var p={none:0,top:1,bottom:2,left:4,right:8};k.fn.powerTip=function(F,N){if(!this.length){return this}if(k.type(F)==="string"&&k.powerTip[F]){return k.powerTip[F].call(this,this,N)}var O=k.extend({},k.fn.powerTip.defaults,F),G=new x(O);h();this.each(function M(){var R=k(this),Q=R.data(y),P=R.data(o),T=R.data(l),S;if(R.data(n)){k.powerTip.destroy(R)}S=R.attr("title");if(!Q&&!T&&!P&&S){R.data(y,S);R.data(g,S);R.removeAttr("title")}R.data(n,new t(R,O,G))});if(!O.manual){this.on({"mouseenter.powertip":function J(P){k.powerTip.show(this,P)},"mouseleave.powertip":function L(){k.powerTip.hide(this)},"focus.powertip":function K(){k.powerTip.show(this)},"blur.powertip":function H(){k.powerTip.hide(this,true)},"keydown.powertip":function I(P){if(P.keyCode===27){k.powerTip.hide(this,true)}}})}return this};k.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false};k.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};k.powerTip={show:function z(F,G){if(G){i(G);c.previousX=G.pageX;c.previousY=G.pageY;k(F).data(n).show()}else{k(F).first().data(n).show(true,true)}return F},reposition:function r(F){k(F).first().data(n).resetPosition();return F},hide:function D(G,F){if(G){k(G).first().data(n).hide(F)}else{if(c.activeHover){c.activeHover.data(n).hide(true)}}return G},destroy:function C(G){k(G).off(".powertip").each(function F(){var I=k(this),H=[g,n,e,d];if(I.data(g)){I.attr("title",I.data(g));H.push(y)}I.removeData(H)});return G}};k.powerTip.showTip=k.powerTip.show;k.powerTip.closeTip=k.powerTip.hide;function b(){var F=this;F.top="auto";F.left="auto";F.right="auto";F.bottom="auto";F.set=function(H,G){if(k.isNumeric(G)){F[H]=Math.round(G)}}}function t(K,N,F){var J=null;function L(P,Q){M();if(!K.data(e)){if(!P){c.tipOpenImminent=true;J=setTimeout(function O(){J=null;I()},N.intentPollInterval)}else{if(Q){K.data(d,true)}F.showTip(K)}}}function G(P){M();c.tipOpenImminent=false;if(K.data(e)){K.data(d,false);if(!P){c.delayInProgress=true;J=setTimeout(function O(){J=null;F.hideTip(K);c.delayInProgress=false},N.closeDelay)}else{F.hideTip(K)}}}function I(){var Q=Math.abs(c.previousX-c.currentX),O=Math.abs(c.previousY-c.currentY),P=Q+O;if(P<N.intentSensitivity){F.showTip(K)}else{c.previousX=c.currentX;c.previousY=c.currentY;L()}}function M(){J=clearTimeout(J);c.delayInProgress=false}function H(){F.resetPosition(K)}this.show=L;this.hide=G;this.cancel=M;this.resetPosition=H}function j(){function G(M,L,J,O,P){var K=L.split("-")[0],N=new b(),I;if(q(M)){I=H(M,K)}else{I=F(M,K)}switch(L){case"n":N.set("left",I.left-(J/2));N.set("bottom",c.windowHeight-I.top+P);break;case"e":N.set("left",I.left+P);N.set("top",I.top-(O/2));break;case"s":N.set("left",I.left-(J/2));N.set("top",I.top+P);break;case"w":N.set("top",I.top-(O/2));N.set("right",c.windowWidth-I.left+P);break;case"nw":N.set("bottom",c.windowHeight-I.top+P);N.set("right",c.windowWidth-I.left-20);break;case"nw-alt":N.set("left",I.left);N.set("bottom",c.windowHeight-I.top+P);break;case"ne":N.set("left",I.left-20);N.set("bottom",c.windowHeight-I.top+P);break;case"ne-alt":N.set("bottom",c.windowHeight-I.top+P);N.set("right",c.windowWidth-I.left);break;case"sw":N.set("top",I.top+P);N.set("right",c.windowWidth-I.left-20);break;case"sw-alt":N.set("left",I.left);N.set("top",I.top+P);break;case"se":N.set("left",I.left-20);N.set("top",I.top+P);break;case"se-alt":N.set("top",I.top+P);N.set("right",c.windowWidth-I.left);break}return N}function F(K,J){var O=K.offset(),N=K.outerWidth(),I=K.outerHeight(),M,L;switch(J){case"n":M=O.left+N/2;L=O.top;break;case"e":M=O.left+N;L=O.top+I/2;break;case"s":M=O.left+N/2;L=O.top+I;break;case"w":M=O.left;L=O.top+I/2;break;case"nw":M=O.left;L=O.top;break;case"ne":M=O.left+N;L=O.top;break;case"sw":M=O.left;L=O.top+I;break;case"se":M=O.left+N;L=O.top+I;break}return{top:L,left:M}}function H(O,K){var S=O.closest("svg")[0],N=O[0],W=S.createSVGPoint(),L=N.getBBox(),V=N.getScreenCTM(),M=L.width/2,Q=L.height/2,P=[],I=["nw","n","ne","e","se","s","sw","w"],U,X,R,T;function J(){P.push(W.matrixTransform(V))}W.x=L.x;W.y=L.y;J();W.x+=M;J();W.x+=M;J();W.y+=Q;J();W.y+=Q;J();W.x-=M;J();W.x-=M;J();W.y-=Q;J();if(P[0].y!==P[1].y||P[0].x!==P[7].x){X=Math.atan2(V.b,V.a)*E;R=Math.ceil(((X%360)-22.5)/45);if(R<1){R+=8}while(R--){I.push(I.shift())}}for(T=0;T<P.length;T++){if(I[T]===K){U=P[T];break}}return{top:U.y+c.scrollTop,left:U.x+c.scrollLeft}}this.compute=G}function x(Q){var P=new j(),O=k("#"+Q.popupId);if(O.length===0){O=k("<div/>",{id:Q.popupId});if(w.length===0){w=k("body")}w.append(O)}if(Q.followMouse){if(!O.data(u)){A.on("mousemove",M);s.on("scroll",M);O.data(u,true)}}if(Q.mouseOnToPopup){O.on({mouseenter:function L(){if(O.data(f)){if(c.activeHover){c.activeHover.data(n).cancel()}}},mouseleave:function N(){if(c.activeHover){c.activeHover.data(n).hide()}}})}function I(S){S.data(e,true);O.queue(function R(T){H(S);T()})}function H(S){var U;if(!S.data(e)){return}if(c.isTipOpen){if(!c.isClosing){K(c.activeHover)}O.delay(100).queue(function R(V){H(S);V()});return}S.trigger("powerTipPreRender");U=B(S);if(U){O.empty().append(U)}else{return}S.trigger("powerTipRender");c.activeHover=S;c.isTipOpen=true;O.data(f,Q.mouseOnToPopup);if(!Q.followMouse){G(S);c.isFixedTipOpen=true}else{M()}O.fadeIn(Q.fadeInTime,function T(){if(!c.desyncTimeout){c.desyncTimeout=setInterval(J,500)}S.trigger("powerTipOpen")})}function K(R){c.isClosing=true;c.activeHover=null;c.isTipOpen=false;c.desyncTimeout=clearInterval(c.desyncTimeout);R.data(e,false);R.data(d,false);O.fadeOut(Q.fadeOutTime,function S(){var T=new b();c.isClosing=false;c.isFixedTipOpen=false;O.removeClass();T.set("top",c.currentY+Q.offset);T.set("left",c.currentX+Q.offset);O.css(T);R.trigger("powerTipClose")})}function M(){if(!c.isFixedTipOpen&&(c.isTipOpen||(c.tipOpenImminent&&O.data(u)))){var R=O.outerWidth(),V=O.outerHeight(),U=new b(),S,T;U.set("top",c.currentY+Q.offset);U.set("left",c.currentX+Q.offset);S=m(U,R,V);if(S!==p.none){T=a(S);if(T===1){if(S===p.right){U.set("left",c.windowWidth-R)}else{if(S===p.bottom){U.set("top",c.scrollTop+c.windowHeight-V)}}}else{U.set("left",c.currentX-R-Q.offset);U.set("top",c.currentY-V-Q.offset)}}O.css(U)}}function G(S){var R,T;if(Q.smartPlacement){R=k.fn.powerTip.smartPlacementLists[Q.placement];k.each(R,function(U,W){var V=m(F(S,W),O.outerWidth(),O.outerHeight());T=W;if(V===p.none){return false}})}else{F(S,Q.placement);T=Q.placement}O.addClass(T)}function F(U,T){var R=0,S,W,V=new b();V.set("top",0);V.set("left",0);O.css(V);do{S=O.outerWidth();W=O.outerHeight();V=P.compute(U,T,S,W,Q.offset);O.css(V)}while(++R<=5&&(S!==O.outerWidth()||W!==O.outerHeight()));return V}function J(){var R=false;if(c.isTipOpen&&!c.isClosing&&!c.delayInProgress){if(c.activeHover.data(e)===false||c.activeHover.is(":disabled")){R=true}else{if(!v(c.activeHover)&&!c.activeHover.is(":focus")&&!c.activeHover.data(d)){if(O.data(f)){if(!v(O)){R=true}}else{R=true}}}if(R){K(c.activeHover)}}}this.showTip=I;this.hideTip=K;this.resetPosition=G}function q(F){return window.SVGElement&&F[0] instanceof SVGElement}function h(){if(!c.mouseTrackingActive){c.mouseTrackingActive=true;k(function H(){c.scrollLeft=s.scrollLeft();c.scrollTop=s.scrollTop();c.windowWidth=s.width();c.windowHeight=s.height()});A.on("mousemove",i);s.on({resize:function G(){c.windowWidth=s.width();c.windowHeight=s.height()},scroll:function F(){var I=s.scrollLeft(),J=s.scrollTop();if(I!==c.scrollLeft){c.currentX+=I-c.scrollLeft;c.scrollLeft=I}if(J!==c.scrollTop){c.currentY+=J-c.scrollTop;c.scrollTop=J}}})}}function i(F){c.currentX=F.pageX;c.currentY=F.pageY}function v(F){var H=F.offset(),J=F[0].getBoundingClientRect(),I=J.right-J.left,G=J.bottom-J.top;return c.currentX>=H.left&&c.currentX<=H.left+I&&c.currentY>=H.top&&c.currentY<=H.top+G}function B(I){var G=I.data(y),F=I.data(o),K=I.data(l),H,J;if(G){if(k.isFunction(G)){G=G.call(I[0])}J=G}else{if(F){if(k.isFunction(F)){F=F.call(I[0])}if(F.length>0){J=F.clone(true,true)}}else{if(K){H=k("#"+K);if(H.length>0){J=H.html()}}}}return J}function m(M,L,K){var G=c.scrollTop,J=c.scrollLeft,I=G+c.windowHeight,F=J+c.windowWidth,H=p.none;if(M.top<G||Math.abs(M.bottom-c.windowHeight)-K<G){H|=p.top}if(M.top+K>I||Math.abs(M.bottom-c.windowHeight)>I){H|=p.bottom}if(M.left<J||M.right+L>F){H|=p.left}if(M.left+L>F||M.right<J){H|=p.right}return H}function a(G){var F=0;while(G){G&=G-1;F++}return F}}));
\ No newline at end of file
This diff is collapsed.
File mode changed from 100644 to 100755
......@@ -36,30 +36,7 @@
#include "classlist.h"
#include "namespacedef.h"
#include "filename.h"
static const char doxygenLatexStyle[] =
#include "doxygen.sty.h"
;
//static QCString filterTitle(const char *s)
//{
// QCString tmp=s,result;
// uint i;for (i=0;i<tmp.length();i++)
// {
// char c=tmp.at(i);
// switch(c)
// {
// case '#': result+="\\#"; break;
// case '"': result+="\\\""; break;
// case '%': result+="\\%"; break;
// case '[': result+="{"; break;
// case ']': result+="}"; break;
// default: result+=c; break;
// }
// }
// return result;
//}
#include "resourcemgr.h"
LatexGenerator::LatexGenerator() : OutputGenerator()
......@@ -524,7 +501,7 @@ static void writeDefaultHeaderPart3(FTextStream &t)
static void writeDefaultStyleSheet(FTextStream &t)
{
t << doxygenLatexStyle;
t << ResourceMgr::instance().getAsString("doxygen.sty");
}
static void writeDefaultFooter(FTextStream &t)
......
"<doxygenlayout version=\"1.0\">\n"
" <!-- Generated by doxygen $doxygenversion -->\n"
" <!-- Navigation index tabs for HTML output -->\n"
" <navindex>\n"
" <tab type=\"mainpage\" visible=\"yes\" title=\"\"/>\n"
" <tab type=\"pages\" visible=\"yes\" title=\"\" intro=\"\"/>\n"
" <tab type=\"modules\" visible=\"yes\" title=\"\" intro=\"\"/>\n"
" <tab type=\"namespaces\" visible=\"yes\" title=\"\">\n"
" <tab type=\"namespacelist\" visible=\"yes\" title=\"\" intro=\"\"/>\n"
" <tab type=\"namespacemembers\" visible=\"yes\" title=\"\" intro=\"\"/>\n"
" </tab>\n"
" <tab type=\"classes\" visible=\"yes\" title=\"\">\n"
" <tab type=\"classlist\" visible=\"yes\" title=\"\" intro=\"\"/>\n"
" <tab type=\"classindex\" visible=\"$ALPHABETICAL_INDEX\" title=\"\"/> \n"
" <tab type=\"hierarchy\" visible=\"yes\" title=\"\" intro=\"\"/>\n"
" <tab type=\"classmembers\" visible=\"yes\" title=\"\" intro=\"\"/>\n"
" </tab>\n"
" <tab type=\"files\" visible=\"yes\" title=\"\">\n"
" <tab type=\"filelist\" visible=\"yes\" title=\"\" intro=\"\"/>\n"
" <tab type=\"globals\" visible=\"yes\" title=\"\" intro=\"\"/>\n"
" </tab>\n"
" <tab type=\"examples\" visible=\"yes\" title=\"\" intro=\"\"/> \n"
" </navindex>\n"
"\n"
" <!-- Layout definition for a class page -->\n"
" <class>\n"
" <briefdescription visible=\"yes\"/>\n"
" <includes visible=\"$SHOW_INCLUDE_FILES\"/>\n"
" <inheritancegraph visible=\"$CLASS_GRAPH\"/>\n"
" <collaborationgraph visible=\"$COLLABORATION_GRAPH\"/>\n"
" <memberdecl>\n"
" <nestedclasses visible=\"yes\" title=\"\"/>\n"
" <publictypes title=\"\"/>\n"
" <services title=\"\"/>\n"
" <interfaces title=\"\"/>\n"
" <publicslots title=\"\"/>\n"
" <signals title=\"\"/>\n"
" <publicmethods title=\"\"/>\n"
" <publicstaticmethods title=\"\"/>\n"
" <publicattributes title=\"\"/>\n"
" <publicstaticattributes title=\"\"/>\n"
" <protectedtypes title=\"\"/>\n"
" <protectedslots title=\"\"/>\n"
" <protectedmethods title=\"\"/>\n"
" <protectedstaticmethods title=\"\"/>\n"
" <protectedattributes title=\"\"/>\n"
" <protectedstaticattributes title=\"\"/>\n"
" <packagetypes title=\"\"/>\n"
" <packagemethods title=\"\"/>\n"
" <packagestaticmethods title=\"\"/>\n"
" <packageattributes title=\"\"/>\n"
" <packagestaticattributes title=\"\"/>\n"
" <properties title=\"\"/>\n"
" <events title=\"\"/>\n"
" <privatetypes title=\"\"/>\n"
" <privateslots title=\"\"/>\n"
" <privatemethods title=\"\"/>\n"
" <privatestaticmethods title=\"\"/>\n"
" <privateattributes title=\"\"/>\n"
" <privatestaticattributes title=\"\"/>\n"
" <friends title=\"\"/>\n"
" <related title=\"\" subtitle=\"\"/>\n"
" <membergroups visible=\"yes\"/>\n"
" </memberdecl>\n"
" <detaileddescription title=\"\"/>\n"
" <memberdef>\n"
" <inlineclasses title=\"\"/>\n"
" <typedefs title=\"\"/>\n"
" <enums title=\"\"/>\n"
" <services title=\"\"/>\n"
" <interfaces title=\"\"/>\n"
" <constructors title=\"\"/>\n"
" <functions title=\"\"/>\n"
" <related title=\"\"/>\n"
" <variables title=\"\"/>\n"
" <properties title=\"\"/>\n"
" <events title=\"\"/>\n"
" </memberdef>\n"
" <allmemberslink visible=\"yes\"/>\n"
" <usedfiles visible=\"$SHOW_USED_FILES\"/>\n"
" <authorsection visible=\"yes\"/>\n"
" </class>\n"
"\n"
" <!-- Layout definition for a namespace page -->\n"
" <namespace>\n"
" <briefdescription visible=\"yes\"/>\n"
" <memberdecl>\n"
" <nestednamespaces visible=\"yes\" title=\"\"/>\n"
" <constantgroups visible=\"yes\" title=\"\"/>\n"
" <classes visible=\"yes\" title=\"\"/>\n"
" <typedefs title=\"\"/>\n"
" <enums title=\"\"/>\n"
" <functions title=\"\"/>\n"
" <variables title=\"\"/>\n"
" <membergroups visible=\"yes\"/>\n"
" </memberdecl>\n"
" <detaileddescription title=\"\"/>\n"
" <memberdef>\n"
" <inlineclasses title=\"\"/>\n"
" <typedefs title=\"\"/>\n"
" <enums title=\"\"/>\n"
" <functions title=\"\"/>\n"
" <variables title=\"\"/>\n"
" </memberdef>\n"
" <authorsection visible=\"yes\"/>\n"
" </namespace>\n"
"\n"
" <!-- Layout definition for a file page -->\n"
" <file>\n"
" <briefdescription visible=\"yes\"/>\n"
" <includes visible=\"$SHOW_INCLUDE_FILES\"/>\n"
" <includegraph visible=\"$INCLUDE_GRAPH\"/>\n"
" <includedbygraph visible=\"$INCLUDED_BY_GRAPH\"/>\n"
" <sourcelink visible=\"yes\"/>\n"
" <memberdecl>\n"
" <classes visible=\"yes\" title=\"\"/>\n"
" <namespaces visible=\"yes\" title=\"\"/>\n"
" <constantgroups visible=\"yes\" title=\"\"/>\n"
" <defines title=\"\"/>\n"
" <typedefs title=\"\"/>\n"
" <enums title=\"\"/>\n"
" <functions title=\"\"/>\n"
" <variables title=\"\"/>\n"
" <membergroups visible=\"yes\"/>\n"
" </memberdecl>\n"
" <detaileddescription title=\"\"/>\n"
" <memberdef>\n"
" <inlineclasses title=\"\"/>\n"
" <defines title=\"\"/>\n"
" <typedefs title=\"\"/>\n"
" <enums title=\"\"/>\n"
" <functions title=\"\"/>\n"
" <variables title=\"\"/>\n"
" </memberdef>\n"
" <authorsection/>\n"
" </file>\n"
"\n"
" <!-- Layout definition for a group page -->\n"
" <group>\n"
" <briefdescription visible=\"yes\"/>\n"
" <groupgraph visible=\"$GROUP_GRAPHS\"/>\n"
" <memberdecl>\n"
" <nestedgroups visible=\"yes\" title=\"\"/>\n"
" <dirs visible=\"yes\" title=\"\"/>\n"
" <files visible=\"yes\" title=\"\"/>\n"
" <namespaces visible=\"yes\" title=\"\"/>\n"
" <classes visible=\"yes\" title=\"\"/>\n"
" <defines title=\"\"/>\n"
" <typedefs title=\"\"/>\n"
" <enums title=\"\"/>\n"
" <enumvalues title=\"\"/>\n"
" <functions title=\"\"/>\n"
" <variables title=\"\"/>\n"
" <signals title=\"\"/>\n"
" <publicslots title=\"\"/>\n"
" <protectedslots title=\"\"/>\n"
" <privateslots title=\"\"/>\n"
" <events title=\"\"/>\n"
" <properties title=\"\"/>\n"
" <friends title=\"\"/>\n"
" <membergroups visible=\"yes\"/>\n"
" </memberdecl>\n"
" <detaileddescription title=\"\"/>\n"
" <memberdef>\n"
" <pagedocs/>\n"
" <inlineclasses title=\"\"/>\n"
" <defines title=\"\"/>\n"
" <typedefs title=\"\"/>\n"
" <enums title=\"\"/>\n"
" <enumvalues title=\"\"/>\n"
" <functions title=\"\"/>\n"
" <variables title=\"\"/>\n"
" <signals title=\"\"/>\n"
" <publicslots title=\"\"/>\n"
" <protectedslots title=\"\"/>\n"
" <privateslots title=\"\"/>\n"
" <events title=\"\"/>\n"
" <properties title=\"\"/>\n"
" <friends title=\"\"/>\n"
" </memberdef>\n"
" <authorsection visible=\"yes\"/>\n"
" </group>\n"
"\n"
" <!-- Layout definition for a directory page -->\n"
" <directory>\n"
" <briefdescription visible=\"yes\"/>\n"
" <directorygraph visible=\"yes\"/>\n"
" <memberdecl>\n"
" <dirs visible=\"yes\"/>\n"
" <files visible=\"yes\"/>\n"
" </memberdecl>\n"
" <detaileddescription title=\"\"/>\n"
" </directory>\n"
"</doxygenlayout>\n"
......@@ -98,6 +98,7 @@ HEADERS = arguments.h \
qhp.h \
qhpxmlwriter.h \
reflist.h \
resourcemgr.h \
rtfdocvisitor.h \
rtfgen.h \
rtfstyle.h \
......@@ -188,6 +189,7 @@ SOURCES = arguments.cpp \
qhp.cpp \
qhpxmlwriter.cpp \
reflist.cpp \
resourcemgr.cpp \
rtfdocvisitor.cpp \
rtfgen.cpp \
rtfstyle.cpp \
......@@ -220,7 +222,8 @@ SOURCES = arguments.cpp \
../generated_src/doxygen/tclscanner.cpp \
../generated_src/doxygen/fortrancode.cpp \
../generated_src/doxygen/fortranscanner.cpp \
../generated_src/doxygen/version.cpp
../generated_src/doxygen/version.cpp \
../generated_src/doxygen/resources.cpp
......
......@@ -111,98 +111,16 @@ sub GenerateLex {
$(YACC) -l -d -p ce_parsexpYY constexp.y -o \$(GENERATED_SRC)/ce_parse.c
-rm $(GENERATED_SRC)/ce_parse.c
TO_C_CMD=$(PYTHON) to_c_cmd.py < $< > $@
#$ GenerateDep("layout.cpp","\$(GENERATED_SRC)/layout_default.xml.h");
#$ GenerateDep("cite.cpp","\$(GENERATED_SRC)/doxygen.bst.h","\$(GENERATED_SRC)/bib2xhtml.pl.h");
#$ GenerateDep("ftvhelp.cpp","\$(GENERATED_SRC)/navtree.js.h","\$(GENERATED_SRC)/resize.js.h","\$(GENERATED_SRC)/navtree.css.h");
#$ GenerateDep("htmlgen.cpp","\$(GENERATED_SRC)/header.html.h","\$(GENERATED_SRC)/footer.html.h","\$(GENERATED_SRC)/doxygen.css.h","\$(GENERATED_SRC)/search_functions.php.h","\$(GENERATED_SRC)/search_opensearch.php.h","\$(GENERATED_SRC)/search.css.h","\$(GENERATED_SRC)/jquery_p1.js.h","\$(GENERATED_SRC)/jquery_p2.js.h","\$(GENERATED_SRC)/jquery_p3.js.h","\$(GENERATED_SRC)/jquery_ui.js.h","\$(GENERATED_SRC)/jquery_fx.js.h","\$(GENERATED_SRC)/jquery_pt.js.h","\$(GENERATED_SRC)/svgpan.js.h","\$(GENERATED_SRC)/dynsections.js.h","\$(GENERATED_SRC)/extsearch.js.h");
#$ GenerateDep("xmlgen.cpp","\$(GENERATED_SRC)/index.xsd.h","\$(GENERATED_SRC)/compound.xsd.h");
#$ GenerateDep("latexgen.cpp","\$(GENERATED_SRC)/doxygen.sty.h");
#$ GenerateDep("searchindex.cpp","\$(GENERATED_SRC)/search.js.h");
$(GENERATED_SRC)/index.xsd.h: index.xsd
$(TO_C_CMD)
$(GENERATED_SRC)/version.cpp: ../configure
$(PYTHON) version.py $(GENERATED_SRC)
$(GENERATED_SRC)/compound.xsd.h: compound.xsd
$(TO_C_CMD)
TO_C_CMD=$(PYTHON) to_c_cmd.py < $< > $@
$(GENERATED_SRC)/layout_default.xml.h: layout_default.xml
$(TO_C_CMD)
$(GENERATED_SRC)/header.html.h: header.html
$(TO_C_CMD)
$(GENERATED_SRC)/footer.html.h: footer.html
$(TO_C_CMD)
$(GENERATED_SRC)/search_functions.php.h: search_functions.php
$(TO_C_CMD)
$(GENERATED_SRC)/search_opensearch.php.h: search_opensearch.php
$(TO_C_CMD)
$(GENERATED_SRC)/search.js.h: search.js
$(TO_C_CMD)
$(GENERATED_SRC)/search.css.h: search.css
$(TO_C_CMD)
$(GENERATED_SRC)/extsearch.js.h: extsearch.js
$(TO_C_CMD)
$(GENERATED_SRC)/doxygen.css.h: doxygen.css
$(TO_C_CMD)
$(GENERATED_SRC)/doxygen.sty.h: doxygen.sty
$(TO_C_CMD)
$(GENERATED_SRC)/navtree.js.h: navtree.js
$(TO_C_CMD)
$(GENERATED_SRC)/resize.js.h: resize.js
$(TO_C_CMD)
$(GENERATED_SRC)/jquery_p1.js.h: jquery_p1.js
$(TO_C_CMD)
$(GENERATED_SRC)/jquery_p2.js.h: jquery_p2.js
$(TO_C_CMD)
$(GENERATED_SRC)/jquery_p3.js.h: jquery_p3.js
$(TO_C_CMD)
$(GENERATED_SRC)/jquery_ui.js.h: jquery_ui.js
$(TO_C_CMD)
$(GENERATED_SRC)/jquery_fx.js.h: jquery_fx.js
$(TO_C_CMD)
$(GENERATED_SRC)/jquery_pt.js.h: jquery_pt.js
$(TO_C_CMD)
$(GENERATED_SRC)/navtree.css.h: navtree.css
$(TO_C_CMD)
$(GENERATED_SRC)/svgpan.js.h: svgpan.js
$(TO_C_CMD)
../generated_src/doxygen/resources.cpp: res2cc_cmd.py $(wildcard ../templates/html/*)
$(PYTHON) res2cc_cmd.py ../templates ../generated_src/doxygen/resources.cpp
$(GENERATED_SRC)/dynsections.js.h: dynsections.js
$(TO_C_CMD)
$(GENERATED_SRC)/doxygen.bst.h: doxygen.bst
$(TO_C_CMD)
$(GENERATED_SRC)/bib2xhtml.pl.h: bib2xhtml.pl
$(TO_C_CMD)
$(GENERATED_SRC)/version.cpp: ../configure
$(PYTHON) version.py $(GENERATED_SRC)
from __future__ import print_function
from os import listdir, stat, walk
from os.path import isfile, join, splitext
import sys
class File(object):
def __init__(self,directory,subdir,fileName,mode):
self.directory = directory
self.subdir = subdir
self.fileName = fileName
filePath = join(directory,subdir,fileName)
self.fileSize = stat(filePath).st_size
self.bareName = fileName.replace('.','_')
self.inputFile = open(filePath,mode)
def formatByte(self,byte):
if isinstance(byte,int):
return "%02x" % byte
else:
return format(ord(byte),'02x')
def writeBytes(self,data,outputFile):
bytes_per_line=16
print("static const unsigned char %s_data[] = " % self.bareName,file=outputFile)
print("{",file=outputFile)
lines = [data[x:x+bytes_per_line] for x in range(0,len(data),bytes_per_line)]
linesAsString = ',\n '.join([', '.join(['0x'+self.formatByte(byte) for byte in line]) for line in lines])
print(' %s' % linesAsString,file=outputFile)
print("};",file=outputFile)
print("const int %s_len = %d;\n" % (self.bareName,len(data)),file=outputFile)
def convertToBytes(self,outputFile):
lines = [x for x in self.inputFile.readlines() if not x.startswith('#')]
w,h = (int(x) for x in lines[0].split())
data = "".join(map(chr,[int(w>>8),int(w&0xFF),int(h>>8),int(h&0xFF)]+
[int(x) for line in lines[1:] for x in line.split()]))
self.writeBytes(data,outputFile)
@staticmethod
def factory(directory,subdir,fname):
ext = splitext(fname)[1]
if ext=='.lum': return LumFile(directory,subdir,fname)
if ext=='.luma': return LumaFile(directory,subdir,fname)
if ext=='.css': return CSSFile(directory,subdir,fname)
return VerbatimFile(directory,subdir,fname)
class VerbatimFile(File):
def __init__(self,directory,subdir,fileName):
File.__init__(self,directory,subdir,fileName,"rb")
def writeContents(self,outputFile):
self.writeBytes(self.inputFile.read(),outputFile)
def writeDirEntry(self,outputFile):
print(" { \"%s\", \"%s\", %s_data, %s_len, Resource::Verbatim }," % (self.subdir,self.fileName,self.bareName,self.bareName), file=outputFile)
class CSSFile(File):
def __init__(self,directory,subdir,fileName):
File.__init__(self,directory,subdir,fileName,"r")
def writeContents(self,outputFile):
self.writeBytes(self.inputFile.read(),outputFile)
def writeDirEntry(self,outputFile):
print(" { \"%s\", \"%s\", %s_data, %s_len, Resource::CSS }," % (self.subdir,self.fileName,self.bareName,self.bareName), file=outputFile)
class LumFile(File):
def __init__(self,directory,subdir,fileName):
File.__init__(self,directory,subdir,fileName,"r")
def writeContents(self,outputFile):
self.convertToBytes(outputFile)
def writeDirEntry(self,outputFile):
print(" { \"%s\", \"%s\", %s_data, %s_len, Resource::Luminance }," % (self.subdir,self.fileName,self.bareName,self.bareName), file=outputFile)
class LumaFile(File):
def __init__(self,directory,subdir,fileName):
File.__init__(self,directory,subdir,fileName,"r")
def writeContents(self,outputFile):
self.convertToBytes(outputFile)
def writeDirEntry(self,outputFile):
print(" { \"%s\", \"%s\", %s_data, %s_len, Resource::LumAlpha }," % (self.subdir,self.fileName,self.bareName,self.bareName), file=outputFile)
def main():
if len(sys.argv)<3:
sys.exit('Usage: %s directory output_file.c' % sys.argv[0])
directory = sys.argv[1]
files = []
for dirName, subdirList, fileList in walk(directory):
for fname in sorted(fileList):
subdir = dirName[len(directory)+1:] if dirName.startswith(directory) else dirName
if subdir:
files.append(File.factory(directory,subdir,fname))
outputFile = open(sys.argv[2],"w")
print("#include \"resourcemgr.h\"\n",file=outputFile)
for f in files:
f.writeContents(outputFile)
print("static Resource resourceDir[] =",file=outputFile)
print("{",file=outputFile)
for f in files:
f.writeDirEntry(outputFile)
print("};",file=outputFile)
print("static int resourceDir_len = %s;" % len(files), file=outputFile)
print("void initResources() { ResourceMgr::instance().registerResources(resourceDir,resourceDir_len); }",file=outputFile)
if __name__ == '__main__':
main()
"var cookie_namespace = 'doxygen'; \n"
"var sidenav,navtree,content,header;\n"
"\n"
"function readCookie(cookie) \n"
"{\n"
" var myCookie = cookie_namespace+\"_\"+cookie+\"=\";\n"
" if (document.cookie) \n"
" {\n"
" var index = document.cookie.indexOf(myCookie);\n"
" if (index != -1) \n"
" {\n"
" var valStart = index + myCookie.length;\n"
" var valEnd = document.cookie.indexOf(\";\", valStart);\n"
" if (valEnd == -1) \n"
" {\n"
" valEnd = document.cookie.length;\n"
" }\n"
" var val = document.cookie.substring(valStart, valEnd);\n"
" return val;\n"
" }\n"
" }\n"
" return 0;\n"
"}\n"
"\n"
"function writeCookie(cookie, val, expiration) \n"
"{\n"
" if (val==undefined) return;\n"
" if (expiration == null) \n"
" {\n"
" var date = new Date();\n"
" date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week\n"
" expiration = date.toGMTString();\n"
" }\n"
" document.cookie = cookie_namespace + \"_\" + cookie + \"=\" + val + \"; expires=\" + expiration+\"; path=/\";\n"
"}\n"
" \n"
"function resizeWidth() \n"
"{\n"
" var windowWidth = $(window).width() + \"px\";\n"
" var sidenavWidth = $(sidenav).outerWidth();\n"
" content.css({marginLeft:parseInt(sidenavWidth)+\"px\"}); \n"
" writeCookie('width',sidenavWidth, null);\n"
"}\n"
"\n"
"function restoreWidth(navWidth)\n"
"{\n"
" var windowWidth = $(window).width() + \"px\";\n"
" content.css({marginLeft:parseInt(navWidth)+6+\"px\"});\n"
" sidenav.css({width:navWidth + \"px\"});\n"
"}\n"
"\n"
"function resizeHeight() \n"
"{\n"
" var headerHeight = header.outerHeight();\n"
" var footerHeight = footer.outerHeight();\n"
" var windowHeight = $(window).height() - headerHeight - footerHeight;\n"
" content.css({height:windowHeight + \"px\"});\n"
" navtree.css({height:windowHeight + \"px\"});\n"
" sidenav.css({height:windowHeight + \"px\",top: headerHeight+\"px\"});\n"
"}\n"
"\n"
"function initResizable()\n"
"{\n"
" header = $(\"#top\");\n"
" sidenav = $(\"#side-nav\");\n"
" content = $(\"#doc-content\");\n"
" navtree = $(\"#nav-tree\");\n"
" footer = $(\"#nav-path\");\n"
" $(\".side-nav-resizable\").resizable({resize: function(e, ui) { resizeWidth(); } });\n"
" $(window).resize(function() { resizeHeight(); });\n"
" var width = readCookie('width');\n"
" if (width) { restoreWidth(width); } else { resizeWidth(); }\n"
" resizeHeight();\n"
" var url = location.href;\n"
" var i=url.indexOf(\"#\");\n"
" if (i>=0) window.location.hash=url.substr(i);\n"
" var _preventDefault = function(evt) { evt.preventDefault(); };\n"
" $(\"#splitbar\").bind(\"dragstart\", _preventDefault).bind(\"selectstart\", _preventDefault);\n"
" $(document).bind('touchmove',function(e){\n"
" try {\n"
" var target = e.target;\n"
" while (target) {\n"
" if ($(target).css('-webkit-overflow-scrolling')=='touch') return;\n"
" target = target.parentNode;\n"
" }\n"
" e.preventDefault();\n"
" } catch(err) {\n"
" e.preventDefault();\n"
" }\n"
" });\n"
"}\n"
"\n"
"\n"
/******************************************************************************
*
* Copyright (C) 1997-2014 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
* granted. No representations are made about the suitability of this software
* for any purpose. It is provided "as is" without express or implied warranty.
* See the GNU General Public License for more details.
*
* Documents produced by Doxygen are derivative works derived from the
* input used in their production; they are not affected by this license.
*
*/
#include <qdict.h>
#include <qfile.h>
#include <qcstring.h>
#include <qglobal.h>
#include <string.h>
#include "resourcemgr.h"
#include "util.h"
#include "version.h"
#include "ftextstream.h"
#include "message.h"
#include "config.h"
class ResourceMgr::Private
{
public:
Private() : resources(257) {}
QDict<Resource> resources;
};
ResourceMgr &ResourceMgr::instance()
{
static ResourceMgr theInstance;
return theInstance;
}
ResourceMgr::ResourceMgr()
{
p = new Private;
}
ResourceMgr::~ResourceMgr()
{
delete p;
}
void ResourceMgr::registerResources(const Resource resources[],int numResources)
{
for (int i=0;i<numResources;i++)
{
p->resources.insert(resources[i].name,&resources[i]);
}
}
bool ResourceMgr::copyCategory(const char *categoryName,const char *targetDir) const
{
QDictIterator<Resource> it(p->resources);
const Resource *res;
for (it.toFirst();(res=it.current());++it)
{
if (qstrcmp(res->category,categoryName)==0)
{
if (!copyResource(res->name,targetDir))
{
return FALSE;
}
}
}
return TRUE;
}
bool ResourceMgr::copyResourceAs(const char *name,const char *targetDir,const char *targetName) const
{
QCString pathName = QCString(targetDir)+"/"+targetName;
const Resource *res = get(name);
if (res)
{
switch (res->type)
{
case Resource::Verbatim:
{
QFile f(pathName);
if (f.open(IO_WriteOnly) && f.writeBlock((const char *)res->data,res->size)==res->size)
{
return TRUE;
}
}
break;
case Resource::Luminance:
{
QCString n = name;
n = n.left(n.length()-4)+".png"; // replace .lum by .png
uchar *p = (uchar*)res->data;
int width = (p[0]<<8)+p[1];
int height = (p[2]<<8)+p[3];
ColoredImgDataItem images[2];
images[0].name = n;
images[0].width = width;
images[0].height = height;
images[0].content = &p[4];
images[0].alpha = 0;
images[1].name = 0; // terminator
writeColoredImgData(targetDir,images);
return TRUE;
}
break;
case Resource::LumAlpha:
{
QCString n = name;
n = n.left(n.length()-5)+".png"; // replace .luma by .png
uchar *p = (uchar*)res->data;
int width = (p[0]<<8)+p[1];
int height = (p[2]<<8)+p[3];
ColoredImgDataItem images[2];
images[0].name = n;
images[0].width = width;
images[0].height = height;
images[0].content = &p[4];
images[0].alpha = &p[4+width*height];
images[1].name = 0; // terminator
writeColoredImgData(targetDir,images);
return TRUE;
}
break;
case Resource::CSS:
{
QFile f(pathName);
if (f.open(IO_WriteOnly))
{
QCString buf(res->size+1);
memcpy(buf.data(),res->data,res->size);
FTextStream t(&f);
buf = replaceColorMarkers(buf);
if (qstrcmp(name,"navtree.css")==0)
{
t << substitute(buf,"$width",QCString().setNum(Config_getInt("TREEVIEW_WIDTH"))+"px");
}
else
{
t << substitute(buf,"$doxygenversion",versionString);
}
return TRUE;
}
}
break;
}
}
else
{
err("requested resource '%s' not compiled in!\n",name);
}
return FALSE;
}
bool ResourceMgr::copyResource(const char *name,const char *targetDir) const
{
return copyResourceAs(name,targetDir,name);
}
const Resource *ResourceMgr::get(const char *name) const
{
return p->resources.find(name);
}
QCString ResourceMgr::getAsString(const char *name) const
{
const Resource *res = get(name);
if (res)
{
QCString result(res->size+1);
memcpy(result.data(),res->data,res->size);
return result;
}
else
{
return QCString();
}
}
/******************************************************************************
*
* Copyright (C) 1997-2014 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
* granted. No representations are made about the suitability of this software
* for any purpose. It is provided "as is" without express or implied warranty.
* See the GNU General Public License for more details.
*
* Documents produced by Doxygen are derivative works derived from the
* input used in their production; they are not affected by this license.
*
*/
#ifndef RESOURCEMGR_H
#define RESOURCEMGR_H
#include <qcstring.h>
/** @brief Compiled resource */
struct Resource
{
enum Type { Verbatim, Luminance, LumAlpha, CSS };
const char *category;
const char *name;
const unsigned char *data;
int size;
Type type;
};
/** @brief Singleton for managing resources compiled into an executable */
class ResourceMgr
{
public:
/** Returns the one and only instance of this class */
static ResourceMgr &instance();
/** Registers an array of resources */
void registerResources(const Resource resources[],int numResources);
/** Copies all resource belonging to a given category to a given target directory */
bool copyCategory(const char *categoryName,const char *targetDir) const;
/** Copies a registered resource to a given target directory */
bool copyResource(const char *name,const char *targetDir) const;
/** Copies a registered resource to a given target directory under a given target name */
bool copyResourceAs(const char *name,const char *targetDir,const char *targetName) const;
/** Returns a pointer to the resource object with the given name. */
const Resource *get(const char *name) const;
/** Gets the resource data as a C string */
QCString getAsString(const char *name) const;
private:
ResourceMgr();
~ResourceMgr();
class Private;
Private *p;
};
#endif
......@@ -36,6 +36,7 @@
#include "memberdef.h"
#include "filename.h"
#include "membername.h"
#include "resourcemgr.h"
// file format: (all multi-byte values are stored in big endian format)
// 4 byte header
......@@ -583,9 +584,9 @@ void SearchIndexExternal::write(const char *fileName)
#include "doxygen.h"
#include "message.h"
static const char search_script[]=
#include "search.js.h"
;
//static const char search_script[]=
//#include "search.js.h"
//;
#define SEARCH_INDEX_ALL 0
#define SEARCH_INDEX_CLASSES 1
......@@ -1265,15 +1266,10 @@ void writeJavascriptSearchIndex()
}
{
QFile f(searchDirName+"/search.js");
QFile f(searchDirName+"/searchdata.js");
if (f.open(IO_WriteOnly))
{
FTextStream t(&f);
t << "// Search script generated by doxygen" << endl;
t << "// Copyright (C) 2009 by Dimitri van Heesch." << endl << endl;
t << "// The code in this file is loosly based on main.js, part of Natural Docs," << endl;
t << "// which is Copyright (C) 2003-2008 Greg Valure" << endl;
t << "// Natural Docs is licensed under the GPL." << endl << endl;
t << "var indexSectionsWithContent =" << endl;
t << "{" << endl;
bool first=TRUE;
......@@ -1314,8 +1310,25 @@ void writeJavascriptSearchIndex()
}
if (!first) t << "\n";
t << "};" << endl << endl;
t << search_script;
t << "var indexSectionLabels =" << endl;
t << "{" << endl;
first=TRUE;
static SearchIndexCategoryMapping map;
j=0;
for (i=0;i<NUM_SEARCH_INDICES;i++)
{
if (g_searchIndexCount[i]>0)
{
if (!first) t << "," << endl;
t << " " << j << ": \"" << convertToXML(map.categoryLabel[i]) << "\"";
first=FALSE;
j++;
}
}
if (!first) t << "\n";
t << "};" << endl << endl;
}
ResourceMgr::instance().copyResource("search.js",searchDirName);
}
{
QFile f(searchDirName+"/nomatches.html");
......@@ -1343,6 +1356,7 @@ void writeJavascriptSearchIndex()
void writeSearchCategories(FTextStream &t)
{
#if 0
static SearchIndexCategoryMapping map;
int i,j=0;
for (i=0;i<NUM_SEARCH_INDICES;i++)
......@@ -1357,6 +1371,7 @@ void writeSearchCategories(FTextStream &t)
j++;
}
}
#endif
}
//---------------------------------------------------------------------------------------------
......
This diff is collapsed.
......@@ -46,6 +46,7 @@
#include "dirdef.h"
#include "section.h"
#include "htmlentity.h"
#include "resourcemgr.h"
// no debug info
#define XML_DB(x) do {} while(0)
......@@ -56,18 +57,6 @@
//------------------
static const char index_xsd[] =
#include "index.xsd.h"
;
//------------------
//
static const char compound_xsd[] =
#include "compound.xsd.h"
;
//------------------
/** Helper class mapping MemberList::ListType to a string representing */
class XmlSectionMapper : public QIntDict<char>
{
......@@ -1387,37 +1376,6 @@ static void generateXMLForClass(ClassDef *cd,FTextStream &ti)
generateXMLSection(cd,ti,t,ml,g_xmlSectionMapper.find(ml->listType()));
}
}
#if 0
generateXMLSection(cd,ti,t,cd->pubTypes,"public-type");
generateXMLSection(cd,ti,t,cd->pubMethods,"public-func");
generateXMLSection(cd,ti,t,cd->pubAttribs,"public-attrib");
generateXMLSection(cd,ti,t,cd->pubSlots,"public-slot");
generateXMLSection(cd,ti,t,cd->signals,"signal");
generateXMLSection(cd,ti,t,cd->dcopMethods,"dcop-func");
generateXMLSection(cd,ti,t,cd->properties,"property");
generateXMLSection(cd,ti,t,cd->events,"event");
generateXMLSection(cd,ti,t,cd->pubStaticMethods,"public-static-func");
generateXMLSection(cd,ti,t,cd->pubStaticAttribs,"public-static-attrib");
generateXMLSection(cd,ti,t,cd->proTypes,"protected-type");
generateXMLSection(cd,ti,t,cd->proMethods,"protected-func");
generateXMLSection(cd,ti,t,cd->proAttribs,"protected-attrib");
generateXMLSection(cd,ti,t,cd->proSlots,"protected-slot");
generateXMLSection(cd,ti,t,cd->proStaticMethods,"protected-static-func");
generateXMLSection(cd,ti,t,cd->proStaticAttribs,"protected-static-attrib");
generateXMLSection(cd,ti,t,cd->pacTypes,"package-type");
generateXMLSection(cd,ti,t,cd->pacMethods,"package-func");
generateXMLSection(cd,ti,t,cd->pacAttribs,"package-attrib");
generateXMLSection(cd,ti,t,cd->pacStaticMethods,"package-static-func");
generateXMLSection(cd,ti,t,cd->pacStaticAttribs,"package-static-attrib");
generateXMLSection(cd,ti,t,cd->priTypes,"private-type");
generateXMLSection(cd,ti,t,cd->priMethods,"private-func");
generateXMLSection(cd,ti,t,cd->priAttribs,"private-attrib");
generateXMLSection(cd,ti,t,cd->priSlots,"private-slot");
generateXMLSection(cd,ti,t,cd->priStaticMethods,"private-static-func");
generateXMLSection(cd,ti,t,cd->priStaticAttribs,"private-static-attrib");
generateXMLSection(cd,ti,t,cd->friends,"friend");
generateXMLSection(cd,ti,t,cd->related,"related");
#endif
t << " <briefdescription>" << endl;
writeXMLDocBlock(t,cd->briefFile(),cd->briefLine(),cd,0,cd->briefDescription());
......@@ -1519,14 +1477,6 @@ static void generateXMLForNamespace(NamespaceDef *nd,FTextStream &ti)
generateXMLSection(nd,ti,t,ml,g_xmlSectionMapper.find(ml->listType()));
}
}
#if 0
generateXMLSection(nd,ti,t,&nd->decDefineMembers,"define");
generateXMLSection(nd,ti,t,&nd->decProtoMembers,"prototype");
generateXMLSection(nd,ti,t,&nd->decTypedefMembers,"typedef");
generateXMLSection(nd,ti,t,&nd->decEnumMembers,"enum");
generateXMLSection(nd,ti,t,&nd->decFuncMembers,"func");
generateXMLSection(nd,ti,t,&nd->decVarMembers,"var");
#endif
t << " <briefdescription>" << endl;
writeXMLDocBlock(t,nd->briefFile(),nd->briefLine(),nd,0,nd->briefDescription());
......@@ -1663,14 +1613,6 @@ static void generateXMLForFile(FileDef *fd,FTextStream &ti)
generateXMLSection(fd,ti,t,ml,g_xmlSectionMapper.find(ml->listType()));
}
}
#if 0
generateXMLSection(fd,ti,t,fd->decDefineMembers,"define");
generateXMLSection(fd,ti,t,fd->decProtoMembers,"prototype");
generateXMLSection(fd,ti,t,fd->decTypedefMembers,"typedef");
generateXMLSection(fd,ti,t,fd->decEnumMembers,"enum");
generateXMLSection(fd,ti,t,fd->decFuncMembers,"func");
generateXMLSection(fd,ti,t,fd->decVarMembers,"var");
#endif
t << " <briefdescription>" << endl;
writeXMLDocBlock(t,fd->briefFile(),fd->briefLine(),fd,0,fd->briefDescription());
......@@ -1753,14 +1695,6 @@ static void generateXMLForGroup(GroupDef *gd,FTextStream &ti)
generateXMLSection(gd,ti,t,ml,g_xmlSectionMapper.find(ml->listType()));
}
}
#if 0
generateXMLSection(gd,ti,t,&gd->decDefineMembers,"define");
generateXMLSection(gd,ti,t,&gd->decProtoMembers,"prototype");
generateXMLSection(gd,ti,t,&gd->decTypedefMembers,"typedef");
generateXMLSection(gd,ti,t,&gd->decEnumMembers,"enum");
generateXMLSection(gd,ti,t,&gd->decFuncMembers,"func");
generateXMLSection(gd,ti,t,&gd->decVarMembers,"var");
#endif
t << " <briefdescription>" << endl;
writeXMLDocBlock(t,gd->briefFile(),gd->briefLine(),gd,0,gd->briefDescription());
......@@ -1906,18 +1840,11 @@ void generateXML()
QCString outputDirectory = Config_getString("XML_OUTPUT");
QDir xmlDir(outputDirectory);
createSubDirs(xmlDir);
QCString fileName=outputDirectory+"/index.xsd";
QFile f(fileName);
if (!f.open(IO_WriteOnly))
{
err("Cannot open file %s for writing!\n",fileName.data());
return;
}
f.writeBlock(index_xsd,qstrlen(index_xsd));
f.close();
fileName=outputDirectory+"/compound.xsd";
f.setName(fileName);
ResourceMgr::instance().copyResource("index.xsd",outputDirectory);
QCString fileName=outputDirectory+"/compound.xsd";
QFile f(fileName);
if (!f.open(IO_WriteOnly))
{
err("Cannot open file %s for writing!\n",fileName.data());
......@@ -1925,7 +1852,8 @@ void generateXML()
}
// write compound.xsd, but replace special marker with the entities
const char *startLine = compound_xsd;
QCString compound_xsd = ResourceMgr::instance().getAsString("compound.xsd");
const char *startLine = compound_xsd.data();
while (*startLine)
{
// find end of the line
......
# folder open icon
# width & height
16 22
# luma data
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 152 152 152 152 152 152 152 152 152 255 255 255 255
255 255 255 152 152 152 152 152 152 152 152 152 255 255 255 255
255 255 255 255 152 152 152 152 152 152 152 255 255 255 255 255
255 255 255 255 152 152 152 152 152 152 152 255 255 255 255 255
255 255 255 255 255 152 152 152 152 152 255 255 255 255 255 255
255 255 255 255 255 255 152 152 152 255 255 255 255 255 255 255
255 255 255 255 255 255 152 152 152 255 255 255 255 255 255 255
255 255 255 255 255 255 255 152 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
# alpha data
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 231 255 255 255 255 255 255 255 216 0 0 0 0
0 0 0 87 255 255 255 255 255 255 255 65 0 0 0 0
0 0 0 0 186 255 255 255 255 255 164 0 0 0 0 0
0 0 0 0 38 251 255 255 255 241 25 0 0 0 0 0
0 0 0 0 0 127 255 255 255 107 0 0 0 0 0 0
0 0 0 0 0 0 221 255 204 0 0 0 0 0 0 0
0 0 0 0 0 0 72 253 52 0 0 0 0 0 0 0
0 0 0 0 0 0 0 77 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
# folder open icon
# width & height
16 22
# luma data
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 152 152 255 255 255 255 255 255 255 255 255 255 255
255 255 255 152 152 152 152 255 255 255 255 255 255 255 255 255
255 255 255 152 152 152 152 152 255 255 255 255 255 255 255 255
255 255 255 152 152 152 152 152 152 152 255 255 255 255 255 255
255 255 255 152 152 152 152 152 152 152 152 255 255 255 255 255
255 255 255 152 152 152 152 152 152 152 255 255 255 255 255 255
255 255 255 152 152 152 152 152 255 255 255 255 255 255 255 255
255 255 255 152 152 152 152 255 255 255 255 255 255 255 255 255
255 255 255 152 152 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
# alpha data
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 223 75 0 0 0 0 0 0 0 0 0 0 0
0 0 0 255 255 176 33 0 0 0 0 0 0 0 0 0
0 0 0 255 255 255 248 117 0 0 0 0 0 0 0 0
0 0 0 255 255 255 255 255 211 60 0 0 0 0 0 0
0 0 0 255 255 255 255 255 255 255 77 0 0 0 0 0
0 0 0 255 255 255 255 255 211 60 0 0 0 0 0 0
0 0 0 255 255 255 248 117 0 0 0 0 0 0 0 0
0 0 0 255 255 176 33 0 0 0 0 0 0 0 0 0
0 0 0 223 75 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
# breadcrumb tabs
# width & height
8 30
# luma data
150 187 187 148 148 148 148 148
147 175 186 147 147 147 147 147
146 153 185 185 146 146 146 146
144 144 177 183 144 144 144 144
144 144 159 182 144 144 144 144
143 143 144 179 181 143 143 143
142 142 142 165 180 142 142 142
141 141 141 144 178 178 141 141
139 139 139 139 167 176 139 139
137 137 137 137 146 174 137 137
137 137 137 137 137 169 173 137
135 135 135 135 135 150 171 135
133 133 133 133 133 135 167 169
132 132 132 132 132 132 154 167
129 129 129 129 129 129 140 164
129 129 129 129 129 129 154 163
127 127 127 127 127 128 161 161
125 125 125 125 125 141 158 125
123 123 123 123 123 152 156 123
121 121 121 121 129 154 121 121
120 120 120 120 143 152 120 120
118 118 118 120 150 150 118 118
117 117 117 132 148 117 117 117
114 114 114 142 145 114 114 114
113 113 120 143 113 113 113 113
111 111 133 141 111 111 111 111
110 112 140 140 110 110 110 110
109 124 138 109 109 109 109 109
107 133 136 107 107 107 107 107
111 134 106 106 106 106 106 106
# alpha data
241 241 21 0 0 0 0 0
162 205 117 0 0 0 0 0
54 231 225 3 0 0 0 0
0 198 215 78 0 0 0 0
0 93 211 186 0 0 0 0
0 6 232 235 42 0 0 0
0 0 132 203 147 0 0 0
0 0 27 242 241 15 0 0
0 0 0 168 205 108 0 0
0 0 0 63 228 219 0 0
0 0 0 0 207 221 72 0
0 0 0 0 102 208 177 0
0 0 0 0 9 238 240 36
0 0 0 0 0 138 201 138
0 0 0 0 0 77 187 158
0 0 0 0 0 159 204 120
0 0 0 0 15 241 241 21
0 0 0 0 111 208 171 0
0 0 0 0 210 222 66 0
0 0 0 60 227 219 0 0
0 0 0 162 204 114 0 0
0 0 18 238 238 21 0 0
0 0 114 205 165 0 0 0
0 0 216 225 60 0 0 0
0 66 226 216 0 0 0 0
0 165 204 111 0 0 0 0
21 241 241 18 0 0 0 0
117 203 159 0 0 0 0 0
219 227 57 0 0 0 0 0
211 201 0 0 0 0 0 0
# arrow down button
# width height
7 8
# luma data
0 0 0 142 0 0 0
0 0 0 142 0 0 0
0 0 0 142 0 0 0
142 0 0 142 0 0 142
142 142 0 142 0 142 142
142 142 142 142 142 142 142
0 142 142 142 142 142 0
0 0 142 142 142 0 0
# alpha data
0 0 0 255 0 0 0
0 0 0 255 0 0 0
0 0 0 255 0 0 0
128 0 0 255 0 0 128
255 128 0 255 0 128 255
128 255 128 255 128 255 128
0 128 255 255 255 128 0
0 0 128 255 128 0 0
# tree closed icon
# width & height
9 9
# luma data
0 0 0 0 142 0 0 0 0
0 0 0 0 142 142 0 0 0
0 0 0 0 142 142 142 0 0
0 0 0 0 142 142 142 142 0
0 0 0 0 142 142 142 142 142
0 0 0 0 142 142 142 142 0
0 0 0 0 142 142 142 0 0
0 0 0 0 142 142 0 0 0
0 0 0 0 142 0 0 0 0
# alpha data
0 0 0 0 255 0 0 0 0
0 0 0 0 255 255 0 0 0
0 0 0 0 255 255 255 0 0
0 0 0 0 255 255 255 255 0
0 0 0 0 255 255 255 255 255
0 0 0 0 255 255 255 255 0
0 0 0 0 255 255 255 0 0
0 0 0 0 255 255 0 0 0
0 0 0 0 255 0 0 0 0
# document icon
# width & height
24 22
# luma data
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 218 214 208 208 204 191 179 190 197 209 231 255 255 255 255 255 255 255 255
255 255 255 255 255 195 224 226 226 222 214 204 181 203 229 188 225 255 255 255 255 255 255 255
255 255 255 255 255 198 226 228 227 227 224 215 203 180 252 229 184 224 255 255 255 255 255 255
255 255 255 255 255 198 229 230 229 229 228 224 214 154 252 252 229 187 235 255 255 255 255 255
255 255 255 255 255 198 232 233 233 232 231 230 223 176 154 144 165 177 216 255 255 255 255 255
255 255 255 255 255 198 236 236 216 226 238 219 232 225 209 190 189 166 193 255 255 255 255 255
255 255 255 255 255 198 239 240 178 177 230 175 169 184 188 219 208 189 187 255 255 255 255 255
255 255 255 255 255 198 241 242 240 218 237 236 240 235 241 244 221 208 182 255 255 255 255 255
255 255 255 255 255 198 243 243 188 154 183 158 166 140 185 198 231 219 177 255 255 255 255 255
255 255 255 255 255 198 243 245 248 228 241 241 226 249 237 227 239 232 177 255 255 255 255 255
255 255 255 255 255 198 244 246 213 172 163 149 171 200 167 149 242 239 177 255 255 255 255 255
255 255 255 255 255 198 249 248 240 218 237 236 240 235 241 244 244 242 177 255 255 255 255 255
255 255 255 255 255 198 249 251 188 155 184 158 166 140 185 198 246 244 177 255 255 255 255 255
255 255 255 255 255 198 251 253 248 228 241 241 226 249 237 227 249 246 177 255 255 255 255 255
255 255 255 255 255 196 253 252 252 252 252 251 251 250 250 249 249 248 175 255 255 255 255 255
255 255 255 255 255 194 64 30 37 37 37 37 37 37 37 37 30 64 188 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
# alpha data
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0
0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0
0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0
0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0
0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0
0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0
0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0
0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0
0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0
0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0
0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0
0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0
0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0
0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0
0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0
0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
......@@ -773,7 +773,7 @@ div.directory {
width: 24px;
height: 18px;
margin-bottom: 4px;
background-image:url('ftv2folderopen.png');
background-image:url('folderopen.png');
background-position: 0px -4px;
background-repeat: repeat-y;
vertical-align:top;
......@@ -784,7 +784,7 @@ div.directory {
width: 24px;
height: 18px;
margin-bottom: 4px;
background-image:url('ftv2folderclosed.png');
background-image:url('folderclosed.png');
background-position: 0px -4px;
background-repeat: repeat-y;
vertical-align:top;
......@@ -795,7 +795,7 @@ div.directory {
width: 24px;
height: 18px;
margin-bottom: 4px;
background-image:url('ftv2doc.png');
background-image:url('doc.png');
background-position: 0px -4px;
background-repeat: repeat-y;
vertical-align:top;
......
This diff is collapsed.
......@@ -11,7 +11,7 @@ function SearchBox(name, resultsPath, inFrame, label)
{
this.DOMSearchBox().className = 'MSearchBoxActive';
var searchField = this.DOMSearchField();
if (searchField.value == this.searchLabel)
if (searchField.value == this.searchLabel)
{
searchField.value = '';
}
......
# folder closed icon
# width & height
24 22
# luma data
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 197 155 155 155 155 196 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 155 191 191 191 192 155 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 168 144 180 180 181 180 145 145 146 145 146 146 146 146 145 167 255 255 255 255
255 255 255 255 147 225 226 226 225 226 225 221 221 219 215 214 212 211 213 145 255 255 255 255
255 255 255 255 147 212 211 211 210 211 210 205 206 205 201 201 199 196 201 145 255 255 255 255
255 255 255 255 146 204 203 204 203 203 202 200 200 197 197 196 195 194 196 145 255 255 255 255
255 255 255 255 146 202 200 201 201 200 199 198 198 195 194 194 193 192 194 145 255 255 255 255
255 255 255 255 145 200 196 196 196 195 195 193 192 192 190 189 189 189 191 143 255 255 255 255
255 255 255 255 143 192 191 190 190 189 189 188 186 187 186 185 185 185 187 142 255 255 255 255
255 255 255 255 142 186 184 183 182 183 182 183 180 181 181 181 181 181 182 141 255 255 255 255
255 255 255 255 138 177 175 176 176 177 177 176 175 174 175 175 175 174 176 138 255 255 255 255
255 255 255 255 138 173 169 170 168 170 169 170 170 169 171 171 171 171 174 137 255 255 255 255
255 255 255 255 138 166 163 163 162 162 162 162 162 162 164 163 163 163 166 137 255 255 255 255
255 255 255 255 137 124 124 124 125 124 124 124 125 125 124 124 125 124 125 138 255 255 255 255
255 255 255 255 231 231 228 225 222 220 218 216 214 215 217 219 221 224 227 226 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
# alpha data
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0
0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0
0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0
0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0
0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0
0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0
0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0
0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0
0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0
0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0
0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0
0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0
0 0 0 0 148 148 148 148 148 148 148 148 148 148 148 148 148 148 148 148 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
# folder open icon
# width & height
24 22
# luma data
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 228 195 193 190 187 218 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 195 215 221 225 225 178 176 176 175 176 178 180 255 255 255 255 255 255
255 255 255 255 255 255 189 206 215 219 226 220 214 212 207 204 200 176 255 255 255 255 255 255
255 255 255 255 168 154 153 153 152 152 151 149 150 150 149 147 146 145 145 167 255 255 255 255
255 255 255 255 146 187 187 188 187 187 185 183 183 182 179 178 175 173 174 145 255 255 255 255
255 255 255 255 146 180 182 182 181 181 179 178 176 174 173 171 169 170 168 144 255 255 255 255
255 255 255 255 144 173 176 176 177 175 175 174 171 170 168 168 166 166 164 143 255 255 255 255
255 255 255 255 142 168 170 171 170 170 169 168 166 166 165 163 163 164 162 142 255 255 255 255
255 255 255 255 141 162 166 164 164 165 163 163 161 161 161 161 161 160 159 141 255 255 255 255
255 255 255 255 138 157 159 159 158 158 158 157 157 157 157 156 157 157 155 138 255 255 255 255
255 255 255 255 137 154 153 154 154 153 154 154 154 153 154 154 154 154 154 137 255 255 255 255
255 255 255 255 137 154 154 154 154 154 154 154 153 154 154 153 153 153 154 137 255 255 255 255
255 255 255 255 137 125 125 125 125 124 125 124 124 125 124 124 125 124 125 138 255 255 255 255
255 255 255 255 212 209 204 199 193 190 186 183 180 181 185 188 192 197 202 203 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
# alpha data
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0
0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0
0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0
0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0
0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0
0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0
0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0
0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0
0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0
0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0
0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0
0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0
0 0 0 0 148 148 148 148 148 148 148 148 148 148 148 148 148 148 148 148 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
{% extend 'htmlbase.tpl' %}
{% block title %}
<div class="headertitle"><div class="title">{{ compound.name }} {{ tr.memberList }}</div></div>
{% endblock %}
{% block content %}
<div class="contents">
<p>{{ tr.theListOfAllMembers }} <a class="el" href="{{ compound.fileName }}{{ config.HTML_FILE_EXTENSION }}">{{ compound.name }}</a>{{ tr.incInheritedMembers }}</p>
<table class="directory">
{% for mi in compound.allMembersList %}
<tr {% cycle 'class="even"' '' %}>
{# TODO: objective-C #}
<td>{% with obj=mi.member text=mi.ambiguityScope|append:mi.member.name %}
{% include 'htmlobjlink.tpl' %}
{% endwith %}
</td>
</tr>
{% endfor %}
</table>
</div>
{% endblock %}
{% extend 'htmlbase.tpl' %}
{% block content %}
<div class="contents">
<div class="textblock">
{{ tr.classListDescription }}
</div>
{% indexentry nav name=tr.classes file=page.fileName anchor='' %}
{% opensubindex nav %}
{% with tree=classTree %}
{% include 'htmldirtree.tpl' %}
{% endwith %}
{% closesubindex nav %}
</div><!-- contents -->
{% endblock %}
{% block header %}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen {{ doxygen.version }}"/>
<title>{{ config.PROJECT_NAME }}: {{ page.title }}</title>
<link href="{{ page.relPath }}tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="{{ page.relPath }}jquery.js"></script>
<script type="text/javascript" src="{{ page.relPath }}dynsections.js"></script>
{% if config.GENERATE_TREEVIEW %}
<link href="{{ page.relPath }}navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="{{ page.relPath }}resize.js"></script>
<script type="text/javascript" src="{{ page.relPath }}navtreedata.js"></script>
<script type="text/javascript" src="{{ page.relPath }}navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
$(window).load(resizeHeight);
</script>
{% endif %}
{% if config.SEARCHENGINE %}
<link href="{{ page.relPath }}search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="{{ page.relPath }}search/search.js"></script>
{% if config.SERVER_BASED_SEARCH %}
<script type="text/javascript">
$(document).ready(function() {
if ($('.searchresults').length > 0) { searchBox.DOMSearchField().focus(); }
});
</script>
<link rel="search" href="{{ page.relPath }}search-opensearch.php?v=opensearch.xml" type="application/opensearchdescription+xml" title="{{ config.PROJECT_NAME }}"/>
{% else %}
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
{% endif %}
{% endif %}
{% if config.USE_MATHJAX %}
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"], {# TODO: support MATHJAX_EXTENSIONS #}
jax: ["input/TeX","output/{{ config.MATHJAX_FORMAT }}"],
});
{# TODO: support MATHJAX_CODEFILE #}
</script>
<script src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
{% endif %}
<link href="{{ page.relPath }}{{ config.HTML_STYLESHEET|default:'doxygen.css' }}" rel="stylesheet" type="text/css" />
{% if config.HTML_EXTRA_STYLESHEET %}
<link href="{{ page.relPath }}{{ config.HTML_EXTRA_STYLESHEET }}" rel="stylesheet" type="text/css" />
{% endif %}
</head>
<body>
{% endblock %}
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
{% block titlearea %}
{% if config.PROJECT_NAME or config.PROJECT_BRIEF or config.PROJECT_LOGO or config.DISABLE_INDEX and config.SEARCHENGINE %}
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
{% if config.PROJECT_LOGO %}
<td id="projectlogo"><img alt="Logo" src="{{ page.relPath }}{{ config.PROJECT_LOGO|stripPath }}"/></td>
{% endif %}
<td style="padding-left: 0.5em;">
{% if config.PROJECT_NAME %}
<div id="projectname">{{ config.PROJECT_NAME }}
{% if config.PROJECT_NUMBER %}
<span id="projectnumber">{{ config.PROJECT_NUMBER }}</span>
{% endif %}
</div>
{% endif %}
{% if config.PROJECT_BRIEF %}
<div id="projectbrief">{{ config.PROJECT_BRIEF }}</div>
{% endif %}
</td>
{% if config.DISABLE_INDEX and config.SEARCHENGINE %}{# search box is part of title area #}
<td>
{% if config.SERVER_BASED_SEARCH %}
<div id="MSearchBox" class="MSearchBoxInactive">
<div class="left">
<form id="FSearchBox" action="{{ page.relPath }}{% if config.EXTERNAL_SEARCH %}search{{ doxygen.htmlFileExtension }}{% else %}search.php{% endif %}" method="get">
<img id="MSearchSelect" src="{{ page.relPath }}search/mag.png" alt=""/>
<input type="text" id="MSearchField" name="query" value="{{ tr.search }}" size="20" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"/>
</form>
</div>
<div class="right"></div>
</div>
{% else %}{# !SERVER_BASED_SEARCH #}
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="{{ page.relPath }}search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="{{ tr.search }}" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img
id="MSearchCloseImg" border="0" src="{{ page.relPath }}search/close.png"
alt=""/></a>
</span>
</div>
</td>
{% endif %}{# SERVER_BASED_SEARCH #}
{% endif %}{# DISABLE_INDEX and SEARCHENGINE #}
</tr>
</tbody>
</table>
</div>
{% endif %}{# titlearea visible #}
{% endblock %}
<!-- end header part -->
<!-- Generated by Doxygen {{ doxygen.version }} -->
{% block search %}
{% if config.SEARCHENGINE %}{# TODO: can't we move this to the header? #}
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "{{ page.relPath }}search",false,'{{ tr.search }}');
</script>
{% endif %}
{% endblock %}
{% block tabs %}
{% if not config.DISABLE_INDEX %}
{% include 'htmltabs.tpl' %}
{% endif %}
{% endblock %}
{% block navpath %}
{% endblock %}
</div><!-- top -->
{% block splitbar %}
{% if config.GENERATE_TREEVIEW %}
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('{{ page.fileName }}{% if page_postfix %}{{ page_postfix }}{% endif %}{{ config.HTML_FILE_EXTENSION }}','{{ page.relPath }}');});
</script>
<div id="doc-content">
{% endif %}
{% endblock %}
{% block searchInfo %}
{% if config.SEARCHENGINE and not config.SERVER_BASED_SEARCH %}
<!-- window showing the filter options -->
<div id="MSearchSelectWindow" onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
{# TODO: get search categories dynamically, since we don't know them here #}
</div>
{% endif %}
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" name="MSearchResults" id="MSearchResults">
</iframe>
</div>
{% endblock %}
<div class="header">
{% block title %}
<div class="headertitle"><div class="title">{{ page.title }}</div></div>
{% endblock %}
</div>
{% block content %}
{% endblock %}
{% block endsplitbar %}
{% if config.GENERATE_TREEVIEW %}
</div><!-- content -->
{% endif %}
{% endblock %}
{% block footer %}
{% if config.GENERATE_TREEVIEW %}
<div id="nav-path" class="navpath">{# id is needed for treeview function! #}
<ul>
{# navpath #}
<li class="footer">
{% if config.HTML_TIMESTAMP %}
{{ tr.generatedAt:doxygen.date,config.PROJECT_NAME }}
{% else %}
{{ tr.generatedby }}
{% endif %}
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="{{ page.relPath }}doxygen.png" alt="doxygen"/></a> {{ doxygen.version }} </li>
</ul>
</div>
{% else %}
<hr class="footer"/><address class="footer"><small>
{% if config.HTML_TIMESTAMP %}
{{ tr.generatedAt:doxygen.date,config.PROJECT_NAME }}
{% else %}
{{ tr.generatedby }}
{% endif %}
&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="{{ page.relPath }}doxygen.png" alt="doxygen"/></a>
{{ doxygen.version }}
</small></address>
{% endif %}
</body>
</html>
{% endblock %}
This diff is collapsed.
{% extend 'htmlbase.tpl' %}
{% block content %}
<div class="contents">
<div class="textblock">
{% indexentry nav name=tr.classIndex file=page.fileName anchor='' %}
</div>
<div class="classindex" style="column-count:{{ config.COLS_IN_ALPHA_INDEX }};-moz-column-count:{{ config.COLS_IN_ALPHA_INDEX }};-webkit-column-count:{{ config.COLS_IN_ALPHA_INDEX}}">
<ul>
{% with index=classIndex.list|alphaIndex:'name' %}
{% for section in index %}
<div class="ah">&#160;&#160;{{ section.letter }}&#160;&#160;</div>
{% for cls in section.items %}
<li>{{ cls.name }}</li>
{% endfor %}
{% endfor %}
{% endwith %}
</ul>
</div><!-- classindex -->
</div><!-- contents -->
{% endblock %}
{# inputs: page, list #}
{% extend 'htmlbase.tpl' %}
{% block tabs %}
{{ block.super }}
{% include 'htmlmembertabs.tpl %}
{% endblock %}
{% block content %}
<div class="contents">
<div class="textblock">
{% if section=='' and letter=='' %}
{{ tr.classMembersDescription }}
{% endif %}
{% include 'htmlmemberindex.tpl' %}
</div>
</div><!-- contents -->
{% endblock %}
{% with page=namespaceMembersIndex %}
{# all members #}
{% with list=namespaceMembersIndex.all section='' template='htmlclmembers.tpl' %}
{% include 'htmlindexpages.tpl' %}
{% endwith %}
{# functions #}
{% with list=namespaceMembersIndex.functions section='_func' template='htmlclmembers.tpl' %}
{% include 'htmlindexpages.tpl' %}
{% endwith %}
{# variables #}
{% with list=namespaceMembersIndex.variables section='_vars' template='htmlclmembers.tpl' %}
{% include 'htmlindexpages.tpl' %}
{% endwith %}
{# typedefs #}
{% with list=namespaceMembersIndex.typedefs section='_type' template='htmlclmembers.tpl' %}
{% include 'htmlindexpages.tpl' %}
{% endwith %}
{# enums #}
{% with list=namespaceMembersIndex.enums section='_enum' template='htmlclmembers.tpl' %}
{% include 'htmlindexpages.tpl' %}
{% endwith %}
{# enumValues #}
{% with list=namespaceMembersIndex.enumValues section='_eval' template='htmlclmembers.tpl' %}
{% include 'htmlindexpages.tpl' %}
{% endwith %}
{% endwith %}
{# inputs: list, label, title, local #}
{% if list %}
<table class="memberdecls"><tr class="heading"><td colspan="2">
<h2 class="groupheader"><a name="{{ label }}"></a>{{ title }}</h2></td></tr>
{% for nc in list %}
<tr class="memitem:{{ nc.anchor }}">
<td class="memItemLeft" align="right" valign="top">{% if nc.compoundType %}{{ nc.compoundType }}&#160;{% endif %}</td>
<td class="memItemRight" valign="bottom">
{% if local %}
{% with obj=nc text=nc.bareName %}
{% include 'htmlobjlink.tpl' %}
{% endwith %}
{% else %}
{% with obj=nc text=nc.name %}
{% include 'htmlobjlink.tpl' %}
{% endwith %}
{% endif %}
</td></tr>
{# brief description #}
{% if nc.brief %}
<tr class="memdesc:{{ nc.anchor }}"><td class="mdescLeft">&#160;</td><td class="mdescRight">
{{ nc.brief }}
{% if nc.hasDetails %}
{# TODO: link to group if member is grouped #}
<a href="{{ page.relPath }}{{ nc.fileName }}{{ config.HTML_FILE_EXTENSION}}{% if nc.anchor %}#{{ nc.anchor }}{% endif %}">{{ tr.more }}</a>
{% endif %}
<br/></td></tr>
{% endif %}
<tr class="separator:{{ nc.anchor}}"><td class="memSeparator" colspan="2">&#160;</td></tr>
{% endfor %}
</table>
{% endif %}
{% extend 'htmlbase.tpl' %}
{% msg %}Generating HTML output for directory {{ compound.name }}{% endmsg %}
{% block navpath %}
{% if compound.navigationPath %}
<div id="nav-path" class="navpath">
<ul>
{% for obj in compound.navigationPath %}
<li class="navelem">
{% with text=obj.text %}
{% include 'htmlobjlink.tpl' %}
{% endwith %}
</li>
{% endfor %}
</ul>
</div>
{% endif %}
{% endblock %}
{% block title %}
{# write summary links in the title area #}
<div class="summary">
{% with first=True %}
{% if compound.dirs %}
<a href="#subdirs">{{ tr.directories }}</a>
{% set first=False %}
{% endif %}
{% if compound.files %}
{% if not first %} &#124; {% endif %}
<a href="#files">{{ tr.files }}</a>
{% set first=False %}
{% endif %}
{% endwith %}
</div>
{{ block.super }}
{% endblock %}
{% block content %}
<div class="contents">
{# brief description #}
{% if compound.brief %}
{{ compound.brief }}
{% if compound.hasDetails %}
<a href="#details">{{ tr.more }}</a>
{% endif %}
{% endif %}
{# dir graph #}
{# TODO #}
{# member declarations #}
{# directories #}
{% with list=compound.dirs label='subdirs' title=tr.directories local=False %}
{% include 'htmldeclcomp.tpl' %}
{% endwith %}
{# files #}
{% with list=compound.files, label='files' title=tr.files local=False %}
{% include 'htmldeclcomp.tpl' %}
{% endwith %}
{# end member declarations #}
{# detailed description #}
{% if compound.hasDetails %}
{# anchor #}
<a name="details" id="details"></a>
{# header #}
<h2 class="groupheader">{{ tr.detailedDesc }}</h2>
<div class="textblock">
{# brief #}
{% if compound.brief and config.REPEAT_BRIEF %}
<p>
{{ compound.brief }}
</p>
{% endif %}
{# details #}
{{ compound.details }}
</div>
{% endif %}
</div>
{% endblock %}
{# input tree with maxDepth, preferredDepth, and nodes #}
<div class="directory">
{# level selection #}
{% if tree.maxDepth > 1 %}
<div class="levels">[{{ tr.detailLevel }}
{% range i from 1 to tree.maxDepth %}
<span onclick="javascript:toggleLevel({{ i }});">{{ i }}</span>
{% endrange %}
]</div>
{% endif %}
{# the table with entries #}
<table class="directory">
{% recursetree tree.tree %}
{% indexentry nav name=node.name file=node.fileName anchor=node.anchor %}
{% spaceless %}
<tr id="row_{{ node.id }}" class="{% cycle 'even' 'odd' %}"{%if node.level>tree.preferredDepth %} style="display:none;"{% endif %}>
<td class="entry">
{% if node.is_leaf_node %}
<span style="width:{{ (node.level+1)*16 }}px;display:inline-block;">&#160;</span>
{% else %}
<span style="width:{{ (node.level)*16 }}px;display:inline-block;">&#160;</span>
<span id="arr_{{ node.id }}" class="arrow" onclick="toggleFolder('{{ node.id}}')">
{%if node.level+1<tree.preferredDepth %}&#9660;{% else %}&#9658;{% endif %}
</span>
{% endif %}
{% if node.namespace %}
<span class="icona"><span class="icon">N</span></span>
{% elif node.class %}
<span class="icona"><span class="icon">C</span></span>
{% elif node.dir %}
<span id="img_{{ node.id }}" class="iconf{%if node.level+1<tree.preferredDepth %}open{% else %}closed{% endif %}" onclick="toggleFolder('{{ node.id }}')">&#160;</span>
{% elif node.file %}
<span class="icondoc"></span>
{% endif %}
{% with obj=node text=node.name %}
{% include 'htmlobjlink.tpl' %}
{% endwith %}
</td><td class="desc">{{ node.brief }}</td>
</tr>
{% endspaceless %}
{% opensubindex nav %}
{{ children }}
{% closesubindex nav %}
{% endrecursetree %}
</table>
</div><!-- directory -->
{# input: obj which should have dynSectionId attribute #}
{% if config.HTML_DYNAMIC_SECTIONS %}
<div id="dynsection-{{ obj.dynSectionId }}-summary" class="dynsummary" style="display:block;"></div>
<div class="dyncontent" id="dynsection-{{ obj.dynSectionId }}-content" style="display:none;">
{% else %}
<div class="dyncontent">
{% endif %}
{# input: obj which should have dynSectionId and relPath attributes #}
{% if config.HTML_DYNAMIC_SECTIONS %}
<div id="dynsection-{{ obj.dynSectionId }}" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><img
id="dynsection-{{ obj.dynSectionId }}-trigger" src="{{ obj.relPath }}closed.png" alt="+"/>
{% else %}
<div class="dynheader">
{% endif %}
This diff is collapsed.
{% extend 'htmlbase.tpl' %}
{% block content %}
<div class="contents">
<div class="textblock">
{{ tr.fileListDescription }}
</div>
{% indexentry nav name=tr.fileList file=page.fileName anchor='' %}
{% opensubindex nav %}
{% with tree=fileTree %}
{% include 'htmldirtree.tpl' %}
{% endwith %}
{% closesubindex nav %}
</div><!-- contents -->
{% endblock %}
{# inputs: page, list #}
{% extend 'htmlbase.tpl' %}
{% block tabs %}
{{ block.super }}
{% include 'htmlmembertabs.tpl %}
{% endblock %}
{% block content %}
<div class="contents">
<div class="textblock">
{% if section=='' and letter=='' %}
{{ tr.fileMembersDescription }}
{% endif %}
{% include 'htmlmemberindex.tpl' %}
</div>
</div><!-- contents -->
{% endblock %}
{# input: ii with attributes (file,name,isImport,isLocal), compound with attribute language #}
{% spaceless %}
{% if ii.file or ii.name %}
<tt>
{% if compound.language=='java' or compound.language=='idl' %}
import&#160;
{%else %}
{% if ii.isImport %}
#import&#160;
{% else %}
#include&#160;
{% endif %}
{%endif %}
{% if ii.isLocal %}"{% else %}&lt;{% endif %}
{% if ii.name %}
{% if ii.file %}
<a class="el" href="{{ ii.file.sourceFileName }}{{ config.HTML_FILE_EXTENSION }}">{{ ii.name }}</a>
{% else %}
{{ ii.name }}
{% endif %}
{% else %}
<a class="el" href="{{ ii.file.sourceFileName }}{{ config.HTML_FILE_EXTENSION }}">{{ ii.file.name }}</a>
{% endif %}
{% if ii.isLocal %}"{% else %}&gt;{% endif %}
</tt>
{% endif %}
{% endspaceless %}
{# inputs: list, section #}
{% with letter='' %}
{# create full index page #}
{% create page.fileName|append:section|append:config.HTML_FILE_EXTENSION from template %}
{% endwith %}
{% if list|length>maxItemsForMultiPageList %}
{% opensubindex nav %}
{% with index=list|alphaIndex:'name' %}
{% for sect in index %}
{% with letter=sect.letter %}
{% set page_postfix=section|append:'_'|append:sect.label %}
{% indexentry nav name=letter file=page.fileName|append:page_postfix anchor='' %}
{# create index pages for all globals starting with a specific letter #}
{% create page.fileName|append:page_postfix|append:config.HTML_FILE_EXTENSION from template %}
{% endwith %}
{% endfor %}
{% endwith %}
{% closesubindex nav %}
{% endif %}
{# input idx, entries #}
var NAVTREEINDEX{{ idx }} =
{
{% for entry in entries %}
"{{ entry.file }}{{ config.HTML_FILE_EXTENSION }}{% if entry.anchor %}#{{ entry.anchor }}{% endif %}":[{% for e in entry.path %}{% if not forloop.first %}{{ e.index }}{% if not forloop.last%},{% endif %}{% endif %}{% endfor %}]{% if not forloop.last %},{%endif %}
{% endfor %}
};
var NAVTREE =
[
{% recursetree index.nav %}
[ "{{ node.name }}", {% if node.file %}"{{ node.file }}{{ config.HTML_FILE_EXTENSION }}{% if node.anchor %}#{{ node.anchor }}{% endif %}"{% else %}null{% endif %},{% if not node.is_leaf_node %} [
{{ children }}
]{% else %} null{% endif %} ]{% if not node.last %},{% endif %}
{% endrecursetree %}
];
var NAVTREEINDEX =
[
{% with navlist=index.nav|flatten|listsort:config.HTML_FILE_EXTENSION|prepend:'{{file}}'|append:'#{{anchor}}' navpages=navlist|paginate:250 %}
{% for page in navpages %}
"{{ page.0.file }}{{ config.HTML_FILE_EXTENSION }}{% if page.0.anchor %}#{{ page.0.anchor }}{% endif %}"{% if not forloop.last %},{%endif %}
{% with idx=forloop.counter0 entries=page %}
{% create forloop.counter0|prepend:'navtreeindex'|append:'.js' from 'htmljsnavindex.tpl' %}
{% endwith %}
{% endfor %}
{% endwith %}
];
This diff is collapsed.
{# input: list #}
{% set singleList=(list|length<=maxItemsForFlatList) or (list|length>maxItemsForMultiPageList) %}
{% if singleList %}
<ul>
{% endif %}
{% with index=list|alphaIndex:'name' %}
{% for section in index %}
{% if not singleList or letter=='' or section.letter==letter %}
{% if not singleList %}
<a class="anchor" id="{{ section.label }}"></a><h3>- {{ section.letter }} -</h3>
<ul>
{% endif %}
{% for nameList in section.items|groupBy:'name' %}
{% spaceless %}
{% for item in nameList|listsort:'{{item.file.name}}' %}
{% if forloop.first %}
<li>{{ item.name }}{% if (item.isFunction or item.isSignal or item.isSlot) and not item.isObjCMethod %}(){% endif %}&#160;:&#160;
{% endif %}
{% with obj=item scope=item|get:scope text=scope.name %}
{% include 'htmlobjlink.tpl' %}
{% endwith %}
{% if not forloop.last %},&#160;
{% else %}
</li>
{% endif %}
{% endfor %}
{% endspaceless %}
{% endfor %}
{% if not singleList %}
</ul>
{% endif %}
{% endif %}
{% endfor %}
{% endwith %}
{% if singleList %}
</ul>
{% endif %}
This diff is collapsed.
{# inputs page, list #}
{% if not config.DISABLE_INDEX %}
{# third row of tabs #}
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li {% if section=='' %}class="current"{% endif %}><a href="{{ page.fileName }}{{ config.HTML_FILE_EXTENSION }}">{{ tr.all }}</a></li>
{% if page.functions %}
<li {% if section=='_func' %}class="current"{% endif %}><a href="{{page.fileName}}_func{{ config.HTML_FILE_EXTENSION }}">{{ tr.functions }}</a></li>
{% endif %}
{% if page.variables %}
<li {% if section=='_vars' %}class="current"{% endif %}><a href="{{page.fileName}}_vars{{ config.HTML_FILE_EXTENSION }}">{{ tr.variables }}</a></li>
{% endif %}
{% if page.typedefs %}
<li {% if section=='_type' %}class="current"{% endif %}><a href="{{page.fileName}}_type{{ config.HTML_FILE_EXTENSION }}">{{ tr.typedefs }}</a></li>
{% endif %}
{% if page.enums %}
<li {% if section=='_enum' %}class="current"{% endif %}><a href="{{page.fileName}}_enum{{ config.HTML_FILE_EXTENSION }}">{{ tr.enums }}</a></li>
{% endif %}
{% if page.enumValues %}
<li {% if section=='_eval' %}class="current"{% endif %}><a href="{{page.fileName}}_eval{{ config.HTML_FILE_EXTENSION }}">{{ tr.enumValues }}</a></li>
{% endif %}
{% if page.macros %}
<li {% if section=='_defs' %}class="current"{% endif %}><a href="{{page.fileName}}_defs{{ config.HTML_FILE_EXTENSION }}">{{ tr.macros }}</a></li>
{% endif %}
{% if page.properties %}
<li {% if section=='_prop' %}class="current"{% endif %}><a href="{{page.fileName}}_prop{{ config.HTML_FILE_EXTENSION }}">{{ tr.properties }}</a></li>
{% endif %}
{% if page.events %}
<li {% if section=='_evnt' %}class="current"{% endif %}><a href="{{page.fileName}}_evnt{{ config.HTML_FILE_EXTENSION }}">{{ tr.events }}</a></li>
{% endif %}
{% if page.related %}
<li {% if section=='_rela' %}class="current"{% endif %}><a href="{{page.fileName}}_rela{{ config.HTML_FILE_EXTENSION }}">{{ tr.related }}</a></li>
{% endif %}
</ul>
</div>
{# forth row of tabs #}
{% if list|length>maxItemsForMultiPageList %}
<div id="navrow4" class="tabs3">
<ul class="tablist">
{% with index=list|alphaIndex:'name' %}
{% for sect in index %}
<li {% if sect.letter==letter %}class="current"{% endif %}><a href="{{page.fileName}}{{section}}_{{sect.label}}{{ config.HTML_FILE_EXTENSION }}">{{ sect.letter }}</a></li>
{% endfor %}
{% endwith %}
</ul>
</div>
{% endif %}
{% endif %}
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
{# input: info (with .id .inheritedFrom and .members) #}
<tr class="inherit_header {{ info.id }}">
<td colspan="2" onclick="javascript:toggleInherit('{{ info.id }}')">
<img src="{{ page.relPath }}closed.png" alt="-"/>&#160;
{% markers mark in info.inheritedFrom with tr.inheritedFrom %}
{% if markers.id==0 %} {# the title mark #}
{{ mark }}
{% endif %}
{% if markers.id==1 %} {# the class link mark #}
{% with obj=mark text=mark.name %}
{% include 'htmlobjlink.tpl' %}
{% endwith %}
{% endif %}
{% endmarkers %}
</td></tr>
{% with inheritId=info.id anonymousNestingLevel=0 %}
{% for member in info.members %}
{% include 'htmlmemdecl.tpl' %}
{% endfor %}
{% endwith %}
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment