MCPcopy Create free account
hub / github.com/axmolengine/axmol / createControls

Method createControls

core/ui/UIMediaPlayer.cpp:642–825  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

640}
641
642void BasicMediaController::createControls()
643{
644 createMediaControlTexture();
645
646 // Check if controls are already created
647 if (_controlsReady)
648 {
649 return;
650 }
651
652 const auto& contentSize = getContentSize();
653 auto scale = Director::getInstance()->getRenderView()->getScaleY();
654
655 _mediaOverlay = Layout::create();
656 _mediaOverlay->setBackGroundColor(Color3B::BLACK);
657 _mediaOverlay->setBackGroundColorType(Layout::BackGroundColorType::SOLID);
658 _mediaOverlay->setAnchorPoint(Vec2::ANCHOR_MIDDLE);
659 _mediaOverlay->setPositionNormalized(Vec2(0.5f, 0.5f));
660 _mediaOverlay->setContentSize(contentSize);
661 _mediaOverlay->setOpacity(0);
662 addProtectedChild(_mediaOverlay, 1);
663
664 _controlPanel = Widget::create();
665 _controlPanel->setContentSize(contentSize);
666 _controlPanel->setPositionNormalized(Vec2(0.5f, 0.5f));
667 _controlPanel->setAnchorPoint(Vec2::ANCHOR_MIDDLE);
668 _controlPanel->setCascadeOpacityEnabled(true);
669 _controlPanel->setOpacity(0);
670 addProtectedChild(_controlPanel, 10);
671
672 _primaryButtonPanel = Widget::create();
673 _primaryButtonPanel->setContentSize(Vec2(150, 60));
674 _primaryButtonPanel->setAnchorPoint(Vec2::ANCHOR_MIDDLE);
675 _primaryButtonPanel->setPositionNormalized(Vec2(0.5f, 0.5f));
676 _primaryButtonPanel->setScale(1 / scale);
677 _controlPanel->addProtectedChild(_primaryButtonPanel);
678
679 _playButton = MediaPlayerControl::create(SpriteFrame::createWithTexture(
680 g_mediaControlsTexture, g_mediaControlTextureRegions[MediaControlButtonId::Play]));
681 _playButton->addClickEventListener([this](Object* ref) {
682 if (_controlPanel->getOpacity() <= 50)
683 return;
684 _playRate = 1.f;
685 _mediaPlayer->setPlayRate(_playRate);
686 _mediaPlayer->play();
687 updateControllerState();
688 });
689 _playButton->setSwallowTouches(false);
690 _playButton->setPositionNormalized(Vec2(0.25f, 0.5f));
691 _playButton->setCascadeOpacityEnabled(true);
692 _playButton->setVisible(false);
693 _primaryButtonPanel->addProtectedChild(_playButton, 1, -1);
694
695 _stopButton = MediaPlayerControl::create(SpriteFrame::createWithTexture(
696 g_mediaControlsTexture, g_mediaControlTextureRegions[MediaControlButtonId::Stop]));
697 _stopButton->addClickEventListener([this](Object* ref) {
698 if (_controlPanel->getOpacity() <= 50)
699 return;

Callers

nothing calls this directly

Calls 15

getInstanceFunction · 0.85
createFunction · 0.85
setBackGroundColorMethod · 0.80
addProtectedChildMethod · 0.80
addClickEventListenerMethod · 0.80
setPlayRateMethod · 0.80
setFullScreenEnabledMethod · 0.80
setStretchEnabledMethod · 0.80

Tested by

no test coverage detected