gtk 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,34 @@
1
+ module Gtk
2
+ module Lib
3
+ attach_method :gtk_tree_view_new_with_model, [:pointer], :pointer
4
+ attach_method :gtk_tree_view_get_selection, [:pointer], :pointer
5
+ attach_method :gtk_tree_view_append_column, [:pointer, :pointer], :long
6
+ attach_method :gtk_tree_view_get_cursor, [:pointer, :pointer, :pointer], :void
7
+ end
8
+
9
+ class TreeView < Widget
10
+ def initialize(model=nil)
11
+ @native = if model
12
+ if model.is_a?(FFI::Pointer)
13
+ model
14
+ else
15
+ Lib.gtk_tree_view_new_with_model(model.native)
16
+ end
17
+ else
18
+ Lib.gtk_tree_view_new()
19
+ end
20
+ end
21
+ def get_selection
22
+ TreeSelection.new(Lib.gtk_tree_view_get_selection(native))
23
+ end
24
+ def get_cursor
25
+ path = FFI::MemoryPointer.new :pointer
26
+ column = FFI::MemoryPointer.new :pointer
27
+ Lib.gtk_tree_view_get_cursor(native,path,column)
28
+ path = path.get_pointer(0)
29
+ column = column.get_pointer(0)
30
+ [TreePath.new(path),TreeViewColumn.new(column)]
31
+ end
32
+ end
33
+ end
34
+
@@ -0,0 +1,36 @@
1
+ module Gtk
2
+ module Lib
3
+ attach_function :gtk_tree_view_column_new, [], :pointer
4
+ attach_function :gtk_tree_view_column_new_with_attributes, [:string, :pointer, :varargs], :pointer
5
+ attach_method :gtk_tree_view_column_set_attributes, [:pointer, :pointer, :varargs], :pointer
6
+ attach_method :gtk_tree_view_column_set_title, [:pointer, :string], :void
7
+ attach_method :gtk_tree_view_column_pack_start, [:pointer, :pointer, :bool], :void
8
+ attach_method :gtk_tree_view_column_add_attribute, [:pointer, :pointer, :string, :int], :void
9
+ end
10
+
11
+ class TreeViewColumn < Widget
12
+ def initialize(title=nil,renderer=nil,options={})
13
+ if title.is_a?(FFI::Pointer)
14
+ @native = title
15
+ else
16
+ attributes = options.map{ |key,value| [:string,key.to_s,:int,value] }.flatten
17
+ has_title_and_options = title && options.size > 0
18
+
19
+ @native = if has_title_and_options
20
+ raise "renderer misses native" unless renderer.native
21
+ Lib.gtk_tree_view_column_new_with_attributes(title,renderer.native,*attributes,:string,nil)
22
+ else
23
+ Lib.gtk_tree_view_column_new()
24
+ end
25
+
26
+ unless has_title_and_options
27
+ set_title(title) if title
28
+ if options.size > 0
29
+ Lib.gtk_tree_view_column_set_attributes(native,renderer.native,*attributes,:string,nil)
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
36
+
@@ -0,0 +1,17 @@
1
+ module Gtk
2
+ module Lib
3
+ attach_function :gtk_window_new, [:long], :pointer
4
+ attach_method :gtk_window_set_title, [:pointer,:string], :void
5
+ attach_method :gtk_window_set_default_size, [:pointer,:long,:long], :void
6
+ attach_method :gtk_window_set_position, [:pointer,WindowPosition], :void
7
+ end
8
+
9
+ class Window < Bin
10
+ def initialize(type = :toplevel)
11
+ @native = Lib.gtk_window_new(
12
+ WindowType[type]
13
+ )
14
+ end
15
+ end
16
+ end
17
+
@@ -0,0 +1,9 @@
1
+ module Gtk
2
+ class WindowPosition < Enums
3
+ NONE = 0
4
+ CENTER = 1
5
+ MOUSE = 2
6
+ CENTER_ALWAYS = 3
7
+ CENTER_ON_PARENT = 4
8
+ end
9
+ end
@@ -0,0 +1,6 @@
1
+ module Gtk
2
+ class WindowType < Enums
3
+ TOPLEVEL = 0
4
+ POPUP = 1
5
+ end
6
+ end
@@ -0,0 +1,7 @@
1
+ require 'spec_helper'
2
+
3
+ describe "Gtk" do
4
+ it "fails" do
5
+ should.flunk "hey buddy, you should probably rename this file and start specing for real"
6
+ end
7
+ end
@@ -0,0 +1,32 @@
1
+ require 'simplecov'
2
+
3
+ module SimpleCov::Configuration
4
+ def clean_filters
5
+ @filters = []
6
+ end
7
+ end
8
+
9
+ SimpleCov.configure do
10
+ clean_filters
11
+ load_adapter 'test_frameworks'
12
+ end
13
+
14
+ ENV["COVERAGE"] && SimpleCov.start do
15
+ add_filter "/.rvm/"
16
+ end
17
+ require 'rubygems'
18
+ require 'bundler'
19
+ begin
20
+ Bundler.setup(:default, :development)
21
+ rescue Bundler::BundlerError => e
22
+ $stderr.puts e.message
23
+ $stderr.puts "Run `bundle install` to install missing gems"
24
+ exit e.status_code
25
+ end
26
+ require 'bacon'
27
+
28
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
29
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
30
+ require 'gtk'
31
+
32
+ Bacon.summary_on_exit
metadata ADDED
@@ -0,0 +1,204 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: gtk
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Patrick Hanevold
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-06-10 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: ffi
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: gtk
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: cairo
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: activesupport
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: bacon
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rdoc
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '3.12'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '3.12'
97
+ - !ruby/object:Gem::Dependency
98
+ name: bundler
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '1.0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '1.0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: jeweler
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: 2.0.1
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: 2.0.1
125
+ - !ruby/object:Gem::Dependency
126
+ name: simplecov
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ description: GTK FFI bindings for Ruby
140
+ email: patrick.hanevold@gmail.com
141
+ executables: []
142
+ extensions: []
143
+ extra_rdoc_files:
144
+ - LICENSE.txt
145
+ - README.rdoc
146
+ files:
147
+ - ".document"
148
+ - Gemfile
149
+ - LICENSE.txt
150
+ - README.rdoc
151
+ - Rakefile
152
+ - VERSION
153
+ - examples/custom_cell_renderer.rb
154
+ - gtk.gemspec
155
+ - lib/gtk.rb
156
+ - lib/gtk/bin.rb
157
+ - lib/gtk/buttons_type.rb
158
+ - lib/gtk/cell_renderer.rb
159
+ - lib/gtk/cell_renderer_text.rb
160
+ - lib/gtk/container.rb
161
+ - lib/gtk/dialog_flags.rb
162
+ - lib/gtk/g_type.rb
163
+ - lib/gtk/list_store.rb
164
+ - lib/gtk/message_dialog.rb
165
+ - lib/gtk/message_type.rb
166
+ - lib/gtk/selection_mode.rb
167
+ - lib/gtk/style_context.rb
168
+ - lib/gtk/tree_iter.rb
169
+ - lib/gtk/tree_model.rb
170
+ - lib/gtk/tree_path.rb
171
+ - lib/gtk/tree_selection.rb
172
+ - lib/gtk/tree_store.rb
173
+ - lib/gtk/tree_view.rb
174
+ - lib/gtk/tree_view_column.rb
175
+ - lib/gtk/window.rb
176
+ - lib/gtk/window_position.rb
177
+ - lib/gtk/window_type.rb
178
+ - spec/gtk_spec.rb
179
+ - spec/spec_helper.rb
180
+ homepage: http://github.com/patrickhno/gtk
181
+ licenses:
182
+ - MIT
183
+ metadata: {}
184
+ post_install_message:
185
+ rdoc_options: []
186
+ require_paths:
187
+ - lib
188
+ required_ruby_version: !ruby/object:Gem::Requirement
189
+ requirements:
190
+ - - ">="
191
+ - !ruby/object:Gem::Version
192
+ version: '0'
193
+ required_rubygems_version: !ruby/object:Gem::Requirement
194
+ requirements:
195
+ - - ">="
196
+ - !ruby/object:Gem::Version
197
+ version: '0'
198
+ requirements: []
199
+ rubyforge_project:
200
+ rubygems_version: 2.2.0
201
+ signing_key:
202
+ specification_version: 4
203
+ summary: GTK FFI bindings for Ruby
204
+ test_files: []