7
|
1 [%
|
|
2 labels(
|
|
3 CollectionTitle = "Home (%name%)"
|
|
4 );
|
11
|
5 document.dojo.enable = 1;
|
12
|
6 document.class.push('library');
|
7
|
7 document.css.push(css.library);
|
|
8
|
|
9 CollectionClass = 'Benzin::Doxygen::Model::Collection';
|
|
10 CompoundClass = 'Benzin::Doxygen::Model::Compound';
|
|
11 MemberClass = 'Benzin::Doxygen::Model::Member';
|
|
12
|
|
13 Icons = {
|
|
14 namespace = 'NS',
|
|
15 class = 'C',
|
|
16 variable = 'Var',
|
|
17 function = 'F',
|
|
18 property = 'P',
|
|
19 interface = 'I',
|
|
20 struct = 'S',
|
|
21 enum = 'E',
|
|
22 event = 'Ev'
|
|
23 };
|
|
24
|
|
25 NullIcon = ' ';
|
|
26
|
|
27 coll = resource.Seek('doxygenCollection');
|
|
28
|
|
29 compounds = coll.location.compounds;
|
|
30 members = resource.Seek('compound').location || coll.location.members;
|
|
31
|
|
32 document.title = model.canonicalName;
|
|
33
|
|
34 MACRO GetLocationFor(model) BLOCK;
|
|
35 members.Child(model.doxId) IF model.isa(MemberClass);
|
|
36 compounds.Child(model.doxId) IF model.isa(CompoundClass);
|
|
37 END;
|
|
38 %]
|
|
39 [% MACRO IconKind(model) BLOCK %]<span class="icon">[% Icons.item(model.kind) || NullIcon %]</span>[% END %]
|
12
|
40 [% MACRO Link(model,label,title) BLOCK %]<a class="$model.kind $model.protection" [% IF title %]title="$title" [% END %]href="[% GetLocationFor(model) %]">[% IconKind(model) %] [% label | html %]</a>[% END %]
|
7
|
41 [% MACRO CompoundSiblings(model) BLOCK %]
|
|
42 [% compound = model.isa(MemberClass) ? model.compound : model %]
|
|
43 <ul class="members">
|
|
44 [% FOREACH item IN compound.GetSiblings({ kind = { '-not_in' = [ 'file', 'dir' ] } }) %]
|
|
45 <li [% IF item.doxId == compound.doxId %]class="active"[% END %]>[% Link(item,item.shortName, item.canonicalName) %]</li>
|
|
46 [% END %]
|
|
47 </ul>
|
|
48 [% END %]
|
|
49 [% MACRO Members(model) BLOCK %]
|
|
50 [% compound = model.isa(MemberClass) ? model.compound : model %]
|
|
51 <ul class="members">
|
|
52 [% FOREACH item IN compound.GetMembers({ kind = { '-not_in' = [ 'file', 'dir' ] } }) %]
|
|
53 <li [% IF item.doxId == model.doxId %]class="active"[% END %]>[% Link(item,item.shortName, item.canonicalName) %]</li>
|
|
54 [% END %]
|
|
55 </ul>
|
|
56 [% END %]
|
11
|
57 [% BLOCK LAYOUT;
|
|
58 render('base', content = content);
|
|
59 END %]
|
|
60 [% WRAPPER LAYOUT %]
|
12
|
61 <div id="content-expando" style="float: right; height: 10px; width: 0px;overflow: hidden;"> </div>
|
7
|
62 <div class="library-pane">
|
|
63
|
|
64 <div id="toc-nav" class="nav-pane left">
|
|
65 [% IF model.isa(CollectionClass) %]
|
|
66
|
|
67 <ul class="dox-nav-menu">
|
|
68 <li class="last"><a href="$coll.location" title="$coll.model.description">[% CollectionTitle( name = coll.model.name) %]</a></li>
|
|
69 [% Members(model) %]
|
|
70 </ul>
|
|
71 [% ELSE %]
|
|
72 [%
|
|
73 parents = model.GetParents({ kind = { '-not_in' = [ 'file', 'dir' ] } });
|
|
74 parents.push(model) IF model.isa(CompoundClass);
|
|
75 %]
|
|
76 <ul class="dox-nav-menu">
|
|
77 <li [% IF !parents.size %]class="last"[% END %]><a href="$coll.location" title="$coll.model.description">[% CollectionTitle( name = coll.model.name) %]</a></li>
|
|
78 [% FOREACH parent IN parents %]
|
12
|
79 <li [% IF loop.last %]class="last"[% END %]>
|
|
80 [% Link(parent, parent.shortName, parent.canonicalName) %]
|
|
81 </li>
|
7
|
82 [% END %]
|
|
83 </ul>
|
12
|
84 [%- Members(model) %]
|
7
|
85 [% END %]
|
|
86 </div>
|
|
87 <div id="siblings-nav" class="nav-pane right">
|
|
88 [% CompoundSiblings(model) %]
|
|
89 </div>
|
|
90 <div id="content-pane" class="content-pane">
|
|
91 $content
|
12
|
92 <div style="clear:both;"></div>
|
7
|
93 </div>
|
12
|
94
|
7
|
95 <script type="text/javascript">
|
12
|
96 require(['implab/sticky','dojo/on', 'dojo/dom-geometry', 'dojo/dom-style'],function(sticky,on,g,css) {
|
|
97 sticky('toc-nav',{ along: 'content-pane', alongContent: true });
|
|
98 sticky('siblings-nav', { along: 'content-pane', stick: 'right', alongContent: true });
|
|
99
|
|
100 var sfn = function() {
|
|
101 var h = window.innerHeight;
|
|
102
|
|
103 var header = g.position('header');
|
|
104
|
|
105 var expand = h - header.h - 10; // windowHeight - headerHeight - contentBottomPadding
|
|
106
|
|
107 if (expand < 0)
|
|
108 expand = 0;
|
|
109
|
|
110 css.set('content-expando', 'height', expand + 'px');
|
|
111 };
|
|
112 sfn();
|
|
113 on(window,'resize',sfn);
|
7
|
114 });
|
|
115 </script>
|
8
|
116 </div>
|
11
|
117 [% END %] |