Blame templates/html/resize.js

Packit Service 50c9f2
/*
Packit Service 50c9f2
 @licstart  The following is the entire license notice for the
Packit Service 50c9f2
 JavaScript code in this file.
Packit Service 50c9f2
Packit Service 50c9f2
 Copyright (C) 1997-2017 by Dimitri van Heesch
Packit Service 50c9f2
Packit Service 50c9f2
 This program is free software; you can redistribute it and/or modify
Packit Service 50c9f2
 it under the terms of the GNU General Public License as published by
Packit Service 50c9f2
 the Free Software Foundation; either version 2 of the License, or
Packit Service 50c9f2
 (at your option) any later version.
Packit Service 50c9f2
Packit Service 50c9f2
 This program is distributed in the hope that it will be useful,
Packit Service 50c9f2
 but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service 50c9f2
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit Service 50c9f2
 GNU General Public License for more details.
Packit Service 50c9f2
Packit Service 50c9f2
 You should have received a copy of the GNU General Public License along
Packit Service 50c9f2
 with this program; if not, write to the Free Software Foundation, Inc.,
Packit Service 50c9f2
 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Packit Service 50c9f2
Packit Service 50c9f2
 @licend  The above is the entire license notice
Packit Service 50c9f2
 for the JavaScript code in this file
Packit Service 50c9f2
 */
Packit Service 50c9f2
function initResizable()
Packit Service 50c9f2
{
Packit Service 50c9f2
  var cookie_namespace = 'doxygen';
Packit Service 50c9f2
  var sidenav,navtree,content,header,collapsed,collapsedWidth=0,barWidth=6,desktop_vp=768,titleHeight;
Packit Service 50c9f2
Packit Service 50c9f2
  function readCookie(cookie)
Packit Service 50c9f2
  {
Packit Service 50c9f2
    var myCookie = cookie_namespace+"_"+cookie+"=";
Packit Service 50c9f2
    if (document.cookie) {
Packit Service 50c9f2
      var index = document.cookie.indexOf(myCookie);
Packit Service 50c9f2
      if (index != -1) {
Packit Service 50c9f2
        var valStart = index + myCookie.length;
Packit Service 50c9f2
        var valEnd = document.cookie.indexOf(";", valStart);
Packit Service 50c9f2
        if (valEnd == -1) {
Packit Service 50c9f2
          valEnd = document.cookie.length;
Packit Service 50c9f2
        }
Packit Service 50c9f2
        var val = document.cookie.substring(valStart, valEnd);
Packit Service 50c9f2
        return val;
Packit Service 50c9f2
      }
Packit Service 50c9f2
    }
Packit Service 50c9f2
    return 0;
Packit Service 50c9f2
  }
Packit Service 50c9f2
Packit Service 50c9f2
  function writeCookie(cookie, val, expiration)
Packit Service 50c9f2
  {
Packit Service 50c9f2
    if (val==undefined) return;
Packit Service 50c9f2
    if (expiration == null) {
Packit Service 50c9f2
      var date = new Date();
Packit Service 50c9f2
      date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week
Packit Service 50c9f2
      expiration = date.toGMTString();
Packit Service 50c9f2
    }
Packit Service 50c9f2
    document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; expires=" + expiration+"; path=/";
Packit Service 50c9f2
  }
Packit Service 50c9f2
Packit Service 50c9f2
  function resizeWidth()
Packit Service 50c9f2
  {
Packit Service 50c9f2
    var windowWidth = $(window).width() + "px";
Packit Service 50c9f2
    var sidenavWidth = $(sidenav).outerWidth();
Packit Service 50c9f2
    content.css({marginLeft:parseInt(sidenavWidth)+"px"});
Packit Service 50c9f2
    writeCookie('width',sidenavWidth-barWidth, null);
Packit Service 50c9f2
  }
Packit Service 50c9f2
Packit Service 50c9f2
  function restoreWidth(navWidth)
Packit Service 50c9f2
  {
Packit Service 50c9f2
    var windowWidth = $(window).width() + "px";
Packit Service 50c9f2
    content.css({marginLeft:parseInt(navWidth)+barWidth+"px"});
Packit Service 50c9f2
    sidenav.css({width:navWidth + "px"});
Packit Service 50c9f2
  }
Packit Service 50c9f2
Packit Service 50c9f2
  function resizeHeight()
Packit Service 50c9f2
  {
Packit Service 50c9f2
    var headerHeight = header.outerHeight();
Packit Service 50c9f2
    var footerHeight = footer.outerHeight();
Packit Service 50c9f2
    var windowHeight = $(window).height() - headerHeight - footerHeight;
Packit Service 50c9f2
    content.css({height:windowHeight + "px"});
Packit Service 50c9f2
    navtree.css({height:windowHeight + "px"});
Packit Service 50c9f2
    sidenav.css({height:windowHeight + "px"});
Packit Service 50c9f2
    var width=$(window).width();
Packit Service 50c9f2
    if (width!=collapsedWidth) {
Packit Service 50c9f2
      if (width<desktop_vp && collapsedWidth>=desktop_vp) {
Packit Service 50c9f2
        if (!collapsed) {
Packit Service 50c9f2
          collapseExpand();
Packit Service 50c9f2
        }
Packit Service 50c9f2
      } else if (width>desktop_vp && collapsedWidth
Packit Service 50c9f2
        if (collapsed) {
Packit Service 50c9f2
          collapseExpand();
Packit Service 50c9f2
        }
Packit Service 50c9f2
      }
Packit Service 50c9f2
      collapsedWidth=width;
Packit Service 50c9f2
    }
Packit Service 50c9f2
  }
Packit Service 50c9f2
Packit Service 50c9f2
  function collapseExpand()
Packit Service 50c9f2
  {
Packit Service 50c9f2
    if (sidenav.width()>0) {
Packit Service 50c9f2
      restoreWidth(0);
Packit Service 50c9f2
      collapsed=true;
Packit Service 50c9f2
    }
Packit Service 50c9f2
    else {
Packit Service 50c9f2
      var width = readCookie('width');
Packit Service 50c9f2
      if (width>200 && width<$(window).width()) { restoreWidth(width); } else { restoreWidth(200); }
Packit Service 50c9f2
      collapsed=false;
Packit Service 50c9f2
    }
Packit Service 50c9f2
  }
Packit Service 50c9f2
Packit Service 50c9f2
  header  = $("#top");
Packit Service 50c9f2
  sidenav = $("#side-nav");
Packit Service 50c9f2
  content = $("#doc-content");
Packit Service 50c9f2
  navtree = $("#nav-tree");
Packit Service 50c9f2
  footer  = $("#nav-path");
Packit Service 50c9f2
  $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } });
