-
Notifications
You must be signed in to change notification settings - Fork 67
/
CocoaNavJS.js
52 lines (41 loc) · 1.65 KB
/
CocoaNavJS.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
defineClass('CocoaNavView < WebView', {
awakeFromNib : ['void', 'void', function()
{
this.setFrameLoadDelegate(this)
this.mainFrame.loadRequest(NSURLRequest.requestWithURL(NSURL.fileURLWithPath(NSBundle.mainBundle.pathForResource_ofType('CocoaNavJS', 'html'))));
this.setPolicyDelegate(this)
}]
,'webView:didFinishLoadForFrame:' : ['void', 'id', 'id', function (webView, frame)
{
this.refresh(null)
}]
,refresh : ['IBAction', function (sender)
{
var list = JSCocoaHelper.classList
this.windowScriptObject.call({webScriptMethod:'loadClassesFromText', withArguments:NSArray.arrayWithObject(list)})
}]
,'webView:decidePolicyForNavigationAction:request:frame:decisionListener:' : ['void', 'id', 'id', 'id', 'id', 'id', function (webview, actionInformation, request, frame, listener )
{
NSWorkspace.sharedWorkspace.openURL(request.URL)
}]
})
defineClass('CocoaNavJSWindow < NSWindow', {
searchField : 'IBOutlet'
,webView : 'IBOutlet'
,'performFind:' : ['IBAction', function (sender)
{
this.makeFirstResponder(this.searchField)
}]
,'searchFieldChanged:' : ['IBAction', function (sender)
{
this.webView.windowScriptObject.call({webScriptMethod:'search', withArguments:NSArray.arrayWithObject(sender.stringValue)})
}]
,'performFindNext:' : ['IBAction', function (sender)
{
this.webView.windowScriptObject.call({webScriptMethod:'nextSearchResult', withArguments:null})
}]
,'performFindPrev:' : ['IBAction', function (sender)
{
this.webView.windowScriptObject.call({webScriptMethod:'prevSearchResult', withArguments:null})
}]
})