Home | History | Annotate | Download | only in ui
      1 /*
      2  * Copyright (C) 2014 Google Inc. All rights reserved.
      3  *
      4  * Redistribution and use in source and binary forms, with or without
      5  * modification, are permitted provided that the following conditions are
      6  * met:
      7  *
      8  * 1. Redistributions of source code must retain the above copyright
      9  * notice, this list of conditions and the following disclaimer.
     10  *
     11  * 2. Redistributions in binary form must reproduce the above
     12  * copyright notice, this list of conditions and the following disclaimer
     13  * in the documentation and/or other materials provided with the
     14  * distribution.
     15  *
     16  * THIS SOFTWARE IS PROVIDED BY GOOGLE INC. AND ITS CONTRIBUTORS
     17  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     18  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
     19  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GOOGLE INC.
     20  * OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
     21  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
     22  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     23  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     24  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     25  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     26  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     27  */
     28 
     29 /**
     30  * @constructor
     31  * @extends {WebInspector.VBox}
     32  * @param {boolean} isVertical
     33  */
     34 WebInspector.StackView = function(isVertical)
     35 {
     36     WebInspector.VBox.call(this);
     37     this._isVertical = isVertical;
     38     this._currentSplitView = null;
     39 }
     40 
     41 WebInspector.StackView.prototype = {
     42     /**
     43      * @param {!WebInspector.View} view
     44      * @param {string=} sidebarSizeSettingName
     45      * @param {number=} defaultSidebarWidth
     46      * @param {number=} defaultSidebarHeight
     47      * @return {!WebInspector.SplitView}
     48      */
     49     appendView: function(view, sidebarSizeSettingName, defaultSidebarWidth, defaultSidebarHeight)
     50     {
     51         var splitView = new WebInspector.SplitView(this._isVertical, true, sidebarSizeSettingName, defaultSidebarWidth, defaultSidebarHeight);
     52         view.show(splitView.mainElement());
     53         splitView.hideSidebar();
     54 
     55         if (!this._currentSplitView) {
     56             splitView.show(this.element);
     57         } else {
     58             splitView.show(this._currentSplitView.sidebarElement());
     59             this._currentSplitView.showBoth();
     60         }
     61 
     62         this._currentSplitView = splitView;
     63         return splitView;
     64     },
     65 
     66     detachChildViews: function()
     67     {
     68         WebInspector.View.prototype.detachChildViews.call(this);
     69         this._currentSplitView = null;
     70     },
     71 
     72     __proto__: WebInspector.VBox.prototype
     73 }
     74