vlc | branch: master | Erwan Tulou <[email protected]> | Fri Jul 11 17:58:12 2014 +0200| [74c73be30b81a95948b4b92cbb716a1aa33536d3] | committer: Erwan Tulou
skins2: add support for the new key accelerator feature. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=74c73be30b81a95948b4b92cbb716a1aa33536d3 --- modules/gui/skins2/src/dialogs.cpp | 9 +++++++++ modules/gui/skins2/src/dialogs.hpp | 3 +++ modules/gui/skins2/src/top_window.cpp | 5 ++--- modules/gui/skins2/src/vout_manager.hpp | 5 ++--- modules/gui/skins2/src/vout_window.cpp | 3 +-- modules/gui/skins2/src/vout_window.hpp | 1 + 6 files changed, 18 insertions(+), 8 deletions(-) diff --git a/modules/gui/skins2/src/dialogs.cpp b/modules/gui/skins2/src/dialogs.cpp index fc4db08..0067b57 100644 --- a/modules/gui/skins2/src/dialogs.cpp +++ b/modules/gui/skins2/src/dialogs.cpp @@ -344,3 +344,12 @@ void Dialogs::showInteraction( interaction_dialog_t *p_dialog ) 0, p_arg ); } } + +void Dialogs::sendKey( int key ) +{ + if( m_pProvider && m_pProvider->pf_show_dialog ) + { + m_pProvider->pf_show_dialog( m_pProvider, INTF_DIALOG_SENDKEY, + key, NULL ); + } +} diff --git a/modules/gui/skins2/src/dialogs.hpp b/modules/gui/skins2/src/dialogs.hpp index 0e3cebf..a2bb90a 100644 --- a/modules/gui/skins2/src/dialogs.hpp +++ b/modules/gui/skins2/src/dialogs.hpp @@ -95,6 +95,9 @@ public: /// Show an interaction dialog void showInteraction( interaction_dialog_t * ); + /// Send hotkeys (key accelerators) + void sendKey( int key ); + private: // Private because it's a singleton Dialogs( intf_thread_t *pIntf ); diff --git a/modules/gui/skins2/src/top_window.cpp b/modules/gui/skins2/src/top_window.cpp index d65a80e..e7b79df 100644 --- a/modules/gui/skins2/src/top_window.cpp +++ b/modules/gui/skins2/src/top_window.cpp @@ -227,8 +227,7 @@ void TopWindow::processEvent( EvtKey &rEvtKey ) return; } - var_SetInteger( getIntf()->p_libvlc, "key-pressed", - rEvtKey.getModKey() ); + getIntf()->p_sys->p_dialogs->sendKey( rEvtKey.getModKey() ); } // Always store the modifier, which can be needed for scroll events. @@ -260,7 +259,7 @@ void TopWindow::processEvent( EvtScroll &rEvtScroll ) int i = (rEvtScroll.getDirection() == EvtScroll::kUp ? KEY_MOUSEWHEELUP : KEY_MOUSEWHEELDOWN) | m_currModifier; - var_SetInteger( getIntf()->p_libvlc, "key-pressed", i ); + getIntf()->p_sys->p_dialogs->sendKey( i ); } } diff --git a/modules/gui/skins2/src/vout_manager.hpp b/modules/gui/skins2/src/vout_manager.hpp index 6d01ca0..9ddabe8 100644 --- a/modules/gui/skins2/src/vout_manager.hpp +++ b/modules/gui/skins2/src/vout_manager.hpp @@ -77,8 +77,7 @@ public: { // Only do the action when the key is down if( rEvtKey.getKeyState() == EvtKey::kDown ) - var_SetInteger( getIntf()->p_libvlc, "key-pressed", - rEvtKey.getModKey() ); + getIntf()->p_sys->p_dialogs->sendKey( rEvtKey.getModKey() ); } virtual void processEvent( EvtScroll &rEvtScroll ) @@ -89,7 +88,7 @@ public: i_vlck |= ( rEvtScroll.getDirection() == EvtScroll::kUp ) ? KEY_MOUSEWHEELUP : KEY_MOUSEWHEELDOWN; - var_SetInteger( getIntf()->p_libvlc, "key-pressed", i_vlck ); + getIntf()->p_sys->p_dialogs->sendKey( i_vlck ); } #endif diff --git a/modules/gui/skins2/src/vout_window.cpp b/modules/gui/skins2/src/vout_window.cpp index e209363..33da4cb 100644 --- a/modules/gui/skins2/src/vout_window.cpp +++ b/modules/gui/skins2/src/vout_window.cpp @@ -100,7 +100,6 @@ void VoutWindow::processEvent( EvtKey &rEvtKey ) { // Only do the action when the key is down if( rEvtKey.getKeyState() == EvtKey::kDown ) - var_SetInteger( getIntf()->p_libvlc, "key-pressed", - rEvtKey.getModKey() ); + getIntf()->p_sys->p_dialogs->sendKey( rEvtKey.getModKey() ); } diff --git a/modules/gui/skins2/src/vout_window.hpp b/modules/gui/skins2/src/vout_window.hpp index bdd2fe6..c2f306d 100644 --- a/modules/gui/skins2/src/vout_window.hpp +++ b/modules/gui/skins2/src/vout_window.hpp @@ -25,6 +25,7 @@ #define VOUT_WINDOW_HPP #include "generic_window.hpp" +#include "dialogs.hpp" #include <vlc_vout_window.h> class OSGraphics; _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
