OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2008, 2009, 2010, 2011 Apple Inc. All rights reserved. | 2 * Copyright (C) 2008, 2009, 2010, 2011 Apple Inc. All rights reserved. |
3 * Copyright (C) 2012 Google Inc. All rights reserved. | 3 * Copyright (C) 2012 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 * | 8 * |
9 * 1. Redistributions of source code must retain the above copyright | 9 * 1. Redistributions of source code must retain the above copyright |
10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
(...skipping 282 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
293 mediaElement().setMuted(!mediaElement().muted()); | 293 mediaElement().setMuted(!mediaElement().muted()); |
294 event->setDefaultHandled(); | 294 event->setDefaultHandled(); |
295 } | 295 } |
296 | 296 |
297 HTMLInputElement::defaultEventHandler(event); | 297 HTMLInputElement::defaultEventHandler(event); |
298 } | 298 } |
299 | 299 |
300 void MediaControlMuteButtonElement::updateDisplayType() | 300 void MediaControlMuteButtonElement::updateDisplayType() |
301 { | 301 { |
302 setDisplayType(mediaElement().muted() ? MediaUnMuteButton : MediaMuteButton)
; | 302 setDisplayType(mediaElement().muted() ? MediaUnMuteButton : MediaMuteButton)
; |
| 303 updateOverflowString(); |
| 304 } |
| 305 |
| 306 WebLocalizedString::Name MediaControlMuteButtonElement::getOverflowStringName() |
| 307 { |
| 308 if (mediaElement().muted()) |
| 309 return WebLocalizedString::OverflowMenuUnmute; |
| 310 return WebLocalizedString::OverflowMenuMute; |
303 } | 311 } |
304 | 312 |
305 // ---------------------------- | 313 // ---------------------------- |
306 | 314 |
307 MediaControlPlayButtonElement::MediaControlPlayButtonElement(MediaControls& medi
aControls) | 315 MediaControlPlayButtonElement::MediaControlPlayButtonElement(MediaControls& medi
aControls) |
308 : MediaControlInputElement(mediaControls, MediaPlayButton) | 316 : MediaControlInputElement(mediaControls, MediaPlayButton) |
309 { | 317 { |
310 } | 318 } |
311 | 319 |
312 MediaControlPlayButtonElement* MediaControlPlayButtonElement::create(MediaContro
ls& mediaControls) | 320 MediaControlPlayButtonElement* MediaControlPlayButtonElement::create(MediaContro
ls& mediaControls) |
(...skipping 22 matching lines...) Expand all Loading... |
335 mediaElement().togglePlayState(); | 343 mediaElement().togglePlayState(); |
336 updateDisplayType(); | 344 updateDisplayType(); |
337 event->setDefaultHandled(); | 345 event->setDefaultHandled(); |
338 } | 346 } |
339 HTMLInputElement::defaultEventHandler(event); | 347 HTMLInputElement::defaultEventHandler(event); |
340 } | 348 } |
341 | 349 |
342 void MediaControlPlayButtonElement::updateDisplayType() | 350 void MediaControlPlayButtonElement::updateDisplayType() |
343 { | 351 { |
344 setDisplayType(mediaElement().paused() ? MediaPlayButton : MediaPauseButton)
; | 352 setDisplayType(mediaElement().paused() ? MediaPlayButton : MediaPauseButton)
; |
| 353 updateOverflowString(); |
| 354 } |
| 355 |
| 356 WebLocalizedString::Name MediaControlPlayButtonElement::getOverflowStringName() |
| 357 { |
| 358 if (mediaElement().paused()) |
| 359 return WebLocalizedString::OverflowMenuPlay; |
| 360 return WebLocalizedString::OverflowMenuPause; |
345 } | 361 } |
346 | 362 |
347 // ---------------------------- | 363 // ---------------------------- |
348 | 364 |
349 MediaControlOverlayPlayButtonElement::MediaControlOverlayPlayButtonElement(Media
Controls& mediaControls) | 365 MediaControlOverlayPlayButtonElement::MediaControlOverlayPlayButtonElement(Media
Controls& mediaControls) |
350 : MediaControlInputElement(mediaControls, MediaOverlayPlayButton) | 366 : MediaControlInputElement(mediaControls, MediaOverlayPlayButton) |
351 { | 367 { |
352 } | 368 } |
353 | 369 |
354 MediaControlOverlayPlayButtonElement* MediaControlOverlayPlayButtonElement::crea
te(MediaControls& mediaControls) | 370 MediaControlOverlayPlayButtonElement* MediaControlOverlayPlayButtonElement::crea
te(MediaControls& mediaControls) |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
400 | 416 |
401 void MediaControlToggleClosedCaptionsButtonElement::updateDisplayType() | 417 void MediaControlToggleClosedCaptionsButtonElement::updateDisplayType() |
402 { | 418 { |
403 bool captionsVisible = mediaElement().textTracksVisible(); | 419 bool captionsVisible = mediaElement().textTracksVisible(); |
404 setDisplayType(captionsVisible ? MediaHideClosedCaptionsButton : MediaShowCl
osedCaptionsButton); | 420 setDisplayType(captionsVisible ? MediaHideClosedCaptionsButton : MediaShowCl
osedCaptionsButton); |
405 } | 421 } |
406 | 422 |
407 void MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler(Event* e
vent) | 423 void MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler(Event* e
vent) |
408 { | 424 { |
409 if (event->type() == EventTypeNames::click) { | 425 if (event->type() == EventTypeNames::click) { |
| 426 // If the user opens up the closed captions menu from the overfow menu, |
| 427 // the overflow menu should no longer be visible. |
| 428 if (mediaControls().overflowMenuVisible()) |
| 429 mediaControls().toggleOverflowMenu(); |
410 mediaControls().toggleTextTrackList(); | 430 mediaControls().toggleTextTrackList(); |
411 updateDisplayType(); | 431 updateDisplayType(); |
412 event->setDefaultHandled(); | 432 event->setDefaultHandled(); |
413 } | 433 } |
414 | 434 |
415 HTMLInputElement::defaultEventHandler(event); | 435 HTMLInputElement::defaultEventHandler(event); |
416 } | 436 } |
417 | 437 |
| 438 WebLocalizedString::Name MediaControlToggleClosedCaptionsButtonElement::getOverf
lowStringName() |
| 439 { |
| 440 return WebLocalizedString::OverflowMenuCaptions; |
| 441 } |
| 442 |
418 // ---------------------------- | 443 // ---------------------------- |
419 | 444 |
420 MediaControlTextTrackListElement::MediaControlTextTrackListElement(MediaControls
& mediaControls) | 445 MediaControlTextTrackListElement::MediaControlTextTrackListElement(MediaControls
& mediaControls) |
421 : MediaControlDivElement(mediaControls, MediaTextTrackList) | 446 : MediaControlDivElement(mediaControls, MediaTextTrackList) |
422 { | 447 { |
423 } | 448 } |
424 | 449 |
425 MediaControlTextTrackListElement* MediaControlTextTrackListElement::create(Media
Controls& mediaControls) | 450 MediaControlTextTrackListElement* MediaControlTextTrackListElement::create(Media
Controls& mediaControls) |
426 { | 451 { |
427 MediaControlTextTrackListElement* element = new MediaControlTextTrackListEle
ment(mediaControls); | 452 MediaControlTextTrackListElement* element = new MediaControlTextTrackListEle
ment(mediaControls); |
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
547 TextTrackList* trackList = mediaElement().textTracks(); | 572 TextTrackList* trackList = mediaElement().textTracks(); |
548 for (unsigned i = 0; i < trackList->length(); i++) { | 573 for (unsigned i = 0; i < trackList->length(); i++) { |
549 TextTrack* track = trackList->anonymousIndexedGetter(i); | 574 TextTrack* track = trackList->anonymousIndexedGetter(i); |
550 if (!track->canBeRendered()) | 575 if (!track->canBeRendered()) |
551 continue; | 576 continue; |
552 appendChild(createTextTrackListItem(track)); | 577 appendChild(createTextTrackListItem(track)); |
553 } | 578 } |
554 } | 579 } |
555 | 580 |
556 // ---------------------------- | 581 // ---------------------------- |
| 582 MediaControlOverflowMenuButtonElement::MediaControlOverflowMenuButtonElement(Med
iaControls& mediaControls) |
| 583 : MediaControlInputElement(mediaControls, MediaOverflowButton) |
| 584 { |
| 585 } |
| 586 |
| 587 MediaControlOverflowMenuButtonElement* MediaControlOverflowMenuButtonElement::cr
eate(MediaControls& mediaControls) |
| 588 { |
| 589 MediaControlOverflowMenuButtonElement* button = new MediaControlOverflowMenu
ButtonElement(mediaControls); |
| 590 button->ensureUserAgentShadowRoot(); |
| 591 button->setType(InputTypeNames::button); |
| 592 button->setShadowPseudoId(AtomicString("-internal-overflow-menu-button")); |
| 593 button->setIsWanted(false); |
| 594 return button; |
| 595 } |
| 596 |
| 597 void MediaControlOverflowMenuButtonElement::defaultEventHandler(Event* event) |
| 598 { |
| 599 if (event->type() == EventTypeNames::click) { |
| 600 mediaControls().toggleOverflowMenu(); |
| 601 event->setDefaultHandled(); |
| 602 } |
| 603 |
| 604 HTMLInputElement::defaultEventHandler(event); |
| 605 } |
| 606 |
| 607 // ---------------------------- |
| 608 MediaControlOverflowMenuListElement::MediaControlOverflowMenuListElement(MediaCo
ntrols& mediaControls) |
| 609 : MediaControlDivElement(mediaControls, MediaOverflowList) |
| 610 { |
| 611 } |
| 612 |
| 613 MediaControlOverflowMenuListElement* MediaControlOverflowMenuListElement::create
(MediaControls& mediaControls) |
| 614 { |
| 615 MediaControlOverflowMenuListElement* element = new MediaControlOverflowMenuL
istElement(mediaControls); |
| 616 element->setIsWanted(false); |
| 617 element->setShadowPseudoId(AtomicString("-internal-media-controls-overflow-m
enu-list")); |
| 618 return element; |
| 619 } |
| 620 |
| 621 void MediaControlOverflowMenuListElement::defaultEventHandler(Event* event) |
| 622 { |
| 623 if (event->type() == EventTypeNames::click) |
| 624 event->setDefaultHandled(); |
| 625 |
| 626 MediaControlDivElement::defaultEventHandler(event); |
| 627 } |
| 628 |
| 629 // ---------------------------- |
557 | 630 |
558 MediaControlTimelineElement::MediaControlTimelineElement(MediaControls& mediaCon
trols) | 631 MediaControlTimelineElement::MediaControlTimelineElement(MediaControls& mediaCon
trols) |
559 : MediaControlInputElement(mediaControls, MediaSlider) | 632 : MediaControlInputElement(mediaControls, MediaSlider) |
560 { | 633 { |
561 } | 634 } |
562 | 635 |
563 MediaControlTimelineElement* MediaControlTimelineElement::create(MediaControls&
mediaControls) | 636 MediaControlTimelineElement* MediaControlTimelineElement::create(MediaControls&
mediaControls) |
564 { | 637 { |
565 MediaControlTimelineElement* timeline = new MediaControlTimelineElement(medi
aControls); | 638 MediaControlTimelineElement* timeline = new MediaControlTimelineElement(medi
aControls); |
566 timeline->ensureUserAgentShadowRoot(); | 639 timeline->ensureUserAgentShadowRoot(); |
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
731 event->setDefaultHandled(); | 804 event->setDefaultHandled(); |
732 } | 805 } |
733 HTMLInputElement::defaultEventHandler(event); | 806 HTMLInputElement::defaultEventHandler(event); |
734 } | 807 } |
735 | 808 |
736 void MediaControlFullscreenButtonElement::setIsFullscreen(bool isFullscreen) | 809 void MediaControlFullscreenButtonElement::setIsFullscreen(bool isFullscreen) |
737 { | 810 { |
738 setDisplayType(isFullscreen ? MediaExitFullscreenButton : MediaEnterFullscre
enButton); | 811 setDisplayType(isFullscreen ? MediaExitFullscreenButton : MediaEnterFullscre
enButton); |
739 } | 812 } |
740 | 813 |
| 814 WebLocalizedString::Name MediaControlFullscreenButtonElement::getOverflowStringN
ame() |
| 815 { |
| 816 if (mediaElement().isFullscreen()) |
| 817 return WebLocalizedString::OverflowMenuExitFullscreen; |
| 818 return WebLocalizedString::OverflowMenuEnterFullscreen; |
| 819 } |
| 820 |
741 // ---------------------------- | 821 // ---------------------------- |
742 | 822 |
743 MediaControlCastButtonElement::MediaControlCastButtonElement(MediaControls& medi
aControls, bool isOverlayButton) | 823 MediaControlCastButtonElement::MediaControlCastButtonElement(MediaControls& medi
aControls, bool isOverlayButton) |
744 : MediaControlInputElement(mediaControls, MediaCastOnButton), m_isOverlayBut
ton(isOverlayButton) | 824 : MediaControlInputElement(mediaControls, MediaCastOnButton), m_isOverlayBut
ton(isOverlayButton) |
745 { | 825 { |
746 if (m_isOverlayButton) | 826 if (m_isOverlayButton) |
747 recordMetrics(CastOverlayMetrics::Created); | 827 recordMetrics(CastOverlayMetrics::Created); |
748 setIsPlayingRemotely(false); | 828 setIsPlayingRemotely(false); |
749 } | 829 } |
750 | 830 |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
792 } else { | 872 } else { |
793 setDisplayType(MediaCastOnButton); | 873 setDisplayType(MediaCastOnButton); |
794 } | 874 } |
795 } else { | 875 } else { |
796 if (m_isOverlayButton) { | 876 if (m_isOverlayButton) { |
797 setDisplayType(MediaOverlayCastOffButton); | 877 setDisplayType(MediaOverlayCastOffButton); |
798 } else { | 878 } else { |
799 setDisplayType(MediaCastOffButton); | 879 setDisplayType(MediaCastOffButton); |
800 } | 880 } |
801 } | 881 } |
| 882 updateOverflowString(); |
| 883 } |
| 884 |
| 885 WebLocalizedString::Name MediaControlCastButtonElement::getOverflowStringName() |
| 886 { |
| 887 if (mediaElement().isPlayingRemotely()) |
| 888 return WebLocalizedString::OverflowMenuStopCast; |
| 889 return WebLocalizedString::OverflowMenuCast; |
802 } | 890 } |
803 | 891 |
804 void MediaControlCastButtonElement::tryShowOverlay() | 892 void MediaControlCastButtonElement::tryShowOverlay() |
805 { | 893 { |
806 DCHECK(m_isOverlayButton); | 894 DCHECK(m_isOverlayButton); |
807 | 895 |
808 setIsWanted(true); | 896 setIsWanted(true); |
809 if (elementFromCenter(*this) != &mediaElement()) { | 897 if (elementFromCenter(*this) != &mediaElement()) { |
810 setIsWanted(false); | 898 setIsWanted(false); |
811 return; | 899 return; |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
852 } | 940 } |
853 | 941 |
854 MediaControlCurrentTimeDisplayElement* MediaControlCurrentTimeDisplayElement::cr
eate(MediaControls& mediaControls) | 942 MediaControlCurrentTimeDisplayElement* MediaControlCurrentTimeDisplayElement::cr
eate(MediaControls& mediaControls) |
855 { | 943 { |
856 MediaControlCurrentTimeDisplayElement* element = new MediaControlCurrentTime
DisplayElement(mediaControls); | 944 MediaControlCurrentTimeDisplayElement* element = new MediaControlCurrentTime
DisplayElement(mediaControls); |
857 element->setShadowPseudoId(AtomicString("-webkit-media-controls-current-time
-display")); | 945 element->setShadowPseudoId(AtomicString("-webkit-media-controls-current-time
-display")); |
858 return element; | 946 return element; |
859 } | 947 } |
860 | 948 |
861 } // namespace blink | 949 } // namespace blink |
OLD | NEW |