SidebarView.js 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. /*
  2. * Copyright (C) 2011 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. * @constructor
  30. * @extends {WebInspector.SplitView}
  31. * @param {string=} sidebarPosition
  32. * @param {string=} sidebarWidthSettingName
  33. * @param {number=} defaultSidebarWidth
  34. * @param {number=} defaultSidebarHeight
  35. */
  36. WebInspector.SidebarView = function(sidebarPosition, sidebarWidthSettingName, defaultSidebarWidth, defaultSidebarHeight)
  37. {
  38. WebInspector.SplitView.call(this, true, sidebarWidthSettingName, defaultSidebarWidth, defaultSidebarHeight);
  39. this.setSidebarElementConstraints(Preferences.minSidebarWidth, Preferences.minSidebarHeight);
  40. this.setMainElementConstraints(0.5, 0.5);
  41. this.setSecondIsSidebar(sidebarPosition === WebInspector.SidebarView.SidebarPosition.End);
  42. }
  43. WebInspector.SidebarView.EventTypes = {
  44. Resized: "Resized"
  45. }
  46. /**
  47. * @enum {string}
  48. */
  49. WebInspector.SidebarView.SidebarPosition = {
  50. Start: "Start",
  51. End: "End"
  52. }
  53. WebInspector.SidebarView.prototype = {
  54. /**
  55. * @param {number} width
  56. */
  57. setSidebarWidth: function(width)
  58. {
  59. this.setSidebarSize(width);
  60. },
  61. /**
  62. * @return {number}
  63. */
  64. sidebarWidth: function()
  65. {
  66. return this.sidebarSize();
  67. },
  68. onResize: function()
  69. {
  70. WebInspector.SplitView.prototype.onResize.call(this);
  71. this.dispatchEventToListeners(WebInspector.SidebarView.EventTypes.Resized, this.sidebarWidth());
  72. },
  73. hideMainElement: function()
  74. {
  75. if (this.isSidebarSecond())
  76. this.showOnlySecond();
  77. else
  78. this.showOnlyFirst();
  79. },
  80. showMainElement: function()
  81. {
  82. this.showBoth();
  83. },
  84. hideSidebarElement: function()
  85. {
  86. if (this.isSidebarSecond())
  87. this.showOnlyFirst();
  88. else
  89. this.showOnlySecond();
  90. },
  91. showSidebarElement: function()
  92. {
  93. this.showBoth();
  94. },
  95. /**
  96. * @return {Array.<Element>}
  97. */
  98. elementsToRestoreScrollPositionsFor: function()
  99. {
  100. return [ this.mainElement, this.sidebarElement ];
  101. },
  102. __proto__: WebInspector.SplitView.prototype
  103. }