Blame templates/html/resize.js

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