本文整理汇总了C++中CGUIMessage::GetControlId方法的典型用法代码示例。如果您正苦于以下问题:C++ CGUIMessage::GetControlId方法的具体用法?C++ CGUIMessage::GetControlId怎么用?C++ CGUIMessage::GetControlId使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CGUIMessage
的用法示例。
在下文中一共展示了CGUIMessage::GetControlId方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: OnMessage
bool CGUIWindow::OnMessage(CGUIMessage& message)
{
switch ( message.GetMessage() )
{
case GUI_MSG_WINDOW_LOAD:
{
Initialize();
return true;
}
break;
case GUI_MSG_WINDOW_INIT:
{
CLog::Log(LOGDEBUG, "------ Window Init (%s) ------", GetProperty("xmlfile").c_str());
if (m_dynamicResourceAlloc || !m_bAllocated) AllocResources();
OnInitWindow();
return true;
}
break;
case GUI_MSG_WINDOW_DEINIT:
{
CLog::Log(LOGDEBUG, "------ Window Deinit (%s) ------", GetProperty("xmlfile").c_str());
OnDeinitWindow(message.GetParam1());
// now free the window
if (m_dynamicResourceAlloc) FreeResources();
return true;
}
break;
case GUI_MSG_CLICKED:
{
// a specific control was clicked
CLICK_EVENT clickEvent = m_mapClickEvents[ message.GetSenderId() ];
// determine if there are any handlers for this event
if (clickEvent.HasAHandler())
{
// fire the message to all handlers
clickEvent.Fire(message);
}
break;
}
case GUI_MSG_UNFOCUS_ALL:
{
//unfocus the current focused control in this window
CGUIControl *control = GetFocusedControl();
if(control)
{
//tell focused control that it has lost the focus
CGUIMessage msgLostFocus(GUI_MSG_LOSTFOCUS, GetID(), control->GetID(), control->GetID());
control->OnMessage(msgLostFocus);
CLog::Log(LOGDEBUG, "Unfocus WindowID: %i, ControlID: %i",GetID(), control->GetID());
}
return true;
break;
}
case GUI_MSG_SELCHANGED:
{
// a selection within a specific control has changed
SELECTED_EVENT selectedEvent = m_mapSelectedEvents[ message.GetSenderId() ];
// determine if there are any handlers for this event
if (selectedEvent.HasAHandler())
{
// fire the message to all handlers
selectedEvent.Fire(message);
}
break;
}
case GUI_MSG_FOCUSED:
{ // a control has been focused
if (HasID(message.GetSenderId()))
{
m_focusedControl = message.GetControlId();
return true;
}
break;
}
case GUI_MSG_LOSTFOCUS:
{
// nothing to do at the window level when we lose focus
return true;
}
case GUI_MSG_MOVE:
{
if (HasID(message.GetSenderId()))
return OnMove(message.GetControlId(), message.GetParam1());
break;
}
case GUI_MSG_SETFOCUS:
{
// CLog::Log(LOGDEBUG,"set focus to control:%i window:%i (%i)\n", message.GetControlId(),message.GetSenderId(), GetID());
if ( message.GetControlId() )
{
// first unfocus the current control
CGUIControl *control = GetFocusedControl();
if (control)
//.........这里部分代码省略.........
示例2: OnMessage
//.........这里部分代码省略.........
{
// unable to go to this category - focus the previous one
SET_CONTROL_FOCUS(CONTROL_SETTINGS_START_BUTTONS + m_iCategory, 0);
return false;
}
m_iCategory = categoryIndex;
CreateSettings();
}
description = category->GetHelp();
}
else if (focusedControl >= CONTROL_SETTINGS_START_CONTROL && focusedControl < (int)(CONTROL_SETTINGS_START_CONTROL + m_settingControls.size()))
{
m_iSetting = focusedControl;
CSetting *setting = GetSettingControl(focusedControl)->GetSetting();
if (setting != NULL)
description = setting->GetHelp();
}
// set the description of the currently focused category/setting
if (description.isInteger() ||
(description.isString() && !description.empty()))
SetDescription(description);
return true;
}
case GUI_MSG_CLICKED:
{
int iControl = message.GetSenderId();
if (iControl == CONTROL_SETTINGS_OKAY_BUTTON)
{
OnOkay();
Close();
return true;
}
if (iControl == CONTROL_SETTINGS_CANCEL_BUTTON)
{
OnCancel();
Close();
return true;
}
BaseSettingControlPtr control = GetSettingControl(iControl);
if (control != NULL)
OnClick(control);
break;
}
case GUI_MSG_UPDATE_ITEM:
{
if (m_delayedSetting != NULL && m_delayedSetting->GetID() == message.GetControlId())
{
// first get the delayed setting and reset its member variable
// to avoid handling the delayed setting twice in case the OnClick()
// performed later causes the window to be deinitialized (e.g. when
// changing the language)
BaseSettingControlPtr delayedSetting = m_delayedSetting;
m_delayedSetting.reset();
// if updating the setting fails and param1 has been specifically set
// we need to call OnSettingChanged() to restore a valid value in the
// setting control
if (!delayedSetting->OnClick() && message.GetParam1() != 0)
OnSettingChanged(delayedSetting->GetSetting());
return true;
}
if (message.GetControlId() >= CONTROL_SETTINGS_START_CONTROL && message.GetControlId() < (int)(CONTROL_SETTINGS_START_CONTROL + m_settingControls.size()))
{
BaseSettingControlPtr settingControl = GetSettingControl(message.GetControlId());
if (settingControl.get() != NULL && settingControl->GetSetting() != NULL)
{
settingControl->Update();
return true;
}
}
break;
}
case GUI_MSG_UPDATE:
{
if (IsActive() && HasID(message.GetSenderId()))
{
int focusedControl = GetFocusedControlID();
CreateSettings();
SET_CONTROL_FOCUS(focusedControl, 0);
}
break;
}
default:
break;
}
return CGUIDialog::OnMessage(message);
}
示例3: OnMessage
bool CGUIWindowLoginScreen::OnMessage(CGUIMessage& message)
{
switch ( message.GetMessage() )
{
case GUI_MSG_WINDOW_DEINIT:
{
m_vecItems->Clear();
}
break;
case GUI_MSG_CLICKED:
{
int iControl = message.GetSenderId();
if (iControl == CONTROL_BIG_LIST)
{
int iAction = message.GetParam1();
// iItem is checked for validity inside these routines
if (iAction == ACTION_CONTEXT_MENU || iAction == ACTION_MOUSE_RIGHT_CLICK)
{
int iItem = m_viewControl.GetSelectedItem();
bool bResult = OnPopupMenu(m_viewControl.GetSelectedItem());
if (bResult)
{
Update();
CGUIMessage msg(GUI_MSG_ITEM_SELECT,GetID(),CONTROL_BIG_LIST,iItem);
OnMessage(msg);
}
return bResult;
}
else if (iAction == ACTION_SELECT_ITEM || iAction == ACTION_MOUSE_LEFT_CLICK)
{
int iItem = m_viewControl.GetSelectedItem();
bool bCanceled;
bool bOkay = g_passwordManager.IsProfileLockUnlocked(iItem, bCanceled);
if (bOkay)
{
if (iItem >= 0)
LoadProfile((unsigned int)iItem);
}
else
{
if (!bCanceled && iItem != 0)
CGUIDialogOK::ShowAndGetInput(CVariant{20068}, CVariant{20117});
}
}
}
}
break;
case GUI_MSG_SETFOCUS:
{
if (m_viewControl.HasControl(message.GetControlId()) && m_viewControl.GetCurrentControl() != message.GetControlId())
{
m_viewControl.SetFocused();
return true;
}
}
default:
break;
}
return CGUIWindow::OnMessage(message);
}
示例4: OnMessage
bool CGUIControl::OnMessage(CGUIMessage& message)
{
if ( message.GetControlId() == GetID() )
{
switch (message.GetMessage() )
{
case GUI_MSG_SETFOCUS:
// if control is disabled then move 2 the next control
if ( !CanFocus() )
{
CLog::Log(LOGERROR, "Control %u in window %u has been asked to focus, "
"but it can't",
GetID(), GetParentID());
return false;
}
SetFocus(true);
{
// inform our parent window that this has happened
CGUIMessage message(GUI_MSG_FOCUSED, GetParentID(), GetID());
if (m_parentControl)
m_parentControl->OnMessage(message);
}
return true;
break;
case GUI_MSG_LOSTFOCUS:
{
SetFocus(false);
// and tell our parent so it can unfocus
if (m_parentControl)
m_parentControl->OnMessage(message);
return true;
}
break;
case GUI_MSG_VISIBLE:
SetVisible(true, true);
return true;
break;
case GUI_MSG_HIDDEN:
SetVisible(false);
return true;
// Note that the skin <enable> tag will override these messages
case GUI_MSG_ENABLED:
SetEnabled(true);
return true;
case GUI_MSG_DISABLED:
SetEnabled(false);
return true;
case GUI_MSG_WINDOW_RESIZE:
// invalidate controls to get them to recalculate sizing information
SetInvalid();
return true;
}
}
return false;
}
示例5: OnMessage
bool CGUIDialogVideoBookmarks::OnMessage(CGUIMessage& message)
{
switch ( message.GetMessage() )
{
case GUI_MSG_WINDOW_DEINIT:
{
CUtil::DeleteVideoDatabaseDirectoryCache();
Clear();
}
break;
case GUI_MSG_WINDOW_INIT:
{
CGUIWindow::OnMessage(message);
Update();
return true;
}
break;
case GUI_MSG_CLICKED:
{
int iControl = message.GetSenderId();
if (iControl == CONTROL_ADD_BOOKMARK)
{
AddBookmark();
Update();
}
else if (iControl == CONTROL_CLEAR_BOOKMARKS)
{
ClearBookmarks();
}
else if (iControl == CONTROL_ADD_EPISODE_BOOKMARK)
{
AddEpisodeBookmark();
Update();
}
else if (m_viewControl.HasControl(iControl)) // list/thumb control
{
int iItem = m_viewControl.GetSelectedItem();
int iAction = message.GetParam1();
if (iAction == ACTION_DELETE_ITEM)
{
Delete(iItem);
}
else if (iAction == ACTION_SELECT_ITEM || iAction == ACTION_MOUSE_LEFT_CLICK)
{
GotoBookmark(iItem);
}
}
}
break;
case GUI_MSG_SETFOCUS:
{
if (m_viewControl.HasControl(message.GetControlId()) && m_viewControl.GetCurrentControl() != message.GetControlId())
{
m_viewControl.SetFocused();
return true;
}
}
break;
case GUI_MSG_REFRESH_LIST:
{
OnRefreshList();
}
break;
}
return CGUIDialog::OnMessage(message);
}
示例6: SendMessage
bool CGUIWindowManager::SendMessage(CGUIMessage& message)
{
bool handled = false;
// CLog::Log(LOGDEBUG,"SendMessage: mess=%d send=%d control=%d param1=%d", message.GetMessage(), message.GetSenderId(), message.GetControlId(), message.GetParam1());
// Send the message to all none window targets
for (int i = 0; i < (int) m_vecMsgTargets.size(); i++)
{
IMsgTargetCallback* pMsgTarget = m_vecMsgTargets[i];
if (pMsgTarget)
{
if (pMsgTarget->OnMessage( message )) handled = true;
}
}
// A GUI_MSG_NOTIFY_ALL is send to any active modal dialog
// and all windows whether they are active or not
if (message.GetMessage()==GUI_MSG_NOTIFY_ALL)
{
CSingleLock lock(g_graphicsContext);
for (rDialog it = m_activeDialogs.rbegin(); it != m_activeDialogs.rend(); ++it)
{
CGUIWindow *dialog = *it;
dialog->OnMessage(message);
}
for (WindowMap::iterator it = m_mapWindows.begin(); it != m_mapWindows.end(); ++it)
{
CGUIWindow *pWindow = (*it).second;
pWindow->OnMessage(message);
}
return true;
}
// Normal messages are sent to:
// 1. All active modeless dialogs
// 2. The topmost dialog that accepts the message
// 3. The underlying window (only if it is the sender or receiver if a modal dialog is active)
bool hasModalDialog(false);
bool modalAcceptedMessage(false);
// don't use an iterator for this loop, as some messages mean that m_activeDialogs is altered,
// which will invalidate any iterator
CSingleLock lock(g_graphicsContext);
unsigned int topWindow = m_activeDialogs.size();
while (topWindow)
{
CGUIWindow* dialog = m_activeDialogs[--topWindow];
lock.Leave();
if (!modalAcceptedMessage && dialog->IsModalDialog())
{ // modal window
hasModalDialog = true;
if (!modalAcceptedMessage && dialog->OnMessage( message ))
{
modalAcceptedMessage = handled = true;
}
}
else if (!dialog->IsModalDialog())
{ // modeless
if (dialog->OnMessage( message ))
handled = true;
}
lock.Enter();
if (topWindow > m_activeDialogs.size())
topWindow = m_activeDialogs.size();
}
lock.Leave();
// now send to the underlying window
CGUIWindow* window = GetWindow(GetActiveWindow());
if (window)
{
if (hasModalDialog)
{
// only send the message to the underlying window if it's the recipient
// or sender (or we have no sender)
if (message.GetSenderId() == window->GetID() ||
message.GetControlId() == window->GetID() ||
message.GetSenderId() == 0 )
{
if (window->OnMessage(message)) handled = true;
}
}
else
{
if (window->OnMessage(message)) handled = true;
}
}
return handled;
}
示例7: OnMessage
bool CGUIDialogSmartPlaylistEditor::OnMessage(CGUIMessage& message)
{
switch ( message.GetMessage() )
{
case GUI_MSG_CLICKED:
{
int iControl = message.GetSenderId();
int iAction = message.GetParam1();
if (iControl == CONTROL_RULE_LIST && (iAction == ACTION_SELECT_ITEM || iAction == ACTION_MOUSE_LEFT_CLICK))
OnRuleList(GetSelectedItem());
else if (iControl == CONTROL_RULE_ADD)
OnRuleAdd();
else if (iControl == CONTROL_RULE_EDIT)
OnRuleList(GetSelectedItem());
else if (iControl == CONTROL_RULE_REMOVE)
OnRuleRemove(GetSelectedItem());
else if (iControl == CONTROL_NAME)
OnEditChanged(iControl, m_playlist.m_playlistName);
else if (iControl == CONTROL_OK)
OnOK();
else if (iControl == CONTROL_CANCEL)
OnCancel();
else if (iControl == CONTROL_MATCH)
OnMatch();
else if (iControl == CONTROL_LIMIT)
OnLimit();
else if (iControl == CONTROL_ORDER_FIELD)
OnOrder();
else if (iControl == CONTROL_ORDER_DIRECTION)
OnOrderDirection();
else if (iControl == CONTROL_TYPE)
OnType();
else if (iControl == CONTROL_GROUP_BY)
OnGroupBy();
else if (iControl == CONTROL_GROUP_MIXED)
OnGroupMixed();
else
return CGUIDialog::OnMessage(message);
return true;
}
break;
case GUI_MSG_FOCUSED:
if (message.GetControlId() == CONTROL_RULE_REMOVE ||
message.GetControlId() == CONTROL_RULE_EDIT)
HighlightItem(GetSelectedItem());
else
{
if (message.GetControlId() == CONTROL_RULE_LIST)
UpdateRuleControlButtons();
HighlightItem(-1);
}
break;
case GUI_MSG_WINDOW_INIT:
{
const std::string& startupList = message.GetStringParam(0);
if (!startupList.empty())
{
int party = 0;
if (URIUtils::PathEquals(startupList, CProfilesManager::Get().GetUserDataItem("PartyMode.xsp")))
party = 1;
else if (URIUtils::PathEquals(startupList, CProfilesManager::Get().GetUserDataItem("PartyMode-Video.xsp")))
party = 2;
if ((party && !XFILE::CFile::Exists(startupList)) ||
m_playlist.Load(startupList))
{
m_path = startupList;
if (party == 1)
m_mode = "partymusic";
else if (party == 2)
m_mode = "partyvideo";
else
{
PLAYLIST_TYPE type = ConvertType(m_playlist.GetType());
if (type == TYPE_SONGS || type == TYPE_ALBUMS || type == TYPE_ARTISTS)
m_mode = "music";
else
m_mode = "video";
}
}
else
return false;
}
}
break;
}
return CGUIDialog::OnMessage(message);
}
示例8: OnMessage
//.........这里部分代码省略.........
}
else
{
if (m_multipleSelection)
{
for (int iItem = 0; iItem < m_vecItems->Size(); ++iItem)
{
CFileItemPtr pItem = (*m_vecItems)[iItem];
if (pItem->IsSelected())
m_markedPath.push_back(pItem->GetPath());
}
}
m_bConfirmed = true;
Close();
}
return true;
}
else if (message.GetSenderId() == CONTROL_CANCEL)
{
Close();
return true;
}
else if (message.GetSenderId() == CONTROL_NEWFOLDER)
{
std::string strInput;
if (CGUIKeyboardFactory::ShowAndGetInput(strInput, CVariant{g_localizeStrings.Get(119)}, false))
{
std::string strPath = URIUtils::AddFileToFolder(m_vecItems->GetPath(), strInput);
if (CDirectory::Create(strPath))
Update(m_vecItems->GetPath());
else
HELPERS::ShowOKDialogText(CVariant{20069}, CVariant{20072});
}
}
else if (message.GetSenderId() == CONTROL_FLIP)
m_bFlip = !m_bFlip;
}
break;
case GUI_MSG_SETFOCUS:
{
if (m_viewControl.HasControl(message.GetControlId()) && m_viewControl.GetCurrentControl() != message.GetControlId())
{
m_viewControl.SetFocused();
return true;
}
}
break;
case GUI_MSG_NOTIFY_ALL:
{ // Message is received only if this window is active
if (message.GetParam1() == GUI_MSG_REMOVED_MEDIA)
{
if (m_Directory->IsVirtualDirectoryRoot() && IsActive())
{
int iItem = m_viewControl.GetSelectedItem();
Update(m_Directory->GetPath());
m_viewControl.SetSelectedItem(iItem);
}
else if (m_Directory->IsRemovable())
{ // check that we have this removable share still
if (!m_rootDir.IsInSource(m_Directory->GetPath()))
{ // don't have this share any more
if (IsActive()) Update("");
else
{
m_history.ClearPathHistory();
m_Directory->SetPath("");
}
}
}
return true;
}
else if (message.GetParam1()==GUI_MSG_UPDATE_SOURCES)
{ // State of the sources changed, so update our view
if (m_Directory->IsVirtualDirectoryRoot() && IsActive())
{
int iItem = m_viewControl.GetSelectedItem();
Update(m_Directory->GetPath());
m_viewControl.SetSelectedItem(iItem);
}
return true;
}
else if (message.GetParam1()==GUI_MSG_UPDATE_PATH)
{
if (IsActive())
{
if((message.GetStringParam() == m_Directory->GetPath()) ||
(m_Directory->IsMultiPath() && XFILE::CMultiPathDirectory::HasPath(m_Directory->GetPath(), message.GetStringParam())))
{
int iItem = m_viewControl.GetSelectedItem();
Update(m_Directory->GetPath());
m_viewControl.SetSelectedItem(iItem);
}
}
}
}
break;
}
return CGUIDialog::OnMessage(message);
}
示例9: OnMessage
bool CGUIControllerWindow::OnMessage(CGUIMessage& message)
{
switch (message.GetMessage())
{
case GUI_MSG_WINDOW_INIT:
{
//! @todo Process parameter
//std::string strParam = message.GetStringParam();
break;
}
case GUI_MSG_CLICKED:
{
int controlId = message.GetSenderId();
if (controlId == CONTROL_CLOSE_BUTTON)
{
Close();
return true;
}
else if (controlId == CONTROL_GET_MORE)
{
GetMoreControllers();
return true;
}
else if (controlId == CONTROL_RESET_BUTTON)
{
ResetController();
return true;
}
else if (controlId == CONTROL_HELP_BUTTON)
{
ShowHelp();
return true;
}
else if (CONTROL_CONTROLLER_BUTTONS_START <= controlId && controlId < CONTROL_CONTROLLER_BUTTONS_END)
{
OnControllerSelected(controlId - CONTROL_CONTROLLER_BUTTONS_START);
return true;
}
else if (CONTROL_FEATURE_BUTTONS_START <= controlId && controlId < CONTROL_FEATURE_BUTTONS_END)
{
OnFeatureSelected(controlId - CONTROL_FEATURE_BUTTONS_START);
return true;
}
break;
}
case GUI_MSG_FOCUSED:
{
int controlId = message.GetControlId();
if (CONTROL_CONTROLLER_BUTTONS_START <= controlId && controlId < CONTROL_CONTROLLER_BUTTONS_END)
{
OnControllerFocused(controlId - CONTROL_CONTROLLER_BUTTONS_START);
}
else if (CONTROL_FEATURE_BUTTONS_START <= controlId && controlId < CONTROL_FEATURE_BUTTONS_END)
{
OnFeatureFocused(controlId - CONTROL_FEATURE_BUTTONS_START);
}
break;
}
case GUI_MSG_SETFOCUS:
{
int controlId = message.GetControlId();
if (CONTROL_CONTROLLER_BUTTONS_START <= controlId && controlId < CONTROL_CONTROLLER_BUTTONS_END)
{
OnControllerFocused(controlId - CONTROL_CONTROLLER_BUTTONS_START);
}
else if (CONTROL_FEATURE_BUTTONS_START <= controlId && controlId < CONTROL_FEATURE_BUTTONS_END)
{
OnFeatureFocused(controlId - CONTROL_FEATURE_BUTTONS_START);
}
break;
}
case GUI_MSG_REFRESH_LIST:
{
int controlId = message.GetControlId();
if (controlId == CONTROL_CONTROLLER_LIST)
{
if (m_controllerList && m_controllerList->Refresh())
{
CGUIDialog::OnMessage(message);
return true;
}
}
break;
}
default:
break;
}
return CGUIDialog::OnMessage(message);
}
示例10: OnMessage
bool CGUIWindowBoxeeMain::OnMessage(CGUIMessage& message)
{
switch ( message.GetMessage() )
{
case GUI_MSG_UPDATE:
{
int iControl = message.GetSenderId();
if (iControl == 0)
{
CGUIMessage winmsg2(GUI_MSG_UPDATE, GetID(), LIST_FEATURES);
OnMessage(winmsg2);
return true;
}
else
{
switch(message.GetControlId())
{
case LIST_FEATURES:
{
CLog::Log(LOGDEBUG,"CGUIWindowBoxeeMain::OnMessage - GUI_MSG_UPDATE - Going to reload LIST_FEATURES (home)(feat)");
ReloadContainer(LIST_FEATURES,true);
return true;
}
break;
}
}
}
break;
case GUI_MSG_CLICKED:
{
// In case of click in WINDOW_HOME we want to cancel the HomeScreenTimer
g_application.SetHomeScreenTimerOnStatus(false);
int iControl = message.GetSenderId();
int iAction = message.GetParam1();
if (iControl == BTN_NEW_VERSION)
{
// If the user clicked on the new version notification
CBoxeeVersionUpdateManager::HandleUpdateVersionButton();
}
else if (iAction == ACTION_SELECT_ITEM || iAction == ACTION_MOUSE_LEFT_CLICK)
{
switch(iControl)
{
case BTN_MOVIES:
{
g_windowManager.ActivateWindow(WINDOW_BOXEE_BROWSE_MOVIES,"boxeeui://movies/");
}
break;
case BTN_TVSHOWS:
{
g_windowManager.ActivateWindow(WINDOW_BOXEE_BROWSE_TVSHOWS,"boxeeui://shows/");
}
break;
case BTN_FRIENDS:
{
CGUIWindowBoxeeBrowseDiscover::LaunchFriends();
}
break;
case BTN_QUEUE:
{
CGUIWindowBoxeeBrowseQueue::LaunchWatchLater();
}
break;
case BTN_APPS:
{
g_windowManager.ActivateWindow(WINDOW_BOXEE_BROWSE_APPS,"boxeeui://apps/");
}
break;
case BTN_FILES:
{
g_windowManager.ActivateWindow(WINDOW_BOXEE_BROWSE_LOCAL,BoxeeUtils::GetFilesButtonPathToExecute());
}
break;
case BTN_WEB:
{
BoxeeUtils::LaunchBrowser();
}
break;
case TEMP_BTN_WEB_DLG:
{
CGUIWebDialog::ShowAndGetInput("http://10.0.0.140/test2");
}
break;
#ifdef HAS_DVB
case BTN_DVB:
{
if (RunOnBoardingWizardIfNeeded(false))
{
g_windowManager.ActivateWindow(WINDOW_BOXEE_LIVETV);
}
else
{
CLog::Log(LOGERROR, "CGUIWindowBoxeeMain::OnMessage - GUI_MSG_CLICKED - BTN_DVB - RunOnBoardingWizard FAILED");
}
}
break;
//.........这里部分代码省略.........
示例11: OnMessage
bool CGUIDialogSelect::OnMessage(CGUIMessage& message)
{
switch ( message.GetMessage() )
{
case GUI_MSG_WINDOW_DEINIT:
{
CGUIDialog::OnMessage(message);
m_viewControl.Reset();
Reset();
return true;
}
break;
case GUI_MSG_WINDOW_INIT:
{
m_bButtonPressed = false;
CGUIDialog::OnMessage(message);
m_iSelected = -1;
return true;
}
break;
case GUI_MSG_CLICKED:
{
int iControl = message.GetSenderId();
if (m_viewControl.HasControl(CONTROL_LIST))
{
int iAction = message.GetParam1();
if (ACTION_SELECT_ITEM == iAction || ACTION_MOUSE_LEFT_CLICK == iAction)
{
m_iSelected = m_viewControl.GetSelectedItem();
if(m_iSelected >= 0 && m_iSelected < (int)m_vecList->Size())
{
*m_selectedItem = *m_vecList->Get(m_iSelected);
Close();
}
else
m_iSelected = -1;
}
}
if (CONTROL_BUTTON == iControl)
{
m_iSelected = -1;
m_bButtonPressed = true;
Close();
}
}
break;
case GUI_MSG_SETFOCUS:
{
if (m_viewControl.HasControl(message.GetControlId()) && m_viewControl.GetCurrentControl() != message.GetControlId())
{
m_viewControl.SetFocused();
return true;
}
}
break;
}
return CGUIDialog::OnMessage(message);
}
示例12: OnMessage
bool CGUIAddonWindow::OnMessage(CGUIMessage& message)
{
switch (message.GetMessage())
{
case GUI_MSG_WINDOW_DEINIT:
{
return CGUIMediaWindow::OnMessage(message);
}
break;
case GUI_MSG_WINDOW_INIT:
{
CGUIMediaWindow::OnMessage(message);
if (CBOnInit)
CBOnInit(m_clientHandle);
return true;
}
break;
case GUI_MSG_FOCUSED:
{
if (m_viewControl.HasControl(message.GetControlId()) &&
m_viewControl.GetCurrentControl() != (int)message.GetControlId())
{
m_viewControl.SetFocused();
return true;
}
// check if our focused control is one of our category buttons
int iControl = message.GetControlId();
if (CBOnFocus)
CBOnFocus(m_clientHandle, iControl);
}
break;
case GUI_MSG_NOTIFY_ALL:
{
// most messages from GUI_MSG_NOTIFY_ALL break container content, whitelist working ones.
if (message.GetParam1() == GUI_MSG_PAGE_CHANGE || message.GetParam1() == GUI_MSG_WINDOW_RESIZE)
return CGUIMediaWindow::OnMessage(message);
return true;
}
case GUI_MSG_CLICKED:
{
int iControl = message.GetSenderId();
if (iControl && iControl != static_cast<int>(this->GetID()))
{
CGUIControl* controlClicked = dynamic_cast<CGUIControl*>(this->GetControl(iControl));
// The old python way used to check list AND SELECITEM method or if its a button, checkmark.
// Its done this way for now to allow other controls without a python version like togglebutton to still raise a onAction event
if (controlClicked) // Will get problems if we the id is not on the window and we try to do GetControlType on it. So check to make sure it exists
{
if ((controlClicked->IsContainer() && (message.GetParam1() == ACTION_SELECT_ITEM ||
message.GetParam1() == ACTION_MOUSE_LEFT_CLICK)) ||
!controlClicked->IsContainer())
{
if (CBOnClick)
return CBOnClick(m_clientHandle, iControl);
}
else if (controlClicked->IsContainer() && (message.GetParam1() == ACTION_MOUSE_RIGHT_CLICK ||
message.GetParam1() == ACTION_CONTEXT_MENU))
{
if (CBOnAction)
{
// Check addon want to handle right click for a context menu, if
// not used from addon becomes "GetContextButtons(...)" called.
if (CBOnAction(m_clientHandle, ACTION_CONTEXT_MENU))
return true;
}
}
}
}
}
break;
}
return CGUIMediaWindow::OnMessage(message);
}
示例13: OnMessage
bool CGUIBaseContainer::OnMessage(CGUIMessage& message)
{
if (message.GetControlId() == GetID() )
{
if (!m_staticContent)
{
if (message.GetMessage() == GUI_MSG_LABEL_BIND && message.GetPointer())
{ // bind our items
Reset();
CFileItemList *items = (CFileItemList *)message.GetPointer();
for (int i = 0; i < items->Size(); i++)
m_items.push_back(items->Get(i));
UpdateLayout(true); // true to refresh all items
UpdateScrollByLetter();
SelectItem(message.GetParam1());
return true;
}
else if (message.GetMessage() == GUI_MSG_LABEL_RESET)
{
Reset();
SetPageControlRange();
return true;
}
}
if (message.GetMessage() == GUI_MSG_ITEM_SELECT)
{
SelectItem(message.GetParam1());
return true;
}
else if (message.GetMessage() == GUI_MSG_ITEM_SELECTED)
{
message.SetParam1(GetSelectedItem());
return true;
}
else if (message.GetMessage() == GUI_MSG_PAGE_CHANGE)
{
if (message.GetSenderId() == m_pageControl && IsVisible())
{ // update our page if we're visible - not much point otherwise
if ((int)message.GetParam1() != m_offset)
m_pageChangeTimer.StartZero();
ScrollToOffset(message.GetParam1());
return true;
}
}
else if (message.GetMessage() == GUI_MSG_REFRESH_LIST)
{ // update our list contents
for (unsigned int i = 0; i < m_items.size(); ++i)
m_items[i]->SetInvalid();
}
else if (message.GetMessage() == GUI_MSG_MOVE_OFFSET)
{
int count = (int)message.GetParam1();
while (count < 0)
{
MoveUp(true);
count++;
}
while (count > 0)
{
MoveDown(true);
count--;
}
return true;
}
}
return CGUIControl::OnMessage(message);
}
示例14: OnMessage
bool CGUIDialogSelect::OnMessage(CGUIMessage& message)
{
switch ( message.GetMessage() )
{
case GUI_MSG_WINDOW_DEINIT:
{
CGUIDialog::OnMessage(message);
m_viewControl.Clear();
m_bButtonEnabled = false;
m_useDetails = false;
m_multiSelection = false;
// construct selected items list
m_selectedItems->Clear();
m_iSelected = -1;
for (int i = 0 ; i < m_vecList->Size() ; i++)
{
CFileItemPtr item = m_vecList->Get(i);
if (item->IsSelected())
{
m_selectedItems->Add(item);
if (m_iSelected == -1)
m_iSelected = i;
}
}
m_vecList->Clear();
m_buttonString = -1;
SET_CONTROL_LABEL(CONTROL_BUTTON, "");
return true;
}
break;
case GUI_MSG_WINDOW_INIT:
{
m_bButtonPressed = false;
m_bConfirmed = false;
CGUIDialog::OnMessage(message);
return true;
}
break;
case GUI_MSG_CLICKED:
{
int iControl = message.GetSenderId();
if (m_viewControl.HasControl(CONTROL_LIST))
{
int iAction = message.GetParam1();
if (ACTION_SELECT_ITEM == iAction || ACTION_MOUSE_LEFT_CLICK == iAction)
{
int iSelected = m_viewControl.GetSelectedItem();
if(iSelected >= 0 && iSelected < (int)m_vecList->Size())
{
CFileItemPtr item(m_vecList->Get(iSelected));
if (m_multiSelection)
item->Select(!item->IsSelected());
else
{
for (int i = 0 ; i < m_vecList->Size() ; i++)
m_vecList->Get(i)->Select(false);
item->Select(true);
m_bConfirmed = true;
Close();
}
}
}
}
if (CONTROL_BUTTON == iControl)
{
m_iSelected = -1;
m_bButtonPressed = true;
if (m_multiSelection)
m_bConfirmed = true;
Close();
}
}
break;
case GUI_MSG_SETFOCUS:
{
// make sure the additional button is focused in case the list is empty
// (otherwise it is impossible to navigate to the additional button)
if (m_vecList->IsEmpty() && m_bButtonEnabled &&
m_viewControl.HasControl(message.GetControlId()))
{
SET_CONTROL_FOCUS(CONTROL_BUTTON, 0);
return true;
}
if (m_viewControl.HasControl(message.GetControlId()) && m_viewControl.GetCurrentControl() != message.GetControlId())
{
m_viewControl.SetFocused();
return true;
}
}
break;
}
return CGUIDialog::OnMessage(message);
//.........这里部分代码省略.........
示例15: OnMessage
bool CGUITextBox::OnMessage(CGUIMessage& message)
{
if (message.GetControlId() == GetID() )
{
if (message.GetSenderId() == CONTROL_UPDOWN)
{
if (message.GetMessage() == GUI_MSG_CLICKED)
{
ResetAutoScrolling();
if (m_upDown.GetValue() >= 1)
ScrollToOffset((m_upDown.GetValue() - 1) * m_itemsPerPage);
}
}
if (message.GetMessage() == GUI_MSG_LABEL_SET)
{
m_offset = 0;
m_scrollOffset = 0;
ResetAutoScrolling();
CGUITextLayout::Reset();
m_upDown.SetRange(1, 1);
m_upDown.SetValue(1);
m_info.SetLabel(message.GetLabel(), "");
}
if (message.GetMessage() == GUI_MSG_LABEL_RESET)
{
m_offset = 0;
m_scrollOffset = 0;
ResetAutoScrolling();
CGUITextLayout::Reset();
m_upDown.SetRange(1, 1);
m_upDown.SetValue(1);
if (m_pageControl)
{
CGUIMessage msg(GUI_MSG_LABEL_RESET, GetID(), m_pageControl, m_itemsPerPage, m_lines.size());
SendWindowMessage(msg);
}
}
if (message.GetMessage() == GUI_MSG_SETFOCUS)
{
m_upDown.SetFocus(true);
ResetAutoScrolling();
}
if (message.GetMessage() == GUI_MSG_LOSTFOCUS)
{
m_upDown.SetFocus(false);
}
if (message.GetMessage() == GUI_MSG_PAGE_CHANGE)
{
if (message.GetSenderId() == m_pageControl)
{ // update our page
ResetAutoScrolling();
ScrollToOffset(message.GetParam1());
return true;
}
}
}
return CGUIControl::OnMessage(message);
}