opine 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3e2d0320777408b9078bd739906370540a2e471b
4
- data.tar.gz: 88c4f25bfea2f3d47057f893c27208ab59533112
3
+ metadata.gz: edf6056231dc3068f757d5ac3707b23cf57afdaa
4
+ data.tar.gz: 70b8103b8731f982b53cb0ca40eeacea08da07bd
5
5
  SHA512:
6
- metadata.gz: d133ab31c18fecae3f9e1e23b292f85502686c1ecd482875198497ae80f2e93d2b140c31d77fd5d75be6479fa7da7523f3a1c60074490530206443e2f6e35f87
7
- data.tar.gz: 97e693017ba3de3a4d607bade2ea0bfdce270a83ad4a2abf72e54a383444725574890e269317bd9abb1c8417f1cacfe4abb536f41b3c97667de496a6230a0768
6
+ metadata.gz: e8171ac5d46348383e8aac5a1958be8f9bbec9205bfccacc36dad02a6e6b96d59c63dcda65ab1e645742b4dcf54f49579094661a35378fb19f62b5b00e15101c
7
+ data.tar.gz: ed430ccac3b83a0f9cfb37fcca8290936591150d8a76fad415b0f73e6b7ef74c43a418627d5289d24c5b66bb68d1198f55c5779bd312effec5e13f71c31af95c
data/Gemfile CHANGED
@@ -1,8 +1,7 @@
1
1
  source "http://rubygems.org"
2
2
 
3
- if RUBY_PLATFORM =~ /darwin/
4
- gem 'cocoa', '>= 0.1.6'
5
- end
3
+ gem 'cocoa', '>= 0.1.6'
4
+ gem 'stench', '>= 0.0.1'
6
5
  gem 'cairo'
7
6
  gem 'activesupport', '~> 4.0'
8
7
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.5
1
+ 0.0.6
@@ -1,5 +1,6 @@
1
1
 
2
2
  require 'active_support/core_ext/module/delegation'
3
+ require 'active_support/inflector'
3
4
 
4
5
  module Opine
5
6
  def self.platform
@@ -17,6 +18,8 @@ end
17
18
  case Opine.platform
18
19
  when :osx
19
20
  require 'cocoa'
21
+ when :win
22
+ require 'stench'
20
23
  end
21
24
  require 'cairo'
22
25
 
@@ -1,8 +1,9 @@
1
+ class Opine::Alert < Opine::Widget
2
+ attr_accessor :application, :text
3
+ end
4
+
1
5
  class Opine::Application
2
- def alert text
3
- application.activateIgnoringOtherApps true
4
- alert = Cocoa::NSAlert.alloc.init.autorelease
5
- alert.setMessageText text
6
- alert.runModal
6
+ def alert(text, options={}, &block)
7
+ "Opine::#{theme.to_s.camelize}::Alert".constantize.new(options.merge(:application => application, :text => text),&block)
7
8
  end
8
9
  end
