23
23
* ***** END LICENSE BLOCK ***** */
25
25
#include "adblockplus.h"
26
JSFunctionSpec window_methods[] = {
27
{"alert", JSAlert, 1, 0, 0},
28
{"setIcon", JSSetIcon, 1, 0, 0},
29
{"hideStatusBar", JSHideStatusBar, 1, 0, 0},
30
{"openTab", JSOpenTab, 2, 0, 0},
31
{"resetContextMenu", JSResetContextMenu, 0, 0, 0},
32
{"addContextMenuItem", JSAddContextMenuItem, 1, 0, 0},
33
{"createCommandID", JSCreateCommandID, 0, 0, 0},
34
{"createPopupMenu", JSCreatePopupMenu, 0, 0, 0},
35
{"addMenuItem", JSAddMenuItem, 7, 0, 0},
36
{"getHWND", JSGetHWND, 1, 0, 0},
37
{"subclassDialogWindow", JSSubclassDialogWindow, 1, 0, 0},
38
{"addRootListener", JSAddRootListener, 3, 0, 0},
39
{"removeRootListener", JSRemoveRootListener, 3, 0, 0},
40
{"focusWindow", JSFocusWindow, 1, 0, 0},
41
{"setTopmostWindow", JSSetTopmostWindow, 1, 0, 0},
42
{"showToolbarContext", JSShowToolbarContext, 1, 0, 0},
45
JSPropertySpec window_properties[] = {
46
{"scriptable", 2, JSPROP_READONLY|JSPROP_PERMANENT, JSGetScriptable, nsnull},
26
JSFunctionSpec module_functions[] = {
27
{"alert", JSAlert, 1, JSPROP_ENUMERATE|JSPROP_READONLY|JSPROP_PERMANENT, 0},
28
{"setIcon", JSSetIcon, 1, JSPROP_ENUMERATE|JSPROP_READONLY|JSPROP_PERMANENT, 0},
29
{"hideStatusBar", JSHideStatusBar, 1, JSPROP_ENUMERATE|JSPROP_READONLY|JSPROP_PERMANENT, 0},
30
{"openTab", JSOpenTab, 2, JSPROP_ENUMERATE|JSPROP_READONLY|JSPROP_PERMANENT, 0},
31
{"resetContextMenu", JSResetContextMenu, 0, JSPROP_ENUMERATE|JSPROP_READONLY|JSPROP_PERMANENT, 0},
32
{"addContextMenuItem", JSAddContextMenuItem, 1, JSPROP_ENUMERATE|JSPROP_READONLY|JSPROP_PERMANENT, 0},
33
{"createCommandID", JSCreateCommandID, 0, JSPROP_ENUMERATE|JSPROP_READONLY|JSPROP_PERMANENT, 0},
34
{"createPopupMenu", JSCreatePopupMenu, 0, JSPROP_ENUMERATE|JSPROP_READONLY|JSPROP_PERMANENT, 0},
35
{"addMenuItem", JSAddMenuItem, 7, JSPROP_ENUMERATE|JSPROP_READONLY|JSPROP_PERMANENT, 0},
36
{"getHWND", JSGetHWND, 1, JSPROP_ENUMERATE|JSPROP_READONLY|JSPROP_PERMANENT, 0},
37
{"subclassDialogWindow", JSSubclassDialogWindow, 1, JSPROP_ENUMERATE|JSPROP_READONLY|JSPROP_PERMANENT, 0},
38
{"addRootListener", JSAddRootListener, 3, JSPROP_ENUMERATE|JSPROP_READONLY|JSPROP_PERMANENT, 0},
39
{"removeRootListener", JSRemoveRootListener, 3, JSPROP_ENUMERATE|JSPROP_READONLY|JSPROP_PERMANENT, 0},
40
{"focusWindow", JSFocusWindow, 1, JSPROP_ENUMERATE|JSPROP_READONLY|JSPROP_PERMANENT, 0},
41
{"setTopmostWindow", JSSetTopmostWindow, 1, JSPROP_ENUMERATE|JSPROP_READONLY|JSPROP_PERMANENT, 0},
42
{"showToolbarContext", JSShowToolbarContext, 1, JSPROP_ENUMERATE|JSPROP_READONLY|JSPROP_PERMANENT, 0},
43
{nsnull, nsnull, 0, 0, 0},
50
46
WORD context_commands[] = {
56
54
/************************
57
55
* JavaScript callbacks *
58
56
************************/
60
JSBool JS_DLL_CALLBACK JSAlert(JSContext* cx, JSObject* obj, uintN argc, jsval* argv, jsval* rval) {
58
JSBool JSAlert(JSContext* cx, JSObject* obj, uintN argc, jsval* argv, jsval* rval) {
61
59
*rval = JSVAL_VOID;
156
152
if (GetMenuItemInfo(hMenu, 0, TRUE, &info) && !(info.fType & MFT_OWNERDRAW))
157
153
drawFlag = MF_STRING;
159
AppendMenuA(hMenu, drawFlag, cmdBase + context_commands[item], labelValues[item]);
156
AppendMenuA(hMenu, drawFlag, cmdBase + context_commands[item], label);
165
JSBool JS_DLL_CALLBACK JSCreateCommandID(JSContext* cx, JSObject* obj, uintN argc, jsval* argv, jsval* rval) {
162
JSBool JSCreateCommandID(JSContext* cx, JSObject* obj, uintN argc, jsval* argv, jsval* rval) {
166
163
*rval = INT_TO_JSVAL(kFuncs->GetCommandIDs(1));
171
JSBool JS_DLL_CALLBACK JSCreatePopupMenu(JSContext* cx, JSObject* obj, uintN argc, jsval* argv, jsval* rval) {
168
JSBool JSCreatePopupMenu(JSContext* cx, JSObject* obj, uintN argc, jsval* argv, jsval* rval) {
172
169
HMENU ret = CreatePopupMenu();
173
170
*rval = INT_TO_JSVAL(ret);
178
JSBool JS_DLL_CALLBACK JSAddMenuItem(JSContext* cx, JSObject* obj, uintN argc, jsval* argv, jsval* rval) {
175
JSBool JSAddMenuItem(JSContext* cx, JSObject* obj, uintN argc, jsval* argv, jsval* rval) {
179
176
*rval = JSVAL_VOID;