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

Side by Side Diff: chrome/browser/resources/options/chromeos/display_options.js

Issue 1649173002: Add DisplayLayoutManagerMulti (WIP) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@issue_576375_display3e
Patch Set: Rebase Created 4 years, 10 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 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 cr.exportPath('options'); 5 cr.exportPath('options');
6 6
7 /** 7 /**
8 * Enumeration of multi display mode. These values must match the C++ values in 8 * Enumeration of multi display mode. These values must match the C++ values in
9 * ash::DisplayManager. 9 * ash::DisplayManager.
10 * @enum {number} 10 * @enum {number}
(...skipping 352 matching lines...) Expand 10 before | Expand all | Expand 10 after
363 var secondaryId; 363 var secondaryId;
364 for (var i = 0; i < this.displays_.length; i++) { 364 for (var i = 0; i < this.displays_.length; i++) {
365 if (!this.displays_[i].isPrimary) { 365 if (!this.displays_[i].isPrimary) {
366 secondaryId = this.displays_[i].id; 366 secondaryId = this.displays_[i].id;
367 break; 367 break;
368 } 368 }
369 } 369 }
370 assert(!!secondaryId); 370 assert(!!secondaryId);
371 var displayLayout = 371 var displayLayout =
372 this.displayLayoutManager_.getDisplayLayout(secondaryId); 372 this.displayLayoutManager_.getDisplayLayout(secondaryId);
373 console.log(
374 'setDisplayLayout: ' + displayLayout.layoutType + ' : ' +
375 displayLayout.offset);
373 chrome.send( 376 chrome.send(
374 'setDisplayLayout', 377 'setDisplayLayout',
375 [secondaryId, displayLayout.layoutType, displayLayout.offset]); 378 [secondaryId, displayLayout.layoutType, displayLayout.offset]);
379 // TODO(stevenjb): Remove once we send all layout changes.
380 chrome.send('getDisplayInfo');
376 }, 381 },
377 382
378 /** 383 /**
379 * Processes the actual dragging of display rectangle. 384 * Processes the actual dragging of display rectangle.
380 * @param {Event} e The event which triggers this drag. 385 * @param {Event} e The event which triggers this drag.
381 * @param {options.DisplayPosition} eventLocation The location where the 386 * @param {options.DisplayPosition} eventLocation The location where the
382 * event happens. 387 * event happens.
383 * @private 388 * @private
384 */ 389 */
385 processDragging_: function(e, eventLocation) { 390 processDragging_: function(e, eventLocation) {
(...skipping 267 matching lines...) Expand 10 before | Expand all | Expand 10 after
653 div.style.height = height + 'px'; 658 div.style.height = height + 'px';
654 div.style.zIndex = i; 659 div.style.zIndex = i;
655 // set 'display-mirrored' class for the background display rectangles. 660 // set 'display-mirrored' class for the background display rectangles.
656 if (i != numDisplays - 1) 661 if (i != numDisplays - 1)
657 div.classList.add('display-mirrored'); 662 div.classList.add('display-mirrored');
658 this.displaysView_.appendChild(div); 663 this.displaysView_.appendChild(div);
659 } 664 }
660 }, 665 },
661 666
662 /** 667 /**
663 * Creates a DisplayLayout object representing the display.
664 * @param {!options.DisplayInfo} display
665 * @param {!options.DisplayLayoutType} layoutType
666 * @param {string} parentId
667 * @return {!options.DisplayLayout}
668 * @private
669 */
670 createDisplayLayout_: function(display, layoutType, parentId) {
671 return {
672 bounds: display.bounds,
673 div: null,
674 id: display.id,
675 layoutType: layoutType,
676 name: display.name,
677 offset: 0,
678 originalPosition: {x: 0, y: 0},
679 parentId: parentId
680 };
681 },
682
683 /**
684 * Layouts the display rectangles according to the current layout_. 668 * Layouts the display rectangles according to the current layout_.
685 * @param {options.DisplayLayoutType} layoutType 669 * @param {options.DisplayLayoutType} layoutType
686 * @private 670 * @private
687 */ 671 */
688 layoutDisplays_: function(layoutType) { 672 layoutDisplays_: function(layoutType) {
689 // Create the layout manager. 673 // Create the layout manager.
690 this.displayLayoutManager_ = new options.DisplayLayoutManager(); 674 this.displayLayoutManager_ = new options.DisplayLayoutManagerMulti();
691 675
692 // Create the display layouts. Child displays are parented to the primary. 676 // Create the display layouts. Child displays are parented to the primary.
693 // TODO(stevenjb): DisplayInfo should provide the parent id for displays. 677 // TODO(stevenjb): DisplayInfo should provide the parent id for displays.
694 var primaryDisplayId = ''; 678 var primaryDisplayId = '';
695 for (var i = 0; i < this.displays_.length; i++) { 679 for (var i = 0; i < this.displays_.length; i++) {
696 var display = this.displays_[i]; 680 var display = this.displays_[i];
697 if (display.isPrimary) { 681 if (display.isPrimary) {
698 primaryDisplayId = display.id; 682 primaryDisplayId = display.id;
699 break; 683 break;
700 } 684 }
701 } 685 }
702 for (var i = 0; i < this.displays_.length; i++) { 686 for (var i = 0; i < this.displays_.length; i++) {
703 var display = this.displays_[i]; 687 var display = this.displays_[i];
704 var parentId = display.isPrimary ? '' : primaryDisplayId; 688 var parentId = display.isPrimary ? '' : primaryDisplayId;
705 var layout = this.createDisplayLayout_(display, layoutType, parentId); 689 var layout = this.displayLayoutManager_.createDisplayLayout(
690 display.id, display.name, display.bounds, layoutType, parentId);
706 this.displayLayoutManager_.addDisplayLayout(layout); 691 this.displayLayoutManager_.addDisplayLayout(layout);
707 } 692 }
708 693
709 // Calculate the display area bounds and create the divs for each display. 694 // Calculate the display area bounds and create the divs for each display.
710 this.visualScale_ = this.displayLayoutManager_.createDisplayArea( 695 this.visualScale_ = this.displayLayoutManager_.createDisplayArea(
711 /** @type {!Element} */(this.displaysView_), VISUAL_SCALE); 696 /** @type {!Element} */(this.displaysView_), VISUAL_SCALE);
712 697
713 this.displayLayoutManager_.setFocusedId(this.focusedId_); 698 this.displayLayoutManager_.setFocusedId(this.focusedId_);
714 this.displayLayoutManager_.setDivCallbacks( 699 this.displayLayoutManager_.setDivCallbacks(
715 this.onMouseDown_.bind(this), this.onTouchStart_.bind(this)); 700 this.onMouseDown_.bind(this), this.onTouchStart_.bind(this));
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
777 mode, displays, layoutType, offset) { 762 mode, displays, layoutType, offset) {
778 DisplayOptions.getInstance().onDisplayChanged_( 763 DisplayOptions.getInstance().onDisplayChanged_(
779 mode, displays, layoutType, offset); 764 mode, displays, layoutType, offset);
780 }; 765 };
781 766
782 // Export 767 // Export
783 return { 768 return {
784 DisplayOptions: DisplayOptions 769 DisplayOptions: DisplayOptions
785 }; 770 };
786 }); 771 });
OLDNEW
« no previous file with comments | « chrome/browser/resources/options/chromeos/display_options.css ('k') | chrome/browser/resources/options/options_bundle.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698