macos 0.1.6 → 0.1.8

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bf5821a0d9cb6f49c609d0f04404516616827d6638cfbdeb1f0f8aff0d971511
4
- data.tar.gz: cb023c3393ed3cab754e83d25d6499c2d14ff9ba580a4338e785e0dbaf74a6d9
3
+ metadata.gz: 906112e5154c3bb3b289accad6e1a4d74e43bcc69056848a7300cf0f01dc3eeb
4
+ data.tar.gz: 3f2b011e2877d7880e9eed8cf75a9aeff04a63ba206bda21984466a6647e1a3d
5
5
  SHA512:
6
- metadata.gz: 8df71d32c14d10495fbdb6fda286d0a61149125513dda133b5c736968a2dcea6ec4e76362f7284741704394f7eec7e98ffa6b8aac146906cfadb3741ab4fdaf6
7
- data.tar.gz: 43dcd007db945422d82bd5e66e489becb2171c309420f9f78da91d17b0f88d912e0722bf040844cf4f6a3440686b6f7caee4990397f7b6744d9efc21afa6a1a9
6
+ metadata.gz: '09002ddfa40a57fe51bb99705f4e62b5df2467c07561bd29f9238aac5d4a9954cc4bf31567b1dbcadc91bdf6a1a65e742024cc61c2f4f4f77b1f660050e605df'
7
+ data.tar.gz: ba769566717499722b25de6b9a2f4fbdced6db31bc1de5860523ed1dcfa9189377a2d1b54e0f1e878a695c13b2002f1fb8d88b3af2b5dccc2972db18fbff3541
data/lib/macos/display.rb CHANGED
@@ -7,6 +7,10 @@ module MacOS
7
7
  class Display
8
8
  Size = Struct.new(:width, :height)
9
9
 
10
+ # @!attr_accessor :id
11
+ # # @return [Integer]
12
+ attr_accessor :id
13
+
10
14
  def self.main
11
15
  id = Library::CoreGraphics.CGMainDisplayID
12
16
  new(id:)
@@ -27,10 +31,21 @@ module MacOS
27
31
  Size.new(width, height)
28
32
  end
29
33
 
30
- # @yield [tempfile]
31
- # @yieldparam tempfile [Tempfile]
32
- def screenshot
34
+ # @retrun [Integer]
35
+ def wide
36
+ Library::CoreGraphics.CGDisplayPixelsWide(@id)
37
+ end
38
+
39
+ # @retrun [Integer]
40
+ def high
41
+ Library::CoreGraphics.CGDisplayPixelsHigh(@id)
42
+ end
43
+
44
+ # @yield [file]
45
+ # @yieldparam file [File]
46
+ def screenshot(&)
33
47
  tempfile = Tempfile.new(["screenshot", ".png"])
48
+
34
49
  image = Library::CoreGraphics.CGDisplayCreateImage(@id)
35
50
 
36
51
  encoding = Library::CoreFoundation::ENCODING_UTF8
@@ -48,7 +63,7 @@ module MacOS
48
63
  Library::CoreFoundation.CFRelease(uti)
49
64
  Library::CoreFoundation.CFRelease(dest)
50
65
 
51
- yield tempfile
66
+ File.open(tempfile.path, "rb", &)
52
67
  ensure
53
68
  tempfile.close
54
69
  tempfile.unlink
@@ -31,7 +31,7 @@ module MacOS
31
31
  mask |= Library::CoreGraphics::EventFlags.find(option)
32
32
  end
33
33
 
34
- key(key, mask:)
34
+ key(key.downcase, mask:)
35
35
  end
36
36
 
37
37
  # @example
@@ -186,11 +186,14 @@ module MacOS
186
186
  "." => KEY_CODE_PERIOD,
187
187
  "/" => KEY_CODE_SLASH,
188
188
  "\\" => KEY_CODE_BACKSLASH,
189
+ "space" => KEY_CODE_SPACE,
189
190
  " " => KEY_CODE_SPACE,
190
191
  "escape" => KEY_CODE_ESCAPE,
191
192
  "backspace" => KEY_CODE_DELETE,
192
193
  "delete" => KEY_CODE_DELETE,
193
194
  "command" => KEY_CODE_COMMAND,
195
+ "cmd" => KEY_CODE_COMMAND,
196
+ "⌘" => KEY_CODE_COMMAND,
194
197
  "option" => KEY_CODE_OPTION,
195
198
  "control" => KEY_CODE_CONTROL,
196
199
  "shift" => KEY_CODE_SHIFT,
@@ -45,6 +45,8 @@ module MacOS
45
45
  attach_function :CGMainDisplayID, [], :CGDirectDisplayID
46
46
  attach_function :CGDisplayBounds, %i[CGDirectDisplayID], CGRect.by_value
47
47
  attach_function :CGDisplayCreateImage, %i[CGDirectDisplayID], :CGImageRef
48
+ attach_function :CGDisplayPixelsWide, %i[CGDirectDisplayID], :size_t
49
+ attach_function :CGDisplayPixelsHigh, %i[CGDirectDisplayID], :size_t
48
50
  end
49
51
  end
50
52
  end
data/lib/macos/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module MacOS
4
- VERSION = "0.1.6"
4
+ VERSION = "0.1.8"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: macos
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kevin Sylvestre