本文整理汇总了C++中CGUISliderControl类的典型用法代码示例。如果您正苦于以下问题:C++ CGUISliderControl类的具体用法?C++ CGUISliderControl怎么用?C++ CGUISliderControl使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了CGUISliderControl类的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Close
void CGUIDialogSeekBar::FrameMove()
{
if (!g_application.m_pPlayer)
{
Close(true);
return;
}
// update controls
if (!g_application.GetSeekHandler()->InProgress() && !g_infoManager.m_performingSeek)
{ // position the bar at our current time
CGUISliderControl *pSlider = (CGUISliderControl*)GetControl(POPUP_SEEK_SLIDER);
if (pSlider && g_infoManager.GetTotalPlayTime())
pSlider->SetPercentage((float)g_infoManager.GetPlayTime()/g_infoManager.GetTotalPlayTime() * 0.1f);
CGUIMessage msg(GUI_MSG_LABEL_SET, GetID(), POPUP_SEEK_LABEL);
msg.SetLabel(g_infoManager.GetCurrentPlayTime());
OnMessage(msg);
}
else
{
CGUISliderControl *pSlider = (CGUISliderControl*)GetControl(POPUP_SEEK_SLIDER);
if (pSlider)
pSlider->SetPercentage(g_application.GetSeekHandler()->GetPercent());
CGUIMessage msg(GUI_MSG_LABEL_SET, GetID(), POPUP_SEEK_LABEL);
msg.SetLabel(g_infoManager.GetCurrentSeekTime());
OnMessage(msg);
}
CGUIDialog::FrameMove();
}
示例2: switch
bool CGUIDialogSlider::OnMessage(CGUIMessage& message)
{
switch ( message.GetMessage() )
{
case GUI_MSG_CLICKED:
if (message.GetSenderId() == CONTROL_SLIDER)
{
CGUISliderControl *slider = (CGUISliderControl *)GetControl(CONTROL_SLIDER);
if (slider && m_callback)
{
m_callback->OnSliderChange(m_callbackData, slider);
SET_CONTROL_LABEL(CONTROL_LABEL, slider->GetDescription());
}
}
break;
}
return CGUIDialog::OnMessage(message);
}
示例3: SetFloatValue
void Interface_GUIControlSlider::SetFloatValue(void* kodiBase, void* handle, float value)
{
CAddonDll* addon = static_cast<CAddonDll*>(kodiBase);
if (!addon)
{
CLog::Log(LOGERROR, "ADDON::Interface_GUIControlSlider::%s - invalid data", __FUNCTION__);
return;
}
if (!handle)
{
CLog::Log(LOGERROR, "ADDON::Interface_GUIControlSlider::%s - invalid handler data on addon '%s'", __FUNCTION__, addon->ID().c_str());
return;
}
CGUISliderControl* pControl = static_cast<CGUISliderControl *>(handle);
pControl->SetType(SLIDER_CONTROL_TYPE_FLOAT);
pControl->SetFloatValue(value);
}
示例4: OnAction
bool CGUIDialogSeekBar::OnAction(const CAction &action)
{
if (action.GetID() == ACTION_ANALOG_SEEK_FORWARD || action.GetID() == ACTION_ANALOG_SEEK_BACK)
{
if (!m_bRequireSeek)
{ // start of seeking
if (g_infoManager.GetTotalPlayTime())
m_fSeekPercentage = (float)g_infoManager.GetPlayTime() / g_infoManager.GetTotalPlayTime() * 0.1f;
else
m_fSeekPercentage = 0.0f;
// tell info manager that we have started a seekbar operation
m_bRequireSeek = true;
g_infoManager.SetSeeking(true);
}
// calculate our seek amount
if (g_application.m_pPlayer && !g_infoManager.m_performingSeek)
{
//100% over 1 second.
float speed = 100.0f;
if( action.GetRepeat() )
speed *= action.GetRepeat();
else
speed /= g_infoManager.GetFPS();
if (action.GetID() == ACTION_ANALOG_SEEK_FORWARD)
m_fSeekPercentage += action.GetAmount() * action.GetAmount() * speed;
else
m_fSeekPercentage -= action.GetAmount() * action.GetAmount() * speed;
if (m_fSeekPercentage > 100.0f) m_fSeekPercentage = 100.0f;
if (m_fSeekPercentage < 0.0f) m_fSeekPercentage = 0.0f;
CGUISliderControl *pSlider = (CGUISliderControl*)GetControl(POPUP_SEEK_SLIDER);
if (pSlider) pSlider->SetPercentage((int)m_fSeekPercentage); // Update our seek bar accordingly
}
ResetTimer();
return true;
}
return CGUIDialog::OnAction(action);
}
示例5: Reset
void Interface_GUIControlSlider::Reset(void* kodiBase, void* handle)
{
CAddonDll* addon = static_cast<CAddonDll*>(kodiBase);
if (!addon)
{
CLog::Log(LOGERROR, "ADDON::Interface_GUIControlSlider::%s - invalid data", __FUNCTION__);
return;
}
if (!handle)
{
CLog::Log(LOGERROR, "ADDON::Interface_GUIControlSlider::%s - invalid handler data on addon '%s'", __FUNCTION__, addon->ID().c_str());
return;
}
CGUISliderControl* pControl = static_cast<CGUISliderControl*>(handle);
CGUIMessage msg(GUI_MSG_LABEL_RESET, pControl->GetParentID(), pControl->GetID());
g_windowManager.SendThreadMessage(msg, pControl->GetParentID());
}
示例6: Close
void CGUIDialogSeekBar::FrameMove()
{
if (!g_application.m_pPlayer)
{
Close(true);
return;
}
// check if we should seek or exit
if (!g_infoManager.m_performingSeek && CTimeUtils::GetFrameTime() - m_timer > SEEK_BAR_DISPLAY_TIME)
g_infoManager.SetSeeking(false);
// render our controls
if (!m_bRequireSeek && !g_infoManager.m_performingSeek)
{ // position the bar at our current time
CGUISliderControl *pSlider = (CGUISliderControl*)GetControl(POPUP_SEEK_SLIDER);
if (pSlider && g_infoManager.GetTotalPlayTime())
pSlider->SetPercentage((int)((float)g_infoManager.GetPlayTime()/g_infoManager.GetTotalPlayTime() * 0.1f));
CGUIMessage msg(GUI_MSG_LABEL_SET, GetID(), POPUP_SEEK_LABEL);
msg.SetLabel(g_infoManager.GetCurrentPlayTime());
OnMessage(msg);
}
else
{
CGUIMessage msg(GUI_MSG_LABEL_SET, GetID(), POPUP_SEEK_LABEL);
msg.SetLabel(GetSeekTimeLabel());
OnMessage(msg);
}
// Check for seek timeout, and perform the seek
if (m_bRequireSeek && CTimeUtils::GetFrameTime() - m_timer > SEEK_BAR_SEEK_TIME)
{
g_infoManager.m_performingSeek = true;
double time = g_infoManager.GetTotalPlayTime() * m_fSeekPercentage * 0.01;
g_application.SeekTime(time);
m_bRequireSeek = false;
}
CGUIDialog::FrameMove();
}
示例7: defined
void CGUIDialogSeekBar::FrameMove()
{
#if defined(__VIDONME_MEDIACENTER__)
if (VidOnMe::VDMUtils::Instance().GetRunningMode() == VidOnMe::RM_VIDONME)
{
return;
}
#endif
if (!g_application.m_pPlayer)
{
Close(true);
return;
}
// update controls
if (!g_application.GetSeekHandler()->InProgress() && !g_infoManager.m_performingSeek)
{ // position the bar at our current time
CGUISliderControl *pSlider = (CGUISliderControl*)GetControl(POPUP_SEEK_SLIDER);
if (pSlider && g_infoManager.GetTotalPlayTime())
pSlider->SetPercentage((float)g_infoManager.GetPlayTime()/g_infoManager.GetTotalPlayTime() * 0.1f);
CGUIMessage msg(GUI_MSG_LABEL_SET, GetID(), POPUP_SEEK_LABEL);
msg.SetLabel(g_infoManager.GetCurrentPlayTime());
OnMessage(msg);
}
else
{
CGUISliderControl *pSlider = (CGUISliderControl*)GetControl(POPUP_SEEK_SLIDER);
if (pSlider)
pSlider->SetPercentage(g_application.GetSeekHandler()->GetPercent());
CGUIMessage msg(GUI_MSG_LABEL_SET, GetID(), POPUP_SEEK_LABEL);
msg.SetLabel(g_infoManager.GetCurrentSeekTime());
OnMessage(msg);
}
CGUIDialog::FrameMove();
}
示例8: OnAction
bool CGUIDialogSeekBar::OnAction(const CAction &action)
{
if (action.wID == ACTION_ANALOG_SEEK_FORWARD || action.wID == ACTION_ANALOG_SEEK_BACK)
{
if (!m_bRequireSeek)
{ // start of seeking
if (g_infoManager.GetTotalPlayTime())
m_fSeekPercentage = (float)g_infoManager.GetPlayTime() / g_infoManager.GetTotalPlayTime() * 0.1f;
else
m_fSeekPercentage = 0.0f;
// tell info manager that we have started a seekbar operation
m_bRequireSeek = true;
g_infoManager.SetSeeking(true);
}
// calculate our seek amount
if (g_application.m_pPlayer && !g_infoManager.m_performingSeek)
{
// 100% over a couple seconds.
float speed = 1.0f;
// This is a bit of hack right now, to match what we're getting.
m_fSeekPercentage += action.fAmount1 * speed;
if (m_fSeekPercentage > 100.0f) m_fSeekPercentage = 100.0f;
if (m_fSeekPercentage < 0.0f) m_fSeekPercentage = 0.0f;
CGUISliderControl *pSlider = (CGUISliderControl*)GetControl(POPUP_SEEK_SLIDER);
if (pSlider) pSlider->SetPercentage((int)m_fSeekPercentage); // Update our seek bar accordingly
}
ResetTimer();
return true;
}
return CGUIDialog::OnAction(action);
}
示例9: SET_CONTROL_LABEL
void CGUIDialogSlider::SetSlider(const CStdString &label, float value, float min, float delta, float max, ISliderCallback *callback, void *callbackData)
{
SET_CONTROL_LABEL(CONTROL_HEADING, label);
CGUISliderControl *slider = (CGUISliderControl *)GetControl(CONTROL_SLIDER);
m_callback = callback;
m_callbackData = callbackData;
if (slider)
{
slider->SetType(SPIN_CONTROL_TYPE_FLOAT);
slider->SetFloatRange(min, max);
slider->SetFloatInterval(delta);
slider->SetFloatValue(value);
if (m_callback)
{
m_callback->OnSliderChange(m_callbackData, slider);
SET_CONTROL_LABEL(CONTROL_LABEL, slider->GetDescription());
}
}
}