From 911de9142e0dc69434e627d238d9daad0dbacaf2 Mon Sep 17 00:00:00 2001 From: Matthias Kortstiege Date: Mon, 6 Jul 2015 11:21:51 +0200 Subject: [guilib] handle oninfo as control action --- xbmc/guilib/GUIBaseContainer.cpp | 9 +++++++++ xbmc/guilib/GUIControl.cpp | 11 +++++++++++ xbmc/guilib/GUIControl.h | 1 + xbmc/guilib/GUIControlFactory.cpp | 1 + 4 files changed, 22 insertions(+) diff --git a/xbmc/guilib/GUIBaseContainer.cpp b/xbmc/guilib/GUIBaseContainer.cpp index ba52a5d100..b7c417c0fa 100644 --- a/xbmc/guilib/GUIBaseContainer.cpp +++ b/xbmc/guilib/GUIBaseContainer.cpp @@ -350,6 +350,15 @@ bool CGUIBaseContainer::OnAction(const CAction &action) } break; + case ACTION_SHOW_INFO: + { + if (OnInfo()) + return true; + else if (action.GetID()) + return OnClick(action.GetID()); + } + break; + case ACTION_FIRST_PAGE: SelectItem(0); return true; diff --git a/xbmc/guilib/GUIControl.cpp b/xbmc/guilib/GUIControl.cpp index c1ca32cc7f..c29dee0646 100644 --- a/xbmc/guilib/GUIControl.cpp +++ b/xbmc/guilib/GUIControl.cpp @@ -227,6 +227,9 @@ bool CGUIControl::OnAction(const CAction &action) OnRight(); return true; + case ACTION_SHOW_INFO: + return OnInfo(); + case ACTION_NAV_BACK: return OnBack(); @@ -278,6 +281,14 @@ bool CGUIControl::OnBack() return Navigate(ACTION_NAV_BACK); } +bool CGUIControl::OnInfo() +{ + CGUIAction action = GetNavigateAction(ACTION_SHOW_INFO); + if (action.HasAnyActions()) + return action.ExecuteActions(GetID(), GetParentID()); + return false; +} + void CGUIControl::OnNextControl() { Navigate(ACTION_NEXT_CONTROL); diff --git a/xbmc/guilib/GUIControl.h b/xbmc/guilib/GUIControl.h index c877c10dac..b09606c426 100644 --- a/xbmc/guilib/GUIControl.h +++ b/xbmc/guilib/GUIControl.h @@ -105,6 +105,7 @@ public: virtual void OnLeft(); virtual void OnRight(); virtual bool OnBack(); + virtual bool OnInfo(); virtual void OnNextControl(); virtual void OnPrevControl(); virtual void OnFocus() {}; diff --git a/xbmc/guilib/GUIControlFactory.cpp b/xbmc/guilib/GUIControlFactory.cpp index 9c757d6c9c..955dcc1c4c 100644 --- a/xbmc/guilib/GUIControlFactory.cpp +++ b/xbmc/guilib/GUIControlFactory.cpp @@ -832,6 +832,7 @@ CGUIControl* CGUIControlFactory::Create(int parentID, const CRect &rect, TiXmlEl GetActions(pControlNode, "onnext", actions[ACTION_NEXT_CONTROL]); GetActions(pControlNode, "onprev", actions[ACTION_PREV_CONTROL]); GetActions(pControlNode, "onback", actions[ACTION_NAV_BACK]); + GetActions(pControlNode, "oninfo", actions[ACTION_SHOW_INFO]); if (XMLUtils::GetInt(pControlNode, "defaultcontrol", defaultControl)) { -- cgit v1.2.3