… | |
… | |
35 | use locale; |
35 | use locale; |
36 | use utf8; |
36 | use utf8; |
37 | |
37 | |
38 | our($appkit, $pasteboard); |
38 | our($appkit, $pasteboard); |
39 | |
39 | |
|
|
40 | $appkit = NSBundle->alloc->init->initWithPath_('/System/Library/Frameworks/AppKit.framework'); |
|
|
41 | $appkit->load if $appkit; |
|
|
42 | |
|
|
43 | if ($appkit->isLoaded) { |
|
|
44 | no strict 'refs'; |
|
|
45 | for my $class (qw(NSPasteboard)) { |
|
|
46 | @{$class . '::ISA'} = 'PerlObjCBridge'; |
|
|
47 | } |
|
|
48 | } else { |
|
|
49 | undef $appkit; |
|
|
50 | } |
|
|
51 | |
|
|
52 | $pasteboard = NSPasteboard->generalPasteboard; |
|
|
53 | |
40 | sub copy { |
54 | sub copy { |
41 | my ($self) = @_; |
55 | my ($self) = @_; |
42 | |
56 | |
43 | $pasteboard->declareTypes_owner_(NSArray->arrayWithObject_('NSStringPboardType'), undef); |
57 | $pasteboard->declareTypes_owner_(NSArray->arrayWithObject_('NSStringPboardType'), undef); |
44 | $pasteboard->setString_forType_($self->selection, 'NSStringPboardType'); |
58 | $pasteboard->setString_forType_($self->selection, 'NSStringPboardType'); |
… | |
… | |
57 | $self->tt_write($self->locale_encode($str)); |
71 | $self->tt_write($self->locale_encode($str)); |
58 | } |
72 | } |
59 | () |
73 | () |
60 | } |
74 | } |
61 | |
75 | |
62 | sub on_start { |
|
|
63 | my ($self) = @_; |
|
|
64 | |
|
|
65 | $appkit = NSBundle->alloc->init->initWithPath_('/System/Library/Frameworks/AppKit.framework'); |
|
|
66 | $appkit->load if $appkit; |
|
|
67 | |
|
|
68 | if ($appkit->isLoaded) { |
|
|
69 | no strict 'refs'; |
|
|
70 | for my $class (qw(NSPasteboard)) { |
|
|
71 | @{$class . '::ISA'} = 'PerlObjCBridge'; |
|
|
72 | } |
|
|
73 | } else { |
|
|
74 | undef $appkit; |
|
|
75 | } |
|
|
76 | |
|
|
77 | $pasteboard = NSPasteboard->generalPasteboard; |
|
|
78 | () |
|
|
79 | } |
|
|
80 | |
|
|
81 | sub on_user_command { |
76 | sub on_user_command { |
82 | my ($self, $cmd) = @_; |
77 | my ($self, $cmd) = @_; |
83 | |
78 | |
84 | if ($cmd eq "macosx-clipboard:copy") { |
79 | if ($cmd eq "macosx-clipboard:copy") { |
85 | $self->copy; |
80 | $self->copy; |