deskshot 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 959684b9ca1b7add19715f4e9032453e64b1e82e
4
+ data.tar.gz: 504b5e7f6112a983e473e628022ac0627b99366d
5
+ SHA512:
6
+ metadata.gz: f39f37c3712244ddffe2eb47df99279400ea814ffc9c7c1ea68b7f7a6788e45ea765efede85334649afe14f9c836316f8431c695bd8cf8789fb170e9673fd44d
7
+ data.tar.gz: 1289e8f0cab520d06c1aa62b11113697863cbfd951cb29832f47174a2bd8cf90702a9d226e3b1b45d0cc81cb89fadc6cbe019bb909cc1b44815ef3fc67a2b2e2
Binary file
@@ -0,0 +1,24 @@
1
+ class Screenshot
2
+ include Java
3
+
4
+ import java.awt.Desktop
5
+ import java.awt.Robot
6
+ import java.awt.Toolkit
7
+ import java.awt.Rectangle
8
+ import javax.imageio.ImageIO
9
+
10
+ def self.capture(filename = 'screenshot.png')
11
+ sleep 1
12
+ robot = Robot.new
13
+ toolkit = Toolkit.get_default_toolkit
14
+ dim = toolkit.get_screen_size
15
+ rectangle = Rectangle.new(0, 0, dim.get_width, dim.get_height)
16
+ image = robot.create_screen_capture(rectangle)
17
+ file = java::io::File.new(filename)
18
+ ImageIO::write(image, "png", file)
19
+
20
+ desktop = Desktop.get_desktop
21
+ desktop.open(file)
22
+ end
23
+
24
+ end
@@ -0,0 +1,33 @@
1
+ class TrayApplication
2
+ include Java
3
+ import java.awt.TrayIcon
4
+ import java.awt.Toolkit
5
+
6
+ attr_accessor :icon_filename
7
+ attr_accessor :menu_items
8
+
9
+ def initialize(name= 'Tray Application')
10
+ @menu_items = []
11
+ @name = name
12
+ puts "Application is started successfully!! click on Tray Icon"
13
+ end
14
+
15
+ def item(label, &block)
16
+ item = java.awt.MenuItem.new(label)
17
+ item.add_action_listener(block)
18
+
19
+ @menu_items << item
20
+ end
21
+
22
+ def run
23
+ popup = java.awt.PopupMenu.new
24
+ @menu_items.each { |i| popup.add(i)}
25
+
26
+ image = java.awt.Toolkit::default_toolkit.get_image(@icon_filename)
27
+ tray_icon = TrayIcon.new(image, @name, popup)
28
+ tray_icon.image_auto_size = true
29
+
30
+ tray = java.awt.SystemTray::system_tray
31
+ tray.add(tray_icon)
32
+ end
33
+ end
@@ -0,0 +1,8 @@
1
+ require_relative 'tray'
2
+ require_relative 'screenshot'
3
+
4
+ app = TrayApplication.new('Deskshot')
5
+ app.icon_filename = 'capture_icon.png'
6
+ app.item('Take Screenshot') {Screenshot.capture}
7
+ app.item('Exit') {java.lang.System::exit(0)}
8
+ app.run
data/lib/deskshot.rb ADDED
@@ -0,0 +1,51 @@
1
+ require 'deskshot/tray_app'
2
+ require 'deskshot/screenshot'
3
+
4
+ include Java
5
+
6
+ import java.awt.event.KeyEvent
7
+ import java.awt.event.ActionEvent
8
+ import javax.swing.JFrame
9
+ import javax.swing.JMenuBar
10
+ import javax.swing.JMenu
11
+ import javax.swing.JMenuItem
12
+ import javax.swing.KeyStroke
13
+ import java.lang.System
14
+
15
+
16
+ class DeskShot < JFrame
17
+ def initialize
18
+ super "Deskshot"
19
+ self.initUI
20
+ end
21
+
22
+ def initUI
23
+ menubar = JMenuBar.new
24
+
25
+ fileMenu = JMenu.new "File"
26
+ fileMenu.setMnemonic KeyEvent::VK_F
27
+
28
+ fileNew = JMenuItem.new "Take Screenshot!"
29
+ fileNew.addActionListener { Screenshot.capture }
30
+ fileNew.setAccelerator KeyStroke.getKeyStroke KeyEvent::VK_S, 10
31
+ #10 is a combination of 8 + 2, 8 is ALT, 2 is CTRL
32
+
33
+ fileExit = JMenuItem.new "Exit"
34
+ fileExit.addActionListener { System.exit 0 }
35
+ fileExit.setAccelerator KeyStroke.getKeyStroke KeyEvent::VK_W, 2
36
+
37
+ fileMenu.add fileNew
38
+ fileMenu.add fileExit
39
+
40
+ menubar.add fileMenu
41
+
42
+ self.setJMenuBar menubar
43
+
44
+ self.setDefaultCloseOperation JFrame::EXIT_ON_CLOSE
45
+ self.setSize 230, 110
46
+ self.setLocationRelativeTo nil
47
+ self.setVisible true
48
+ end
49
+ end
50
+
51
+ DeskShot.new
metadata ADDED
@@ -0,0 +1,48 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: deskshot
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Parth Bharadiya
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-02-07 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: This gem is for taking screenshot of your desktop. It has system tray application also along with.
14
+ email: parthbharadiya007@gmail.com
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - lib/deskshot.rb
20
+ - lib/deskshot/screenshot.rb
21
+ - lib/deskshot/tray.rb
22
+ - lib/deskshot/tray_app.rb
23
+ - lib/deskshot/capture_icon.png
24
+ homepage: http://rubygems.org/gems/deskshot
25
+ licenses:
26
+ - MIT
27
+ metadata: {}
28
+ post_install_message:
29
+ rdoc_options: []
30
+ require_paths:
31
+ - lib
32
+ required_ruby_version: !ruby/object:Gem::Requirement
33
+ requirements:
34
+ - - '>='
35
+ - !ruby/object:Gem::Version
36
+ version: '0'
37
+ required_rubygems_version: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - '>='
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
42
+ requirements: []
43
+ rubyforge_project:
44
+ rubygems_version: 2.1.9
45
+ signing_key:
46
+ specification_version: 4
47
+ summary: deskshot!
48
+ test_files: []