FreeCAD

Форк
0
/
doxy-boot.js 
368 строк · 13.7 Кб
1
$( document ).ready(function() {
2

3
    $("div.headertitle").addClass("page-header");
4
    $("div.title").addClass("h1");
5

6
    $('li > a[href="index.html"] > span').before("<i class='fa fa-cog'></i> ");
7
    $('li > a[href="modules.html"] > span').before("<i class='fa fa-square'></i> ");
8
    $('li > a[href="namespaces.html"] > span').before("<i class='fa fa-bars'></i> ");
9
    $('li > a[href="annotated.html"] > span').before("<i class='fa fa-list-ul'></i> ");
10
    $('li > a[href="classes.html"] > span').before("<i class='fa fa-book'></i> ");
11
    $('li > a[href="inherits.html"] > span').before("<i class='fa fa-sitemap'></i> ");
12
    $('li > a[href="functions.html"] > span').before("<i class='fa fa-list'></i> ");
13
    $('li > a[href="functions_func.html"] > span').before("<i class='fa fa-list'></i> ");
14
    $('li > a[href="functions_vars.html"] > span').before("<i class='fa fa-list'></i> ");
15
    $('li > a[href="functions_enum.html"] > span').before("<i class='fa fa-list'></i> ");
16
    $('li > a[href="functions_eval.html"] > span').before("<i class='fa fa-list'></i> ");
17
    $('img[src="ftv2ns.png"]').replaceWith('<span class="label label-danger">N</span> ');
18
    $('img[src="ftv2cl.png"]').replaceWith('<span class="label label-danger">C</span> ');
19

20
    $("ul.tablist").addClass("nav nav-pills nav-justified");
21
    $("ul.tablist").css("margin-top", "0.5em");
22
    $("ul.tablist").css("margin-bottom", "0.5em");
23
    $("li.current").addClass("active");
24
    $("iframe").attr("scrolling", "yes");
25

26
    $("#nav-path > ul").addClass("breadcrumb");
27

28
    $("table.params").addClass("table");
29
    $("div.ingroups").wrapInner("<span class='text-nowrap'></span>");
30
    $("div.levels").css("margin", "0.5em");
31
    $("div.levels > span").addClass("btn btn-default btn-xs");
32
    $("div.levels > span").css("margin-right", "0.25em");
33

34
    $("table.directory").addClass("table table-striped");
35
    $("div.summary > a").addClass("btn btn-default btn-xs");
36
    $("table.fieldtable").addClass("table");
37
    $(".fragment").addClass("well");
38
    $(".memitem").addClass("panel panel-default");
39
    $(".memproto").addClass("panel-heading");
40
    $(".memdoc").addClass("panel-body");
41
    $("span.mlabel").addClass("label label-info");
42

43
    $("table.memberdecls").addClass("table");
44
    $("[class^=memitem]").addClass("active");
45

46
    $("div.ah").addClass("btn btn-default");
47
    $("span.mlabels").addClass("pull-right");
48
    $("table.mlabels").css("width", "100%")
49
    $("td.mlabels-right").addClass("pull-right");
50

51
    $("div.ttc").addClass("panel panel-primary");
52
    $("div.ttname").addClass("panel-heading");
53
    $("div.ttname a").css("color", 'white');
54
    $("div.ttdef,div.ttdoc,div.ttdeci").addClass("panel-body");
55

56
    $('div.fragment.well div.line:first').css('margin-top', '2px');
57
    $('div.fragment.well div.line:last').css('margin-bottom', '2px');
58

59
	$('table.doxtable').removeClass('doxtable').addClass('table table-striped table-bordered').each(function(){
60
		$(this).prepend('<thead></thead>');
61
		$(this).find('tbody > tr:first').prependTo($(this).find('thead'));
62

63
		$(this).find('td > span.success').parent().addClass('success');
64
		$(this).find('td > span.warning').parent().addClass('warning');
65
		$(this).find('td > span.danger').parent().addClass('danger');
66
	});
67

68
    // source code github links
69
    $('li:contains("FreeCAD/src/")').each(function(){
70
        var lk = '<a href="https://github.com/FreeCAD/FreeCAD/blob/master' + $(this).html().substr(7) + '">';
71
        lk += $(this).html();
72
        lk += '</a>';
73
        $(this).html(lk);
74
    });
75

76
    $(".memdoc pre.fragment").contents().unwrap();
77

78
    if($('div.fragment.well div.ttc').length > 0)
79
    {
80
        $('div.fragment.well div.line:first').parent().removeClass('fragment well');
81
    }
82

83
    $('table.memberdecls').find('.memItemRight').each(function(){
84
        $(this).contents().appendTo($(this).siblings('.memItemLeft'));
85
        $(this).siblings('.memItemLeft').attr('align', 'left');
86
    });
87

88
    $('table.memberdecls').find('.memTemplItemRight').each(function(){
89
        $(this).contents().appendTo($(this).siblings('.memTemplItemLeft'));
90
        $(this).siblings('.memTemplItemLeft').attr('align', 'left');
91
    });
92

93
	function getOriginalWidthOfImg(img_element) {
94
		var t = new Image();
95
		t.src = (img_element.getAttribute ? img_element.getAttribute("src") : false) || img_element.src;
96
		return t.width;
97
	}
98

99
	$('div.dyncontent').find('img').each(function(){
100
		if(getOriginalWidthOfImg($(this)[0]) > $('#content>div.container').width())
101
			$(this).css('width', '100%');
102
	});
103

104

105
  /* responsive search box */
106
  $('#MSearchBox').parent().remove();
107

108
  var nav_container = $('<div class="row"></div>');
109
  $('#navrow1').parent().prepend(nav_container);
110

111
  var left_nav = $('<div class="col-md-9"></div>');
112
  for (i = 0; i < 6; i++) {
113
    var navrow = $('#navrow' + i + ' > ul.tablist').detach();
114
    left_nav.append(navrow);
115
    $('#navrow' + i).remove();
116
  }
117
  var right_nav = $('<div class="col-md-3"></div>').append('\
118
    <div id="search-box" class="input-group">\
119
      <div class="input-group-btn">\
120
        <button aria-expanded="false" type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">\
121
          <span class="glyphicon glyphicon-search"></span> <span class="caret"></span>\
122
        </button>\
123
        <ul class="dropdown-menu">\
124
        </ul>\
125
      </div>\
126
      <button id="search-close" type="button" class="close" aria-label="Close"><span aria-hidden="true">&times;</span></button>\
127
      <input id="search-field" class="form-control" accesskey="S" onkeydown="searchBox.OnSearchFieldChange(event);" placeholder="Search ..." type="text">\
128
    </div>');
129
  $(nav_container).append(left_nav);
130
  $(nav_container).append(right_nav);
131

132
  $('#MSearchSelectWindow .SelectionMark').remove();
133
  var search_selectors = $('#MSearchSelectWindow .SelectItem');
134
  for (var i = 0; i < search_selectors.length; i += 1) {
135
    var element_a = $('<a href="#"></a>').text($(search_selectors[i]).text());
136

137
    element_a.click(function(){
138
      $('#search-box .dropdown-menu li').removeClass('active');
139
      $(this).parent().addClass('active');
140
      searchBox.OnSelectItem($('#search-box li a').index(this));
141
      searchBox.Search();
142
      return false;
143
    });
144

145
    var element = $('<li></li>').append(element_a);
146
    $('#search-box .dropdown-menu').append(element);
147
  }
148
  $('#MSearchSelectWindow').remove();
149

150
  $('#search-box .close').click(function (){
151
    searchBox.CloseResultsWindow();
152
  });
153

154
  $('wrapper').append('<div id="MSearchClose"></div>');
155
  $('wrapper').append('<div id="MSearchBox"></div>');
156
  $('wrapper').append('<div id="MSearchSelectWindow"></div>');
157

158
  searchBox.searchLabel = '';
159
  searchBox.DOMSearchField = function() {
160
    return document.getElementById("search-field");
161
  }
162
  searchBox.DOMSearchClose = function(){
163
    return document.getElementById("search-close");
164
  }
165

166
  /* search results */
167
  var results_iframe = $('#MSearchResults').detach();
168
  $('#MSearchResultsWindow')
169
    .attr('id', 'search-results-window')
170
    .addClass('panel panel-default')
171
    .append(
172
      '<div class="panel-heading">\
173
        <h3 class="panel-title">Search Results</h3>\
174
      </div>\
175
      <div class="panel-body"></div>'
176
    );
177
  $('#search-results-window .panel-body').append(results_iframe);
178

179
  searchBox.DOMPopupSearchResultsWindow = function() {
180
    return document.getElementById("search-results-window");
181
  }
182

183
  function update_search_results_window() {
184
    $('#search-results-window').removeClass('panel-default panel-success panel-warning panel-danger')
185
    var status = $('#MSearchResults').contents().find('.SRStatus:visible');
186
    if (status.length > 0) {
187
      switch(status.attr('id')) {
188
        case 'Loading':
189
        case 'Searching':
190
          $('#search-results-window').addClass('panel-warning');
191
          break;
192
        case 'NoMatches':
193
          $('#search-results-window').addClass('panel-danger');
194
          break;
195
        default:
196
          $('#search-results-window').addClass('panel-default');
197
      }
198
    } else {
199
      $('#search-results-window').addClass('panel-success');
200
    }
201
  }
202
  $('#MSearchResults').load(function() {
203
    $('#MSearchResults').contents().find('link[href="search.css"]').attr('href','../doxygen.css');
204
    $('#MSearchResults').contents().find('head').append(
205
      '<link href="../customdoxygen.css" rel="stylesheet" type="text/css">');
206

207
    update_search_results_window();
208

209
    // detect status changes (only for search with external search backend)
210
    var observer = new MutationObserver(function(mutations) {
211
      update_search_results_window();
212
    });
213
    var config = { attributes: true};
214

215
    var targets = $('#MSearchResults').contents().find('.SRStatus');
216
    for (i = 0; i < targets.length; i++) {
217
      observer.observe(targets[i], config);
218
    }
219
  });
220

221

222
  /* enumerations */
223
  $('table.fieldtable').removeClass('fieldtable').addClass('table table-striped table-bordered').each(function(){
224
    $(this).prepend('<thead></thead>');
225
    $(this).find('tbody > tr:first').prependTo($(this).find('thead'));
226

227
    $(this).find('td > span.success').parent().addClass('success');
228
    $(this).find('td > span.warning').parent().addClass('warning');
229
    $(this).find('td > span.danger').parent().addClass('danger');
230
  });
231

232
  /* todo list */
233
  var todoelements = $('.contents > .textblock > dl.reflist > dt, .contents > .textblock > dl.reflist > dd');
234
  for (var i = 0; i < todoelements.length; i += 2) {
235
    $('.contents > .textblock').append(
236
      '<div class="panel panel-default active">'
237
        + "<div class=\"panel-heading todoname\">" + $(todoelements[i]).html() + "</div>"
238
        + "<div class=\"panel-body\">" + $(todoelements[i+1]).html() + "</div>"
239
      + '</div>');
240
  }
241
  $('.contents > .textblock > dl').remove();
242

243

244
	$(".memitem").removeClass('memitem');
245
    $(".memproto").removeClass('memproto');
246
    $(".memdoc").removeClass('memdoc');
247
	$("span.mlabel").removeClass('mlabel');
248
	$("table.memberdecls").removeClass('memberdecls');
249
    $("[class^=memitem]").removeClass('memitem');
250
    $("span.mlabels").removeClass('mlabels');
251
    $("table.mlabels").removeClass('mlabels');
252
    $("td.mlabels-right").removeClass('mlabels-right');
253
	$(".navpath").removeClass('navpath');
254
	$("li.navelem").removeClass('navelem');
255
	$("a.el").removeClass('el');
256
	$("div.ah").removeClass('ah');
257
	$("div.header").removeClass("header");
258

259
	$('.mdescLeft').each(function(){
260
		if($(this).html()=="&nbsp;") {
261
			$(this).siblings('.mdescRight').attr('colspan', 2);
262
			$(this).remove();
263
		}
264
	});
265
  $('td.memItemLeft').each(function(){
266
    if($(this).siblings('.memItemRight').html()=="") {
267
      $(this).attr('colspan', 2);
268
      $(this).siblings('.memItemRight').remove();
269
    }
270
  });
271
	$('td.memTemplItemLeft').each(function(){
272
		if($(this).siblings('.memTemplItemRight').html()=="") {
273
			$(this).attr('colspan', 2);
274
			$(this).siblings('.memTemplItemRight').remove();
275
		}
276
	});
277
  searchBox.CloseResultsWindow();
278
});
279

280
// contents of dynsections.js which seems to be missing from std doxygen js files...
281
function toggleVisibility(linkObj)
282
{
283
 var base = $(linkObj).attr('id');
284
 var summary = $('#'+base+'-summary');
285
 var content = $('#'+base+'-content');
286
 var trigger = $('#'+base+'-trigger');
287
 var src=$(trigger).attr('src');
288
 if (content.is(':visible')===true) {
289
   content.hide();
290
   summary.show();
291
   $(linkObj).addClass('closed').removeClass('opened');
292
   $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
293
 } else {
294
   content.show();
295
   summary.hide();
296
   $(linkObj).removeClass('closed').addClass('opened');
297
   $(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
298
 }
299
 return false;
300
}
301
function updateStripes()
302
{
303
  $('table.directory tr').
304
       removeClass('even').filter(':visible:even').addClass('even');
305
}
306
function toggleLevel(level)
307
{
308
  $('table.directory tr').each(function(){
309
    var l = this.id.split('_').length-1;
310
    var i = $('#img'+this.id.substring(3));
311
    var a = $('#arr'+this.id.substring(3));
312
    if (l<level+1) {
313
      i.attr('src','ftv2folderopen.png');
314
      a.attr('src','ftv2mnode.png');
315
      $(this).show();
316
    } else if (l==level+1) {
317
      i.attr('src','ftv2folderclosed.png');
318
      a.attr('src','ftv2pnode.png');
319
      $(this).show();
320
    } else {
321
      $(this).hide();
322
    }
323
  });
324
  updateStripes();
325
}
326
function toggleFolder(id)
327
{
328
  //The clicked row
329
  var currentRow = $('#row_'+id);
330
  var currentRowImages = currentRow.find("img");
331
  //All rows after the clicked row
332
  var rows = currentRow.nextAll("tr");
333
  //Only match elements AFTER this one (can't hide elements before)
334
  var childRows = rows.filter(function() {
335
    var re = new RegExp('^row_'+id+'\\d+_$', "i"); //only one sub
336
    return this.id.match(re);
337
  });
338
  //First row is visible we are HIDING
339
  if (childRows.filter(':first').is(':visible')===true) {
340
    currentRowImages.filter("[id^=arr]").attr('src', 'ftv2pnode.png');
341
    currentRowImages.filter("[id^=img]").attr('src', 'ftv2folderclosed.png');
342
    rows.filter("[id^=row_"+id+"]").hide();
343
  } else { //We are SHOWING
344
    //All sub images
345
    var childImages = childRows.find("img");
346
    var childImg = childImages.filter("[id^=img]");
347
    var childArr = childImages.filter("[id^=arr]");
348
    currentRow.find("[id^=arr]").attr('src', 'ftv2mnode.png'); //open row
349
    currentRow.find("[id^=img]").attr('src', 'ftv2folderopen.png'); //open row
350
    childImg.attr('src','ftv2folderclosed.png'); //children closed
351
    childArr.attr('src','ftv2pnode.png'); //children closed
352
    childRows.show(); //show all children
353
  }
354
  updateStripes();
355
}
356
function toggleInherit(id)
357
{
358
  var rows = $('tr.inherit.'+id);
359
  var img = $('tr.inherit_header.'+id+' img');
360
  var src = $(img).attr('src');
361
  if (rows.filter(':first').is(':visible')===true) {
362
    rows.css('display','none');
363
    $(img).attr('src',src.substring(0,src.length-8)+'closed.png');
364
  } else {
365
    rows.css('display','table-row'); // using show() causes jump in firefox
366
    $(img).attr('src',src.substring(0,src.length-10)+'open.png');
367
  }
368
}
369

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.