Packit Service 50c9f2
  $(sidenav).resizable({ minWidth: 0 });
Packit Service 50c9f2
  $(window).resize(function() { resizeHeight(); });
Packit Service 50c9f2
  var device = navigator.userAgent.toLowerCase();
Packit Service 50c9f2
  var touch_device = device.match(/(iphone|ipod|ipad|android)/);
Packit Service 50c9f2
  if (touch_device) { /* wider split bar for touch only devices */
Packit Service 50c9f2
    $(sidenav).css({ paddingRight:'20px' });
Packit Service 50c9f2
    $('.ui-resizable-e').css({ width:'20px' });
Packit Service 50c9f2
    $('#nav-sync').css({ right:'34px' });
Packit Service 50c9f2
    barWidth=20;
Packit Service 50c9f2
  }
Packit Service 50c9f2
  var width = readCookie('width');
Packit Service 50c9f2
  if (width) { restoreWidth(width); } else { resizeWidth(); }
Packit Service 50c9f2
  resizeHeight();
Packit Service 50c9f2
  var url = location.href;
Packit Service 50c9f2
  var i=url.indexOf("#");
Packit Service 50c9f2
  if (i>=0) window.location.hash=url.substr(i);
Packit Service 50c9f2
  var _preventDefault = function(evt) { evt.preventDefault(); };
Packit Service 50c9f2
  $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault);
Packit Service 50c9f2
  $(".ui-resizable-handle").dblclick(collapseExpand);
Packit Service 50c9f2
  $(window).load(resizeHeight);
Packit Service 50c9f2
}
Packit Service 50c9f2
/* @license-end */