Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(96)

Side by Side Diff: Source/devtools/front_end/View.js

Issue 214663005: [DevTools] Add preferred size to WebInspector.View. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: saved main size Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2008 Apple Inc. All Rights Reserved. 2 * Copyright (C) 2008 Apple Inc. All Rights Reserved.
3 * Copyright (C) 2011 Google Inc. All Rights Reserved. 3 * Copyright (C) 2011 Google Inc. All Rights Reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
7 * are met: 7 * are met:
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 509 matching lines...) Expand 10 before | Expand all | Expand 10 after
520 if (typeof this._minimumSize !== "undefined") 520 if (typeof this._minimumSize !== "undefined")
521 return this._minimumSize; 521 return this._minimumSize;
522 if (typeof this._cachedMinimumSize === "undefined") 522 if (typeof this._cachedMinimumSize === "undefined")
523 this._cachedMinimumSize = this.calculateMinimumSize(); 523 this._cachedMinimumSize = this.calculateMinimumSize();
524 return this._cachedMinimumSize; 524 return this._cachedMinimumSize;
525 }, 525 },
526 526
527 /** 527 /**
528 * @param {number} width 528 * @param {number} width
529 * @param {number} height 529 * @param {number} height
530 * @param {number=} preferredWidth
531 * @param {number=} preferredHeight
530 */ 532 */
531 setMinimumSize: function(width, height) 533 setMinimumSize: function(width, height, preferredWidth, preferredHeight)
532 { 534 {
533 this._minimumSize = new Size(width, height); 535 this._minimumSize = new Size(width, height, preferredWidth, preferredHei ght);
534 this.invalidateMinimumSize(); 536 this.invalidateMinimumSize();
535 }, 537 },
536 538
537 /** 539 /**
538 * @return {boolean} 540 * @return {boolean}
539 */ 541 */
540 _hasNonZeroMinimumSize: function() 542 _hasNonZeroMinimumSize: function()
541 { 543 {
542 var size = this.minimumSize(); 544 var size = this.minimumSize();
543 return size.width || size.height; 545 return !!(size.width || size.height || size.preferredWidth || size.prefe rredHeight);
544 }, 546 },
545 547
546 invalidateMinimumSize: function() 548 invalidateMinimumSize: function()
547 { 549 {
548 var cached = this._cachedMinimumSize; 550 var cached = this._cachedMinimumSize;
549 delete this._cachedMinimumSize; 551 delete this._cachedMinimumSize;
550 var actual = this.minimumSize(); 552 var actual = this.minimumSize();
551 if (!actual.isEqual(cached) && this._parentView) 553 if (!actual.isEqual(cached) && this._parentView)
552 this._parentView.invalidateMinimumSize(); 554 this._parentView.invalidateMinimumSize();
553 else 555 else
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
603 WebInspector.View.call(this); 605 WebInspector.View.call(this);
604 this.element.classList.add("vbox"); 606 this.element.classList.add("vbox");
605 }; 607 };
606 608
607 WebInspector.VBox.prototype = { 609 WebInspector.VBox.prototype = {
608 /** 610 /**
609 * @return {!Size} 611 * @return {!Size}
610 */ 612 */
611 calculateMinimumSize: function() 613 calculateMinimumSize: function()
612 { 614 {
613 var width = 0; 615 var size = new Size(0, 0);
614 var height = 0;
615 616
616 /** 617 /**
617 * @this {!WebInspector.View} 618 * @this {!WebInspector.View}
618 * @suppressReceiverCheck 619 * @suppressReceiverCheck
619 */ 620 */
620 function updateForChild() 621 function updateForChild()
621 { 622 {
622 var size = this.minimumSize(); 623 var childSize = this.minimumSize();
623 width = Math.max(width, size.width); 624 size = size.widthToMax(childSize);
624 height += size.height; 625 size = size.addHeight(childSize);
625 } 626 }
626 627
627 this._callOnVisibleChildren(updateForChild); 628 this._callOnVisibleChildren(updateForChild);
628 return new Size(width, height); 629 return size;
629 }, 630 },
630 631
631 __proto__: WebInspector.View.prototype 632 __proto__: WebInspector.View.prototype
632 }; 633 };
633 634
634 /** 635 /**
635 * @constructor 636 * @constructor
636 * @extends {WebInspector.View} 637 * @extends {WebInspector.View}
637 */ 638 */
638 WebInspector.HBox = function() 639 WebInspector.HBox = function()
639 { 640 {
640 WebInspector.View.call(this); 641 WebInspector.View.call(this);
641 this.element.classList.add("hbox"); 642 this.element.classList.add("hbox");
642 }; 643 };
643 644
644 WebInspector.HBox.prototype = { 645 WebInspector.HBox.prototype = {
645 /** 646 /**
646 * @return {!Size} 647 * @return {!Size}
647 */ 648 */
648 calculateMinimumSize: function() 649 calculateMinimumSize: function()
649 { 650 {
650 var width = 0; 651 var size = new Size(0, 0);
651 var height = 0;
652 652
653 /** 653 /**
654 * @this {!WebInspector.View} 654 * @this {!WebInspector.View}
655 * @suppressReceiverCheck 655 * @suppressReceiverCheck
656 */ 656 */
657 function updateForChild() 657 function updateForChild()
658 { 658 {
659 var size = this.minimumSize(); 659 var childSize = this.minimumSize();
660 width += size.width; 660 size = size.addWidth(childSize);
661 height = Math.max(height, size.height); 661 size = size.heightToMax(childSize);
662 } 662 }
663 663
664 this._callOnVisibleChildren(updateForChild); 664 this._callOnVisibleChildren(updateForChild);
665 return new Size(width, height); 665 return size;
666 }, 666 },
667 667
668 __proto__: WebInspector.View.prototype 668 __proto__: WebInspector.View.prototype
669 }; 669 };
670 670
671 /** 671 /**
672 * @constructor 672 * @constructor
673 * @extends {WebInspector.VBox} 673 * @extends {WebInspector.VBox}
674 * @param {function()} resizeCallback 674 * @param {function()} resizeCallback
675 */ 675 */
(...skipping 29 matching lines...) Expand all
705 { 705 {
706 WebInspector.View._assert(!child.__viewCounter && !child.__view, "Attempt to remove element containing view via regular DOM operation"); 706 WebInspector.View._assert(!child.__viewCounter && !child.__view, "Attempt to remove element containing view via regular DOM operation");
707 return WebInspector.View._originalRemoveChild.call(this, child); 707 return WebInspector.View._originalRemoveChild.call(this, child);
708 } 708 }
709 709
710 Element.prototype.removeChildren = function() 710 Element.prototype.removeChildren = function()
711 { 711 {
712 WebInspector.View._assert(!this.__viewCounter, "Attempt to remove element co ntaining view via regular DOM operation"); 712 WebInspector.View._assert(!this.__viewCounter, "Attempt to remove element co ntaining view via regular DOM operation");
713 WebInspector.View._originalRemoveChildren.call(this); 713 WebInspector.View._originalRemoveChildren.call(this);
714 } 714 }
OLDNEW
« Source/devtools/front_end/SplitView.js ('K') | « Source/devtools/front_end/TabbedPane.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698