Adding support for recording the visible rect and auto-scrolling.
diff --git a/samples/BrowserPlugin/jni/main.cpp b/samples/BrowserPlugin/jni/main.cpp
index e2fb6d6..0b77741 100644
--- a/samples/BrowserPlugin/jni/main.cpp
+++ b/samples/BrowserPlugin/jni/main.cpp
@@ -67,8 +67,10 @@
ANPPaintInterfaceV0 gPaintI;
ANPPathInterfaceV0 gPathI;
ANPTypefaceInterfaceV0 gTypefaceI;
+ANPWindowInterfaceV0 gWindowI;
#define ARRAY_COUNT(array) (sizeof(array) / sizeof(array[0]))
+#define DEBUG_PLUGIN_EVENTS 0
NPError NP_Initialize(NPNetscapeFuncs* browserFuncs, NPPluginFuncs* pluginFuncs, void *java_env, void *application_context)
{
@@ -110,6 +112,7 @@
{ kPathInterfaceV0_ANPGetValue, sizeof(gPathI), &gPathI },
{ kTypefaceInterfaceV0_ANPGetValue, sizeof(gPaintI), &gTypefaceI },
{ kAudioTrackInterfaceV0_ANPGetValue, sizeof(gSoundI), &gSoundI },
+ { kWindowInterfaceV0_ANPGetValue, sizeof(gWindowI), &gWindowI },
};
for (size_t i = 0; i < ARRAY_COUNT(gPairs); i++) {
gPairs[i].i->inSize = gPairs[i].size;
@@ -299,6 +302,7 @@
PluginObject *obj = reinterpret_cast<PluginObject*>(instance->pdata);
const ANPEvent* evt = reinterpret_cast<const ANPEvent*>(event);
+#if DEBUG_PLUGIN_EVENTS
switch (evt->eventType) {
case kDraw_ANPEventType:
@@ -352,11 +356,20 @@
}
}
}
- return 1;
+ break;
+
+ case kVisibleRect_ANPEventType:
+ gLogI.log(instance, kDebug_ANPLogType, "---- %p VisibleRect [%d %d %d %d]",
+ instance, evt->data.visibleRect.x, evt->data.visibleRect.y,
+ evt->data.visibleRect.width, evt->data.visibleRect.height);
+ break;
default:
+ gLogI.log(instance, kError_ANPLogType, "---- %p Unknown Event [%d]",
+ instance, evt->eventType);
break;
}
+#endif
if(!obj->activePlugin) {
gLogI.log(instance, kError_ANPLogType, "the active plugin is null.");