Хотите вызвать функцию щелчком мыши в окне браузера через плагин C ++, написанный с помощью FireBreath.
Но с кодом ниже ничего не происходит при нажатии.
Получил следующий код в TestPluginAPI.h
:
BEGIN_PLUGIN_EVENT_MAP()
EVENTTYPE_CASE(FB::MouseDownEvent, onMouseDown, FB::PluginWindow)
END_PLUGIN_EVENT_MAP()
virtual bool onMouseDown(FB::MouseDownEvent *evt, FB::PluginWindow *);
И этот код в testPluginAPI.cpp
:
bool TestPluginAPI::onMouseDown(FB::MouseDownEvent *evt, FB::PluginWindow *)
{
if(evt->m_Btn == FB::MouseButtonEvent::MouseButton_Left)
{
fire_showcrd(FB::variant_list_of(evt->m_x)(evt->m_y));
}
return 0;
}
Fire_showcrd(...)
был проверен отдельно и работает. Кажется, что-то не так с детектором щелчков, но что?
События PluginWindow в FireBreath применяются только к региону, в котором находится плагин, а не где-либо еще на веб-странице. Вы будете получать события только тогда, когда по самому плагину будет нажат этот метод, и если какие-либо элементы DOM будут зависать над вашим плагином (даже если ваш плагин будет отображаться впереди, потому что он находится в окне), вы можете потерять события для этого элемента.
Вы можете получить события клика для всей страницы, используя JavaScript.
Других решений пока нет …