@@ -0,0 +1,11 @@
1
+ class Opine::Native::Alert < Opine::Alert
2
+ def initialize(options,&block)
3
+ super
4
+
5
+ application.activateIgnoringOtherApps true
6
+ alert = Cocoa::NSAlert.alloc.init.autorelease
7
+ alert.setMessageText text
8
+ alert.runModal
9
+ end
10
+ end
11
+
@@ -0,0 +1,12 @@
1
+ class Opine::Native::Alert < Opine::Alert
2
+ def initialize(options,&block)
3
+ super
4
+ Stench::WinBase::MessageBoxW(
5
+ Stench::WinBase::NULL,
6
+ text.encode("UTF-16LE"),
7
+ "".encode("UTF-16LE"),
8
+ Stench::WinBase::MB_OK
9
+ )
10
+ end
11
+ end
12
+
@@ -0,0 +1,13 @@
1
+ class Opine::Native::Application < Opine::Application
2
+ def initialize(options,&block)
3
+ super
4
+
5
+ instance_eval(&block) if block
6
+
7
+ msg = Stench::WinBase::MSG.new
8
+ while Stench::WinBase::GetMessage(msg, Stench::WinBase::NULL, 0, 0) > 0
9
+ Stench::WinBase::TranslateMessage(msg)
10
+ Stench::WinBase::DispatchMessage(msg)
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,67 @@
1
+ class Opine::Native::Window < Opine::Window
2
+
3
+ class Window
4
+ attr_accessor :widget
5
+
6
+ include Stench::WinBase
7
+
8
+ CLASS_NAME = "OpineWindow"
9
+ WINDOWS = []
10
+
11
+ def P(a); ::FFI::Pointer.new(a); end
12
+
13
+ def initialize(widget) #(title)
14
+ @widget = widget
15
+
16
+ @white = GetStockObject(WHITE_BRUSH)
17
+
18
+ @wc = WNDCLASSEX.new
19
+ @wc[:lpfnWndProc] = method(:window_proc)
20
+ @wc[:hInstance] = Stench::HINST
21
+ @wc[:hIcon] = LoadImage(NULL, P(IDI_APPLICATION), IMAGE_ICON, 0, 0, LR_SHARED)
22
+ @wc[:hCursor] = LoadImage(NULL, P(IDC_ARROW), IMAGE_CURSOR, 0, 0, LR_SHARED)
23
+ @wc[:hbrBackground] = @white
24
+ @wc[:lpszClassName] = FFI::MemoryPointer.from_string("#{CLASS_NAME}:#{__id__}")
25
+ @wc[:hIconSm] = LoadImage(NULL, P(IDI_APPLICATION), IMAGE_ICON, 0, 0, LR_SHARED);
26
+
27
+ @hwnd = CreateWindowEx(
28
+ WS_EX_LEFT, P(@wc.atom), title, WS_OVERLAPPEDWINDOW | WS_VISIBLE,
29
+ CW_USEDEFAULT, CW_USEDEFAULT, width, height, NULL, NULL, Stench::HINST, nil)
30
+
31
+ raise "CreateWindowEx Error" if @hwnd == 0
32
+ WINDOWS << self
33
+ end
34
+
35
+ def window_proc(hwnd, umsg, wparam, lparam)
36
+ case umsg
37
+ when WM_DESTROY
38
+ @hwnd = nil
39
+ WINDOWS.delete(self)
40
+ PostQuitMessage(0) if WINDOWS.empty?
41
+ return 0
42
+ else
43
+ return DefWindowProc(hwnd, umsg, wparam, lparam)
44
+ end
45
+ 0
46
+ end
47
+
48
+ def hwnd
49
+ @hwnd ? (IsWindow(@hwnd).nonzero? ? @hwnd : (@hwnd = nil)) : nil
50
+ end
51
+
52
+ def close
53
+ DestroyWindow(@hwnd) if hwnd
54
+ end
55
+
56
+ def method_missing method,*args
57
+ widget.send(method,*args)
58
+ end
59
+ end
60
+
61
+ def initialize(options,&block)
62
+ super
63
+
64
+ @window = Window.new(self)
65
+ end
66
+ end
67
+
@@ -2,16 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: opine 0.0.5 ruby lib
5
+ # stub: opine 0.0.6 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "opine"
9
- s.version = "0.0.5"
9
+ s.version = "0.0.6"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib"]
13
13
  s.authors = ["Patrick Hanevold"]
14
- s.date = "2014-04-13"
14
+ s.date = "2014-04-14"
15
15
  s.description = "A ruby widget toolkit for everyone and every computer"
16
16
  s.email = "patrick.hanevold@gmail.com"
17
17
  s.extra_rdoc_files = [
@@ -32,14 +32,18 @@ Gem::Specification.new do |s|
32
32
  "lib/opine/rect.rb",
33
33
  "lib/opine/widget.rb",
34
34
  "lib/opine/widgets/alert.rb",
35
+ "lib/opine/widgets/alert_osx.rb",
36
+ "lib/opine/widgets/alert_win.rb",
35
37
  "lib/opine/widgets/application.rb",
36
38
  "lib/opine/widgets/application_osx.rb",
39
+ "lib/opine/widgets/application_win.rb",
37
40
  "lib/opine/widgets/table.rb",
38
41
  "lib/opine/widgets/table_osx.rb",
39
42
  "lib/opine/widgets/view_osx.rb",
40
43
  "lib/opine/widgets/window.rb",
41
- "lib/opine/widgets/window_dark.rb",
44
+ "lib/opine/widgets/window_dark_osx.rb",
42
45
  "lib/opine/widgets/window_osx.rb",
46
+ "lib/opine/widgets/window_win.rb",
43
47
  "opine.gemspec",
44
48
  "spec/opine/opine_spec.rb",
45
49
  "spec/opine/widgets/application_spec.rb",
@@ -47,6 +51,7 @@ Gem::Specification.new do |s|
47
51
  "spec/opine/widgets/window_spec.rb",
48
52
  "spec/spec_helper.rb",
49
53
  "tasks/bacon.rake",
54
+ "tasks/gemspec.rake",
50
55
  "tasks/setup.rake"
51
56
  ]
52
57
  s.homepage = "http://github.com/patrickhno/opine"
@@ -58,7 +63,8 @@ Gem::Specification.new do |s|
58
63
  s.specification_version = 4
