gio2 0.90.3

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.
Files changed (88) hide show
  1. data/ChangeLog +60 -0
  2. data/README +34 -0
  3. data/Rakefile +76 -0
  4. data/ext/gio2/depend +5 -0
  5. data/ext/gio2/extconf.rb +91 -0
  6. data/ext/gio2/gappinfo.c +318 -0
  7. data/ext/gio2/gapplaunchcontext.c +79 -0
  8. data/ext/gio2/gasyncinitable.c +244 -0
  9. data/ext/gio2/gasyncresult.c +39 -0
  10. data/ext/gio2/gbufferedinputstream.c +184 -0
  11. data/ext/gio2/gbufferedoutputstream.c +82 -0
  12. data/ext/gio2/gcancellable.c +177 -0
  13. data/ext/gio2/gcharsetconverter.c +72 -0
  14. data/ext/gio2/gcontenttype.c +135 -0
  15. data/ext/gio2/gconverter.c +117 -0
  16. data/ext/gio2/gconverterinputstream.c +48 -0
  17. data/ext/gio2/gconverteroutputstream.c +48 -0
  18. data/ext/gio2/gdatainputstream.c +341 -0
  19. data/ext/gio2/gdataoutputstream.c +202 -0
  20. data/ext/gio2/gdesktopappinfo.c +90 -0
  21. data/ext/gio2/gdrive.c +267 -0
  22. data/ext/gio2/gemblem.c +71 -0
  23. data/ext/gio2/gemblemedicon.c +63 -0
  24. data/ext/gio2/gfile.c +2058 -0
  25. data/ext/gio2/gfileattribute.c +263 -0
  26. data/ext/gio2/gfileattributematcher.c +90 -0
  27. data/ext/gio2/gfiledescriptorbased.c +42 -0
  28. data/ext/gio2/gfileenumerator.c +167 -0
  29. data/ext/gio2/gfileicon.c +46 -0
  30. data/ext/gio2/gfileinfo.c +641 -0
  31. data/ext/gio2/gfileinputstream.c +92 -0
  32. data/ext/gio2/gfileiostream.c +98 -0
  33. data/ext/gio2/gfilemonitor.c +63 -0
  34. data/ext/gio2/gfilenamecompleter.c +72 -0
  35. data/ext/gio2/gfileoutputstream.c +100 -0
  36. data/ext/gio2/gfilterinputstream.c +56 -0
  37. data/ext/gio2/gfilteroutputstream.c +56 -0
  38. data/ext/gio2/gicon.c +69 -0
  39. data/ext/gio2/ginetaddress.c +188 -0
  40. data/ext/gio2/ginetsocketaddress.c +54 -0
  41. data/ext/gio2/ginitable.c +195 -0
  42. data/ext/gio2/ginputstream.c +341 -0
  43. data/ext/gio2/gio2.c +120 -0
  44. data/ext/gio2/gio2.def +2 -0
  45. data/ext/gio2/gio2.h +343 -0
  46. data/ext/gio2/gioerror.c +67 -0
  47. data/ext/gio2/giomodule.c +63 -0
  48. data/ext/gio2/gioscheduler.c +195 -0
  49. data/ext/gio2/giostream.c +129 -0
  50. data/ext/gio2/gloadableicon.c +91 -0
  51. data/ext/gio2/gmemoryinputstream.c +65 -0
  52. data/ext/gio2/gmemoryoutputstream.c +65 -0
  53. data/ext/gio2/gmount.c +283 -0
  54. data/ext/gio2/gmountoperation.c +168 -0
  55. data/ext/gio2/gnetworkaddress.c +71 -0
  56. data/ext/gio2/gnetworkservice.c +64 -0
  57. data/ext/gio2/goutputstream.c +343 -0
  58. data/ext/gio2/gresolver.c +230 -0
  59. data/ext/gio2/gseekable.c +89 -0
  60. data/ext/gio2/gsimpleasyncresult.c +153 -0
  61. data/ext/gio2/gsocket.c +451 -0
  62. data/ext/gio2/gsocketaddress.c +45 -0
  63. data/ext/gio2/gsocketclient.c +273 -0
  64. data/ext/gio2/gsocketconnectable.c +97 -0
  65. data/ext/gio2/gsocketconnection.c +82 -0
  66. data/ext/gio2/gsocketcontrolmessage.c +82 -0
  67. data/ext/gio2/gsocketlistener.c +239 -0
  68. data/ext/gio2/gsocketservice.c +64 -0
  69. data/ext/gio2/gsrvtarget.c +77 -0
  70. data/ext/gio2/gtcpconnection.c +48 -0
  71. data/ext/gio2/gthemedicon.c +86 -0
  72. data/ext/gio2/gthreadedsocketservice.c +39 -0
  73. data/ext/gio2/gunixconnection.c +69 -0
  74. data/ext/gio2/gunixfdlist.c +112 -0
  75. data/ext/gio2/gunixfdmessage.c +81 -0
  76. data/ext/gio2/gunixinputstream.c +73 -0
  77. data/ext/gio2/gunixmounts.c +346 -0
  78. data/ext/gio2/gunixoutputstream.c +73 -0
  79. data/ext/gio2/gunixsocketaddress.c +79 -0
  80. data/ext/gio2/gvfs.c +84 -0
  81. data/ext/gio2/gvolume.c +191 -0
  82. data/ext/gio2/gvolumemonitor.c +77 -0
  83. data/ext/gio2/gzlibcompressor.c +47 -0
  84. data/ext/gio2/gzlibdecompressor.c +43 -0
  85. data/ext/gio2/util.c +323 -0
  86. data/extconf.rb +49 -0
  87. data/lib/gio2.rb +141 -0
  88. metadata +184 -0
@@ -0,0 +1,60 @@
1
+ 2010-10-23 Kouhei Sutou <kou@cozmixng.org>
2
+
3
+ * README: Ruby/GIO -> Ruby/GIO2.
4
+
5
+ * ext/gio2/giomodule.c: remove needless g_io_module_load() and
6
+ g_io_module_unload() bindings.
7
+
8
+ 2010-10-08 Guillaume Cottenceau
9
+
10
+ * RVAL2CSTR2 is deprecated, replace with RVAL2CSTR_ACCEPT_NIL
11
+
12
+ * CSTR2RVAL2 is deprecated, replace with CSTR2RVAL_FREE
13
+
14
+ 2010-10-27 Nikolai Weibull
15
+
16
+ * ext/gio2/util.c (rbgio_define_domain_error): Add the Hash instance
17
+ variable that we need for rbgio_raise_error.
18
+
19
+ * ext/gio2/gfile.c: Do not undefine that which does not exist (File is
20
+ a module, not a class, so it doesn’t have an alloc function).
21
+
22
+ * lib/gio2.rb: Fix class/module “typos”.
23
+
24
+ 2010-09-26 Kouhei Sutou <kou@cozmixng.org>
25
+
26
+ * ext/gio2/util.c (rbgio_raise_error): don't us dynamic string
27
+ as format string for security reason.
28
+
29
+ * ext/gio2/depend (install): fix a typo in .pc name.
30
+ [#3075619] Cann't install gio
31
+ Reported by O01eg. Thanks!!!
32
+
33
+ 2010-09-23 Kouhei Sutou <kou@cozmixng.org>
34
+
35
+ * lib/gio2.rb: support bundled Windows DLL.
36
+
37
+ * ./: make buildable.
38
+
39
+ * src/: -> ext/gio2/.
40
+
41
+ * src/lib/: -> lib/.
42
+
43
+ * extconf.rb: support Ruby/GLib2 directory structure change.
44
+
45
+ 2010-07-23 Nikolai Weibull
46
+
47
+ * src/: Use GOBJ2RVAL_UNREF where appropriate.
48
+
49
+ 2010-07-12 Nikolai Weibull
50
+
51
+ * src/: Update to GIO 2.24.1.
52
+
53
+ 2010-06-16 Nikolai Weibull
54
+
55
+ * src/: Remove macro use.
56
+
57
+ 2009-09-23 Kouhei Sutou <kou@cozmixng.org>
58
+
59
+ * src/: add copyright header.
60
+
data/README ADDED
@@ -0,0 +1,34 @@
1
+ Ruby/GIO2
2
+ =========
3
+
4
+
5
+ Ruby/GIO2 is a Ruby binding of gio-2.0.x.
6
+
7
+ Requirements
8
+ ------------
9
+
10
+ Ruby: http://www.ruby-lang.org/
11
+ GIO: http://library.gnome.org/devel/gio/stable
12
+
13
+ Install
14
+ -------
15
+
16
+ 0. install Ruby and GLib.
17
+ 1. ruby extconf.rb
18
+ 2. make
19
+ 3. su
20
+ 4. make install
21
+
22
+ Copying
23
+ -------
24
+
25
+ Copyright (c) 2008-2010 Ruby-GNOME2 Project Team
26
+
27
+ This program is free software.
28
+ You can distribute/modify this program under the terms of
29
+ the GNU LESSER GENERAL PUBLIC LICENSE Version 2.1.
30
+
31
+ Project Website
32
+ ---------------
33
+
34
+ http://ruby-gnome2.sourceforge.jp/
@@ -0,0 +1,76 @@
1
+ # -*- ruby -*-
2
+
3
+ require 'pathname'
4
+ require 'find'
5
+ require 'rubygems'
6
+ require 'rake/extensiontask'
7
+
8
+ @top_dir = Pathname(__FILE__).dirname.parent.expand_path
9
+ @rb_glib2_dir = @top_dir + "glib2"
10
+
11
+ task :default => :build
12
+
13
+ def version
14
+ @version ||= ENV["VERSION"] || guess_version
15
+ end
16
+
17
+ def guess_version
18
+ versions = {}
19
+ rbglib_h_path = @rb_glib2_dir + "ext" + "glib2" + "rbglib.h"
20
+ rbglib_h_path.open do |rbglib_h|
21
+ rbglib_h.each_line do |line|
22
+ if /#define\s+RBGLIB_([A-Z]+)_VERSION\s+(\d+)/ =~ line
23
+ versions[$1.downcase] = $2.to_i
24
+ end
25
+ end
26
+ end
27
+ ["major", "minor", "micro"].collect {|type| versions[type]}.compact.join(".")
28
+ end
29
+
30
+ package_name = "gio2"
31
+
32
+ spec = Gem::Specification.new do |s|
33
+ s.name = package_name
34
+ s.summary = "Ruby/GIO2 is a Ruby binding of gio-2.x."
35
+ s.description = "Ruby/GIO2 is a Ruby binding of gio-2.x."
36
+ s.author = "The Ruby-GNOME2 Proejct Team"
37
+ s.email = "ruby-gnome2-devel-en@lists.sourceforge.net"
38
+ s.homepage = "http://ruby-gnome2.sourceforge.jp/"
39
+ s.version = version
40
+ s.platform = Gem::Platform::RUBY
41
+ s.add_dependency("cairo", ">= 1.10.0")
42
+ compatible_version = version.split(/\./)[0, 3].join(".")
43
+ s.add_dependency("glib2", ">= #{compatible_version}")
44
+ s.extensions = FileList["ext/#{package_name}/extconf.rb"]
45
+ s.require_paths = ["lib"]
46
+ s.files = FileList["ChangeLog", "README", "Rakefile", "extconf.rb",
47
+ "lib/**/*.rb", "ext/**/*"]
48
+ end
49
+
50
+ Rake::GemPackageTask.new(spec) do |pkg|
51
+ end
52
+
53
+ Rake::ExtensionTask.new(package_name, spec) do |ext|
54
+ ext.cross_compile = true
55
+ ext.cross_compiling do |spec|
56
+ if /mingw|mswin/ =~ spec.platform.to_s
57
+ win32_dir = File.join("vendor", "local")
58
+ win32_files = []
59
+ Find.find(win32_dir) do |file|
60
+ next if /\.zip\z/ =~ file
61
+ win32_files << file
62
+ end
63
+ spec.files += win32_files
64
+ end
65
+ end
66
+ end
67
+
68
+ namespace :win32 do
69
+ desc "download Windows binaries"
70
+ task :download do
71
+ $LOAD_PATH.unshift((@rb_glib2_dir + "lib").to_s)
72
+ require 'gnome2-win32-binary-downloader'
73
+ GNOME2Win32BinaryDownloader.download(:packages => ["glib"],
74
+ :dependencies => ["gettext-runtime"])
75
+ end
76
+ end
@@ -0,0 +1,5 @@
1
+ install:
2
+ if test -n "$(pkgconfigdir)"; then \
3
+ $(MAKEDIRS) $(pkgconfigdir); \
4
+ $(INSTALL_DATA) ruby-gio2.pc $(pkgconfigdir); \
5
+ fi
@@ -0,0 +1,91 @@
1
+ =begin
2
+ extconf.rb for Ruby/GIO extention library
3
+ =end
4
+
5
+ require 'pathname'
6
+
7
+ base_dir = Pathname(__FILE__).dirname.parent.parent.expand_path
8
+ top_dir = base_dir.parent.expand_path
9
+ top_build_dir = Pathname(".").parent.parent.parent.expand_path
10
+
11
+ mkmf_gnome2_dir = top_dir + "glib2" + 'lib'
12
+ version_suffix = ""
13
+ unless mkmf_gnome2_dir.exist?
14
+ if /(-\d+\.\d+\.\d+)(?:\.\d+)?\z/ =~ base_dir.basename.to_s
15
+ version_suffix = $1
16
+ mkmf_gnome2_dir = top_dir + "glib2#{version_suffix}" + 'lib'
17
+ end
18
+ end
19
+
20
+ $LOAD_PATH.unshift(mkmf_gnome2_dir.to_s)
21
+
22
+ module_name = "gio2"
23
+ package_id = "gio-2.0"
24
+
25
+ require 'mkmf-gnome2'
26
+
27
+ win32 = setup_win32(module_name, base_dir)
28
+
29
+ defines = '-DRUBY_GIO2_COMPILATION'
30
+
31
+ PKGConfig.have_package(package_id) or exit 1
32
+ unless win32
33
+ PKGConfig.have_package('gio-unix-2.0') and defines += ' -DHAVE_GIO_UNIX'
34
+ end
35
+ PKGConfig.have_package('gobject-2.0') or exit 1
36
+
37
+ have_func('rb_exec_recursive')
38
+
39
+ ["glib2"].each do |package|
40
+ directory = "#{package}#{version_suffix}"
41
+ build_dir = "#{directory}/tmp/#{RUBY_PLATFORM}/#{package}/#{RUBY_VERSION}"
42
+ add_depend_package(package, "#{directory}/ext/#{package}",
43
+ top_dir.to_s,
44
+ :top_build_dir => top_build_dir.to_s,
45
+ :target_build_dir => build_dir)
46
+ end
47
+
48
+ def try_compiler_option(opt, &block)
49
+ checking_for "#{opt} option to compiler" do
50
+ $CFLAGS += " #{opt}" if try_compile '', opt, &block
51
+ end
52
+ end
53
+
54
+ try_compiler_option '-finline-functions'
55
+ try_compiler_option '-fno-common'
56
+ try_compiler_option '-Wall'
57
+ try_compiler_option '-Waggregate-return'
58
+ try_compiler_option '-Wcast-align'
59
+ # NOTE: Generates way too many false positives.
60
+ # try_compiler_option '-Wconversion'
61
+ try_compiler_option '-Wextra'
62
+ try_compiler_option '-Wformat=2'
63
+ try_compiler_option '-Winit-self'
64
+ try_compiler_option '-Winline'
65
+ try_compiler_option '-Wlarger-than-65500'
66
+ try_compiler_option '-Wmissing-declarations'
67
+ try_compiler_option '-Wmissing-format-attribute'
68
+ try_compiler_option '-Wmissing-include-dirs'
69
+ try_compiler_option '-Wmissing-noreturn'
70
+ try_compiler_option '-Wmissing-prototypes'
71
+ try_compiler_option '-Wnested-externs'
72
+ try_compiler_option '-Wold-style-definition'
73
+ try_compiler_option '-Wpacked'
74
+ try_compiler_option '-Wp,-D_FORTIFY_SOURCE=2'
75
+ try_compiler_option '-Wpointer-arith'
76
+ # NOTE: ruby.h and intern.h have too many of these.
77
+ # try_compiler_option '-Wredundant-decls'
78
+ # NOTE: Complains about index, for example.
79
+ # try_compiler_option '-Wshadow'
80
+ try_compiler_option '-Wswitch-default'
81
+ try_compiler_option '-Wswitch-enum'
82
+ try_compiler_option '-Wundef'
83
+ # NOTE: Incredible amounts of false positives.
84
+ #try_compiler_option '-Wunreachable-code'
85
+ try_compiler_option '-Wunsafe-loop-optimizations'
86
+ try_compiler_option '-Wwrite-strings'
87
+
88
+ create_pkg_config_file("Ruby/GIO2", package_id)
89
+
90
+ $defs << defines
91
+ create_makefile(module_name)
@@ -0,0 +1,318 @@
1
+ /* -*- c-file-style: "ruby" -*- */
2
+ /*
3
+ * Ruby/GIO: a Ruby binding of gio-2.0.x.
4
+ * Copyright (C) 2008-2009 Ruby-GNOME2 Project Team
5
+ *
6
+ * This library is free software; you can redistribute it and/or
7
+ * modify it under the terms of the GNU Lesser General Public
8
+ * License as published by the Free Software Foundation; either
9
+ * version 2.1 of the License.
10
+ *
11
+ * This library is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
+ * Lesser General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU Lesser General Public
17
+ * License along with this library; if not, write to the Free Software
18
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19
+ */
20
+
21
+ #include "gio2.h"
22
+
23
+ #define _SELF(value) RVAL2GAPPINFO(value)
24
+
25
+ #define RVAL2GAPPINFOCREATEFLAGS(value) \
26
+ RVAL2GFLAGS((value), G_TYPE_APP_INFO_CREATE_FLAGS)
27
+
28
+ #define RVAL2GAPPINFOCREATEFLAGSDEFAULT(value) \
29
+ RVAL2TYPE_WITH_DEFAULT((value), \
30
+ RVAL2GAPPINFOCREATEFLAGS, \
31
+ G_APP_INFO_CREATE_NONE)
32
+
33
+ static VALUE
34
+ appinfo_create_from_commandline(int argc, VALUE *argv, G_GNUC_UNUSED VALUE self)
35
+ {
36
+ VALUE commandline, application_name, flags;
37
+ GError *error = NULL;
38
+ GAppInfo *info;
39
+
40
+ rb_scan_args(argc, argv, "12", &commandline, &application_name, &flags);
41
+ info = g_app_info_create_from_commandline(RVAL2CSTR(commandline),
42
+ RVAL2CSTR_ACCEPT_NIL(application_name),
43
+ RVAL2GAPPINFOCREATEFLAGSDEFAULT(flags),
44
+ &error);
45
+ if (info == NULL)
46
+ rbgio_raise_error(error);
47
+
48
+ return GOBJ2RVAL_UNREF(info);
49
+ }
50
+
51
+ static VALUE
52
+ appinfo_reset_type_associations(VALUE self, VALUE content_type)
53
+ {
54
+ g_app_info_reset_type_associations(RVAL2CSTR(content_type));
55
+
56
+ return self;
57
+ }
58
+
59
+ static VALUE
60
+ appinfo_get_all_for_type(G_GNUC_UNUSED VALUE self, VALUE content_type)
61
+ {
62
+ return GLIST2ARY_FREE(g_app_info_get_all_for_type(RVAL2CSTR(content_type)));
63
+ }
64
+
65
+ static VALUE
66
+ appinfo_get_all(int argc, VALUE *argv, VALUE self)
67
+ {
68
+ VALUE content_type;
69
+
70
+ rb_scan_args(argc, argv, "01", &content_type);
71
+ if (!NIL_P(content_type))
72
+ return appinfo_get_all_for_type(self, content_type);
73
+
74
+ return GLIST2ARY_FREE(g_app_info_get_all());
75
+ }
76
+
77
+ static VALUE
78
+ appinfo_get_default_for_type(int argc, VALUE *argv, G_GNUC_UNUSED VALUE self)
79
+ {
80
+ VALUE content_type, must_support_uris;
81
+
82
+ rb_scan_args(argc, argv, "11", &content_type, &must_support_uris);
83
+
84
+ return GOBJ2RVAL_UNREF(g_app_info_get_default_for_type(RVAL2CSTR(content_type),
85
+ RVAL2CBOOL(must_support_uris)));
86
+ }
87
+
88
+ static VALUE
89
+ appinfo_get_default_for_uri_scheme(G_GNUC_UNUSED VALUE self, VALUE uri_scheme)
90
+ {
91
+ return GOBJ2RVAL_UNREF(g_app_info_get_default_for_uri_scheme(RVAL2CSTR(uri_scheme)));
92
+ }
93
+
94
+ static VALUE
95
+ appinfo_launch_default_for_uri(int argc, VALUE *argv, VALUE self)
96
+ {
97
+ VALUE uri, launch_context;
98
+ GError *error;
99
+
100
+ rb_scan_args(argc, argv, "11", &uri, &launch_context);
101
+ if (!g_app_info_launch_default_for_uri(RVAL2CSTR(uri),
102
+ RVAL2GAPPLAUNCHCONTEXT(launch_context),
103
+ &error))
104
+ rbgio_raise_error(error);
105
+
106
+ return self;
107
+ }
108
+
109
+ static VALUE
110
+ appinfo_dup(VALUE self)
111
+ {
112
+ return GOBJ2RVAL_UNREF(g_app_info_dup(_SELF(self)));
113
+ }
114
+
115
+ static VALUE
116
+ appinfo_equal(VALUE self, VALUE other)
117
+ {
118
+ return CBOOL2RVAL(g_app_info_equal(_SELF(self), _SELF(other)));
119
+ }
120
+
121
+ static VALUE
122
+ appinfo_get_id(VALUE self)
123
+ {
124
+ return CSTR2RVAL(g_app_info_get_id(_SELF(self)));
125
+ }
126
+
127
+ static VALUE
128
+ appinfo_get_name(VALUE self)
129
+ {
130
+ return CSTR2RVAL(g_app_info_get_name(_SELF(self)));
131
+ }
132
+
133
+ static VALUE
134
+ appinfo_get_display_name(VALUE self)
135
+ {
136
+ return CSTR2RVAL(g_app_info_get_display_name(_SELF(self)));
137
+ }
138
+
139
+ static VALUE
140
+ appinfo_get_description(VALUE self)
141
+ {
142
+ return CSTR2RVAL(g_app_info_get_description(_SELF(self)));
143
+ }
144
+
145
+ static VALUE
146
+ appinfo_get_executable(VALUE self)
147
+ {
148
+ return CSTR2RVAL(g_app_info_get_executable(_SELF(self)));
149
+ }
150
+
151
+ static VALUE
152
+ appinfo_get_commandline(VALUE self)
153
+ {
154
+ return CSTR2RVAL(g_app_info_get_commandline(_SELF(self)));
155
+ }
156
+
157
+ static VALUE
158
+ appinfo_get_icon(VALUE self)
159
+ {
160
+ return GOBJ2RVAL(g_app_info_get_icon(_SELF(self)));
161
+ }
162
+
163
+ typedef gboolean (*LaunchMethod)(GAppInfo *,
164
+ GList *,
165
+ GAppLaunchContext *,
166
+ GError **);
167
+
168
+ static VALUE
169
+ launch_method(LaunchMethod method, int argc, VALUE *argv, VALUE self)
170
+ {
171
+ VALUE rbfiles, rblaunch_context;
172
+ GList *files;
173
+ GAppLaunchContext *launch_context;
174
+ GError *error = NULL;
175
+ gboolean launched;
176
+
177
+ rb_scan_args(argc, argv, "02", &rbfiles, &rblaunch_context);
178
+ launch_context = RVAL2GAPPLAUNCHCONTEXT(rblaunch_context);
179
+ files = GFILEARY2GLIST_ACCEPT_NIL(rbfiles);
180
+ launched = method(_SELF(self), files, launch_context, &error);
181
+ g_list_free(files);
182
+
183
+ if (!launched)
184
+ rbgio_raise_error(error);
185
+
186
+ return self;
187
+ }
188
+
189
+ static VALUE
190
+ appinfo_launch(int argc, VALUE *argv, VALUE self)
191
+ {
192
+ return launch_method(g_app_info_launch, argc, argv, self);
193
+ }
194
+
195
+ static VALUE
196
+ appinfo_supports_files(VALUE self)
197
+ {
198
+ return CBOOL2RVAL(g_app_info_supports_files(_SELF(self)));
199
+ }
200
+
201
+ static VALUE
202
+ appinfo_supports_uris(VALUE self)
203
+ {
204
+ return CBOOL2RVAL(g_app_info_supports_uris(_SELF(self)));
205
+ }
206
+
207
+ static VALUE
208
+ appinfo_launch_uris(int argc, VALUE *argv, VALUE self)
209
+ {
210
+ return launch_method(g_app_info_launch_uris, argc, argv, self);
211
+ }
212
+
213
+ static VALUE
214
+ appinfo_should_show(VALUE self)
215
+ {
216
+ return CBOOL2RVAL(g_app_info_should_show(_SELF(self)));
217
+ }
218
+
219
+ static VALUE
220
+ appinfo_can_delete(VALUE self)
221
+ {
222
+ return CBOOL2RVAL(g_app_info_can_delete(_SELF(self)));
223
+ }
224
+
225
+ static VALUE
226
+ appinfo_delete(VALUE self)
227
+ {
228
+ return CBOOL2RVAL(g_app_info_delete(_SELF(self)));
229
+ }
230
+
231
+ static VALUE
232
+ appinfo_set_as_default_for_type(VALUE self, VALUE value)
233
+ {
234
+ GError *error = NULL;
235
+
236
+ if (!g_app_info_set_as_default_for_type(_SELF(self), RVAL2CSTR(value), &error))
237
+ rbgio_raise_error(error);
238
+
239
+ return self;
240
+ }
241
+
242
+ static VALUE
243
+ appinfo_set_as_default_for_extension(VALUE self, VALUE value)
244
+ {
245
+ GError *error = NULL;
246
+
247
+ if (!g_app_info_set_as_default_for_extension(_SELF(self), RVAL2CSTR(value), &error))
248
+ rbgio_raise_error(error);
249
+
250
+ return self;
251
+ }
252
+
253
+ static VALUE
254
+ appinfo_add_supports_type(VALUE self, VALUE value)
255
+ {
256
+ GError *error = NULL;
257
+
258
+ if (!g_app_info_add_supports_type(_SELF(self), RVAL2CSTR(value), &error))
259
+ rbgio_raise_error(error);
260
+
261
+ return self;
262
+ }
263
+
264
+ static VALUE
265
+ appinfo_remove_supports_type(VALUE self, VALUE value)
266
+ {
267
+ GError *error = NULL;
268
+
269
+ if (!g_app_info_remove_supports_type(_SELF(self), RVAL2CSTR(value), &error))
270
+ rbgio_raise_error(error);
271
+
272
+ return self;
273
+ }
274
+
275
+ static VALUE
276
+ appinfo_can_remove_supports_type(VALUE self)
277
+ {
278
+ return CBOOL2RVAL(g_app_info_can_remove_supports_type(_SELF(self)));
279
+ }
280
+
281
+ void
282
+ Init_gappinfo(VALUE glib)
283
+ {
284
+ VALUE appinfo = G_DEF_INTERFACE(G_TYPE_APP_INFO, "AppInfo", glib);
285
+
286
+ G_DEF_CLASS(G_TYPE_APP_INFO_CREATE_FLAGS, "CreateFlags", appinfo);
287
+ G_DEF_CONSTANTS(appinfo, G_TYPE_APP_INFO_CREATE_FLAGS, "G_APP_INFO_");
288
+
289
+ rb_define_singleton_method(appinfo, "create_from_commandline", appinfo_create_from_commandline, -1);
290
+ rb_define_singleton_method(appinfo, "reset_type_associations", appinfo_reset_type_associations, -1);
291
+ rb_define_singleton_method(appinfo, "all", appinfo_get_all, 0);
292
+ rb_define_singleton_method(appinfo, "get_all_for_type", appinfo_get_all_for_type, 1);
293
+ rb_define_singleton_method(appinfo, "get_default_for_type", appinfo_get_default_for_type, -1);
294
+ rb_define_singleton_method(appinfo, "get_default_for_uri_scheme", appinfo_get_default_for_uri_scheme, 1);
295
+ rb_define_singleton_method(appinfo, "launch_default_for_uri", appinfo_launch_default_for_uri, 0);
296
+
297
+ rb_define_method(appinfo, "dup", appinfo_dup, 0);
298
+ rb_define_method(appinfo, "equal?", appinfo_equal, 1);
299
+ rb_define_method(appinfo, "id", appinfo_get_id, 0);
300
+ rb_define_method(appinfo, "name", appinfo_get_name, 0);
301
+ rb_define_method(appinfo, "display_name", appinfo_get_display_name, 0);
302
+ rb_define_method(appinfo, "description", appinfo_get_description, 0);
303
+ rb_define_method(appinfo, "executable", appinfo_get_executable, 0);
304
+ rb_define_method(appinfo, "commandline", appinfo_get_commandline, 0);
305
+ rb_define_method(appinfo, "icon", appinfo_get_icon, 0);
306
+ rb_define_method(appinfo, "launch", appinfo_launch, -1);
307
+ rb_define_method(appinfo, "supports_files?", appinfo_supports_files, 0);
308
+ rb_define_method(appinfo, "supports_uris?", appinfo_supports_uris, 0);
309
+ rb_define_method(appinfo, "launch_uris", appinfo_launch_uris, -1);
310
+ rb_define_method(appinfo, "should_show?", appinfo_should_show, 0);
311
+ rb_define_method(appinfo, "can_delete?", appinfo_can_delete, 0);
312
+ rb_define_method(appinfo, "delete", appinfo_delete, 0);
313
+ rb_define_method(appinfo, "set_as_default_for_type", appinfo_set_as_default_for_type, 1);
314
+ rb_define_method(appinfo, "set_as_default_for_extension", appinfo_set_as_default_for_extension, 1);
315
+ rb_define_method(appinfo, "add_supports_type", appinfo_add_supports_type, 1);
316
+ rb_define_method(appinfo, "can_remove_supports_type?", appinfo_can_remove_supports_type, 1);
317
+ rb_define_method(appinfo, "remove_supports_type", appinfo_remove_supports_type, 1);
318
+ }