void CToolbarBottom::UpdateButtonImage(void* pbutton, wchar_t* strImage, int& nImageRight, int nImageWidth) { CButtonUI* pButton = static_cast<CButtonUI*>(pbutton); if (NULL == pButton || NULL == strImage) return; int nWidth = max(pButton->GetFixedWidth(), pButton->GetMinWidth()); wchar_t strDest[128] = {0}; int nLeft = (nWidth - nImageWidth) / 2; nImageRight = nLeft + nImageWidth; wsprintf(strDest,_T("dest='%d,4,%d,34'"), nLeft, nImageRight); wchar_t strImagePath[128] = {0}; wsprintf(strImagePath, L"res='%s' restype='ZPIMGRES' source='0,0,%d,30' %s", strImage, nImageWidth, strDest); pButton->SetForeImage(strImagePath); wsprintf(strImagePath, L"res='%s' restype='ZPIMGRES' source='%d,0,%d,30' %s", strImage, nImageWidth * 2, nImageWidth * 3, strDest); pButton->SetHotForeImage(strImagePath); wsprintf(strImagePath, L"res='%s' restype='ZPIMGRES' source='%d,0,%d,30' %s", strImage, nImageWidth, nImageWidth * 2, strDest); pButton->SetPushedImage(strImagePath); }
void CToolbarBottom::UpdateButton(ToolbarButtonType btnNeedUpdate, buttonStatusType btnStatus) { CButtonUI* button = GetButton(btnNeedUpdate); if(NULL == button) return; switch(btnNeedUpdate) { case Toolbar_Button_Audio: { if(Button_UnMuted==btnStatus) { wchar_t* strText = L"Mute Audio"; button->SetText(strText); int nWidth = max(button->GetFixedWidth(), button->GetMinWidth()); button->SetFixedWidth(nWidth); int nImageRight = 0; UpdateButtonImage((void*)button, _T("toolbar_btn_mute.png"), nImageRight); } else if(Button_Muted == btnStatus) { wchar_t* strText = L"Unmute Audio"; button->SetText(strText); int nWidth = max(button->GetFixedWidth(), button->GetMinWidth()); button->SetFixedWidth(nWidth); int nImageRight = 0; UpdateButtonImage((void*)button, _T("toolbar_btn_unmute.png"), nImageRight); } else if(Button_Enabled == btnStatus) { button->SetEnabled(true); } else if(Button_Disabled == btnStatus) { button->SetEnabled(false); } } break; case Toolbar_Button_Video: { if(Button_UnMuted == btnStatus) { wchar_t* strText = L"Hide Video"; button->SetText(strText); int nWidth = max(button->GetFixedWidth(), button->GetMinWidth()); button->SetFixedWidth(nWidth); int nImageRight = 0; UpdateButtonImage((void*)button, _T("toolbar_btn_stopVideo.png"), nImageRight); } else if(Button_Muted == btnStatus) { wchar_t* strText = L"Start Video"; button->SetText(strText); int nWidth = max(button->GetFixedWidth(), button->GetMinWidth()); button->SetFixedWidth(nWidth); int nImageRight = 0; UpdateButtonImage((void*)button, _T("toolbar_btn_startVideo.png"), nImageRight); } else if(Button_Enabled == btnStatus) { button->SetEnabled(true); } else if(Button_Disabled == btnStatus) { button->SetEnabled(false); } } break; case Toolbar_Button_Invite: break; case Toolbar_Button_Chat: { if(Button_UnMuted == btnStatus) { wchar_t* strText = L"Show Chat"; button->SetText(strText); } else if(Button_Muted == btnStatus) { wchar_t* strText = L"Hide Chat"; button->SetText(strText); } } break; case Toolbar_Button_Participant: { if(Button_UnMuted == btnStatus) { wchar_t* strText = L"Show Participant"; button->SetText(strText); } else if(Button_Muted == btnStatus) { wchar_t* strText = L"Hide Participant"; button->SetText(strText); } } break; case Toolbar_Button_ThumbnailVideo: { if(Button_UnMuted == btnStatus) { wchar_t* strText = L"Show Gallery"; button->SetText(strText); } else if(Button_Muted == btnStatus) { wchar_t* strText = L"Hide Gallery"; button->SetText(strText); } } break; case Toolbar_Button_Share: { if(Button_UnMuted == btnStatus) { wchar_t* strText = L"Share"; button->SetText(strText); } else if(Button_Muted == btnStatus) { wchar_t* strText = L"Stop Share"; button->SetText(strText); } } break; case Toolbar_Button_Leave: break; default: break; } }