59
64
 
60
65
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
61
- s.add_runtime_dependency(%q<cocoa>, [">= 0.1.6"])
66
+ s.add_runtime_dependency(%q<cocoa>, [">= 0.1.6"]) if RUBY_PLATFORM =~ /darwin/
67
+ s.add_runtime_dependency(%q<stench>, [">= 0.0.1"]) if RUBY_PLATFORM =~ /cygwin|mingw|mswin|windows/
62
68
  s.add_runtime_dependency(%q<cairo>, [">= 0"])
63
69
  s.add_runtime_dependency(%q<activesupport>, ["~> 4.0"])
64
70
  s.add_development_dependency(%q<opine>, [">= 0"])
@@ -72,7 +78,8 @@ Gem::Specification.new do |s|
72
78
  s.add_development_dependency(%q<jeweler>, ["~> 2.0"])
73
79
  s.add_development_dependency(%q<simplecov>, [">= 0"])
74
80
  else
75
- s.add_dependency(%q<cocoa>, [">= 0.1.6"])
81
+ s.add_dependency(%q<cocoa>, [">= 0.1.6"]) if RUBY_PLATFORM =~ /darwin/
82
+ s.add_dependency(%q<stench>, [">= 0.0.1"]) if RUBY_PLATFORM =~ /cygwin|mingw|mswin|windows/
76
83
  s.add_dependency(%q<cairo>, [">= 0"])
77
84
  s.add_dependency(%q<activesupport>, ["~> 4.0"])
78
85
  s.add_dependency(%q<opine>, [">= 0"])
@@ -87,7 +94,8 @@ Gem::Specification.new do |s|
87
94
  s.add_dependency(%q<simplecov>, [">= 0"])
88
95
  end
89
96
  else
90
- s.add_dependency(%q<cocoa>, [">= 0.1.6"])
97
+ s.add_dependency(%q<cocoa>, [">= 0.1.6"]) if RUBY_PLATFORM =~ /darwin/
98
+ s.add_dependency(%q<stench>, [">= 0.0.1"]) if RUBY_PLATFORM =~ /cygwin|mingw|mswin|windows/
91
99
  s.add_dependency(%q<cairo>, [">= 0"])
92
100
  s.add_dependency(%q<activesupport>, ["~> 4.0"])
93
101
  s.add_dependency(%q<opine>, [">= 0"])
@@ -0,0 +1,8 @@
1
+
2
+ Rake::Task["gemspec"].enhance do
3
+ spec = "opine.gemspec"
4
+ text = File.read(spec)
5
+ text.gsub!(/^(.*<cocoa>.*)$/, '\1 if RUBY_PLATFORM =~ /darwin/')
6
+ text.gsub!(/^(.*<stench>.*)$/, '\1 if RUBY_PLATFORM =~ /cygwin|mingw|mswin|windows/')
7
+ File.open(spec, 'w') { |file| file.write(text) }
8
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opine
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Patrick Hanevold
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-13 00:00:00.000000000 Z
11
+ date: 2014-04-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cocoa
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: 0.1.6
27
+ - !ruby/object:Gem::Dependency
28
+ name: stench
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 0.0.1
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: 0.0.1
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: cairo
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -213,14 +227,18 @@ files:
213
227
  - lib/opine/rect.rb
214
228
  - lib/opine/widget.rb
215
229
  - lib/opine/widgets/alert.rb
230
+ - lib/opine/widgets/alert_osx.rb
231
+ - lib/opine/widgets/alert_win.rb
216
232
  - lib/opine/widgets/application.rb
217
233
  - lib/opine/widgets/application_osx.rb
234
+ - lib/opine/widgets/application_win.rb
218
235
  - lib/opine/widgets/table.rb
219
236
  - lib/opine/widgets/table_osx.rb
220
237
  - lib/opine/widgets/view_osx.rb
221
238
  - lib/opine/widgets/window.rb
222
- - lib/opine/widgets/window_dark.rb
239
+ - lib/opine/widgets/window_dark_osx.rb
223
240
  - lib/opine/widgets/window_osx.rb
241
+ - lib/opine/widgets/window_win.rb
224
242
  - opine.gemspec
225
243
  - spec/opine/opine_spec.rb
226
244
  - spec/opine/widgets/application_spec.rb
@@ -228,6 +246,7 @@ files:
228
246
  - spec/opine/widgets/window_spec.rb
229
247
  - spec/spec_helper.rb
230
248
  - tasks/bacon.rake
249
+ - tasks/gemspec.rake
231
250
  - tasks/setup.rake
232
251
  homepage: http://github.com/patrickhno/opine
233
252
  licenses: