-
Notifications
You must be signed in to change notification settings - Fork 0
/
app_delegate.rb
66 lines (57 loc) · 1.93 KB
/
app_delegate.rb
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
class AppDelegate
def applicationDidFinishLaunching(notification)
buildMenu
buildWindow
@drag_and_drop = DragAndDropView.alloc.initWithFrame(CGRectZero)
@drag_and_drop.delegate = self
self.set_drag_and_drop_frame
@mainWindow.contentView.addSubview(@drag_and_drop)
@label = NSTextField.alloc.initWithFrame(CGRectZero)
@label.bezeled = false
@label.drawsBackground = false
@label.editable = false
@label.selectable = false
@label.alignment = NSCenterTextAlignment
@label.stringValue = "Drag a file above"
self.set_label_frame
@mainWindow.contentView.addSubview @label
end
def set_drag_and_drop_frame
window_size = @mainWindow.frame.size
drag_and_drop_size = [200, 200]
@drag_and_drop.frame = [
[(window_size.width / 2.0) - (drag_and_drop_size[0] / 2.0), (window_size.height / 2.0) - (drag_and_drop_size[1] / 2.0)],
drag_and_drop_size
]
end
def set_label_frame
window_size = @mainWindow.frame.size
label_size = [200, 50]
@label.frame = [
[(window_size.width / 2.0) - (label_size[0] / 2.0), @drag_and_drop.frame.origin.y - label_size[1]],
label_size
]
end
def buildWindow
@mainWindow = NSWindow.alloc.initWithContentRect([[240, 180], [480, 360]],
styleMask: NSTitledWindowMask|NSClosableWindowMask|NSMiniaturizableWindowMask|NSResizableWindowMask,
backing: NSBackingStoreBuffered,
defer: false)
@mainWindow.title = NSBundle.mainBundle.infoDictionary['CFBundleName']
@mainWindow.orderFrontRegardless
@mainWindow.delegate = self
end
def windowDidResize(sender)
self.set_drag_and_drop_frame
self.set_label_frame
end
def drag_received_for_file_paths(paths)
@label.stringValue = "Received: #{paths.join(',')}"
end
def drag_received_for_text(text)
@label.stringValue = "Received: #{text}"
end
def drag_received_for_url(url)
@label.stringValue = "Received: #{url}"
end
end