vte 0.90.6
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.
- data/ChangeLog +75 -0
- data/README +34 -0
- data/Rakefile +13 -0
- data/ext/vte/Makefile +162 -0
- data/ext/vte/depend +5 -0
- data/ext/vte/extconf.rb +57 -0
- data/ext/vte/rbvte-access.c +33 -0
- data/ext/vte/rbvte-access.o +0 -0
- data/ext/vte/rbvte-reaper.c +31 -0
- data/ext/vte/rbvte-reaper.o +0 -0
- data/ext/vte/rbvte-terminal.c +1030 -0
- data/ext/vte/rbvte-terminal.o +0 -0
- data/ext/vte/rbvte.c +31 -0
- data/ext/vte/rbvte.h +28 -0
- data/ext/vte/rbvte.o +0 -0
- data/ext/vte/ruby-vte.pc +3 -0
- data/ext/vte/vte.so +0 -0
- data/extconf.rb +49 -0
- data/lib/vte.rb +2 -0
- data/sample/multiterm.rb +103 -0
- data/sample/terminal.rb +28 -0
- metadata +104 -0
Binary file
|
data/ext/vte/rbvte.c
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
|
2
|
+
/**********************************************************************
|
3
|
+
|
4
|
+
rbvte.c -
|
5
|
+
|
6
|
+
$Author: ktou $
|
7
|
+
$Date: 2006/05/17 12:40:47 $
|
8
|
+
|
9
|
+
Copyright (C) 2006 Ruby-GNOME2 Project Team
|
10
|
+
|
11
|
+
**********************************************************************/
|
12
|
+
|
13
|
+
#include "rbvte.h"
|
14
|
+
|
15
|
+
void
|
16
|
+
Init_vte(void)
|
17
|
+
{
|
18
|
+
VALUE mVte;
|
19
|
+
|
20
|
+
mVte = rb_define_module("Vte");
|
21
|
+
|
22
|
+
rb_define_const(mVte, "BUILD_VERSION",
|
23
|
+
rb_ary_new3(3,
|
24
|
+
INT2FIX(VTE_MAJOR_VERSION),
|
25
|
+
INT2FIX(VTE_MINOR_VERSION),
|
26
|
+
INT2FIX(VTE_MICRO_VERSION)));
|
27
|
+
|
28
|
+
Init_vte_access(mVte);
|
29
|
+
Init_vte_reaper(mVte);
|
30
|
+
Init_vte_terminal(mVte);
|
31
|
+
}
|
data/ext/vte/rbvte.h
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
#ifndef __RBVTE_H__
|
2
|
+
#define __RBVTE_H__
|
3
|
+
|
4
|
+
#include <ruby.h>
|
5
|
+
#include <rbgtk.h>
|
6
|
+
|
7
|
+
#include <vte/vte.h>
|
8
|
+
#include <vte/vteaccess.h>
|
9
|
+
#include <vte/reaper.h>
|
10
|
+
|
11
|
+
#ifndef VTE_CHECK_VERSION
|
12
|
+
# include "rbvteversion.h"
|
13
|
+
#endif
|
14
|
+
|
15
|
+
#define RVAL2TERM(obj) (RVAL2GOBJ(obj))
|
16
|
+
#define RVAL2COLOR(obj) ((GdkColor *)RVAL2BOXED(obj, GDK_TYPE_COLOR))
|
17
|
+
#define COLOR2RVAL(obj) (BOXED2RVAL(obj, GDK_TYPE_COLOR))
|
18
|
+
#define RVAL2AA(obj) (RVAL2GENUM(obj, VTE_TYPE_TERMINAL_ANTI_ALIAS))
|
19
|
+
#define RVAL2EB(obj) (RVAL2GENUM(obj, VTE_TYPE_TERMINAL_ERASE_BINDING))
|
20
|
+
#define RVAL2CT(obj) (RVAL2GENUM(obj, GDK_TYPE_CURSOR_TYPE))
|
21
|
+
#define RVAL2PFD(obj) ((PangoFontDescription*)RVAL2BOXED(self, PANGO_TYPE_FONT_DESCRIPTION))
|
22
|
+
#define PFD2RVAL(obj) (BOXED2RVAL(obj, PANGO_TYPE_FONT_DESCRIPTION))
|
23
|
+
|
24
|
+
extern void Init_vte_access(VALUE mVte);
|
25
|
+
extern void Init_vte_reaper(VALUE mVte);
|
26
|
+
extern void Init_vte_terminal(VALUE mVte);
|
27
|
+
|
28
|
+
#endif
|
data/ext/vte/rbvte.o
ADDED
Binary file
|
data/ext/vte/ruby-vte.pc
ADDED
data/ext/vte/vte.so
ADDED
Binary file
|
data/extconf.rb
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'pathname'
|
4
|
+
require 'mkmf'
|
5
|
+
require 'rbconfig'
|
6
|
+
require 'fileutils'
|
7
|
+
|
8
|
+
package = "vte"
|
9
|
+
|
10
|
+
base_dir = Pathname(__FILE__).dirname.expand_path
|
11
|
+
ext_dir = base_dir + "ext" + package
|
12
|
+
mkmf_gnome2_dir = base_dir + 'lib'
|
13
|
+
|
14
|
+
ruby = File.join(RbConfig::CONFIG['bindir'],
|
15
|
+
RbConfig::CONFIG['ruby_install_name'] +
|
16
|
+
RbConfig::CONFIG["EXEEXT"])
|
17
|
+
|
18
|
+
build_dir = Pathname("ext") + package
|
19
|
+
FileUtils.mkdir_p(build_dir.to_s) unless build_dir.exist?
|
20
|
+
extconf_rb_path = ext_dir + "extconf.rb"
|
21
|
+
system(ruby, "-C", build_dir.to_s, extconf_rb_path.to_s, *ARGV) || exit(false)
|
22
|
+
|
23
|
+
create_makefile(package)
|
24
|
+
FileUtils.mv("Makefile", "Makefile.lib")
|
25
|
+
|
26
|
+
File.open("Makefile", "w") do |makefile|
|
27
|
+
makefile.puts(<<-EOM)
|
28
|
+
all:
|
29
|
+
(cd ext/#{package} && $(MAKE))
|
30
|
+
$(MAKE) -f Makefile.lib
|
31
|
+
|
32
|
+
install:
|
33
|
+
(cd ext/#{package} && $(MAKE) install)
|
34
|
+
$(MAKE) -f Makefile.lib install
|
35
|
+
|
36
|
+
site-install:
|
37
|
+
(cd ext/#{package} && $(MAKE) site-install)
|
38
|
+
$(MAKE) -f Makefile.lib site-install
|
39
|
+
|
40
|
+
clean:
|
41
|
+
(cd ext/#{package} && $(MAKE) clean)
|
42
|
+
$(MAKE) -f Makefile.lib clean
|
43
|
+
|
44
|
+
distclean:
|
45
|
+
(cd ext/#{package} && $(MAKE) distclean)
|
46
|
+
$(MAKE) -f Makefile.lib distclean
|
47
|
+
@rm -f Makefile.lib
|
48
|
+
EOM
|
49
|
+
end
|
data/lib/vte.rb
ADDED
data/sample/multiterm.rb
ADDED
@@ -0,0 +1,103 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
=begin
|
3
|
+
multiterm.rb - Ruby/VTE sample script.
|
4
|
+
|
5
|
+
Copyright (c) 2006 Ruby-GNOME2 Project Team
|
6
|
+
This program is licenced under the same licence as Ruby-GNOME2.
|
7
|
+
|
8
|
+
$Id: multiterm.rb,v 1.2 2006/06/17 13:27:51 mutoh Exp $
|
9
|
+
=end
|
10
|
+
|
11
|
+
require "vte"
|
12
|
+
|
13
|
+
class MultiTerm
|
14
|
+
def initialize
|
15
|
+
@terminals = []
|
16
|
+
init_window
|
17
|
+
add_terminal
|
18
|
+
end
|
19
|
+
|
20
|
+
def run
|
21
|
+
@window.show_all
|
22
|
+
@notebook.get_nth_page(@notebook.page).grab_focus
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
26
|
+
def init_window
|
27
|
+
@window = Gtk::Window.new("MultiTerm sample")
|
28
|
+
@window.signal_connect("destroy") do |widget|
|
29
|
+
Gtk.main_quit
|
30
|
+
end
|
31
|
+
init_notebook
|
32
|
+
@window.add(@notebook)
|
33
|
+
end
|
34
|
+
|
35
|
+
def init_notebook
|
36
|
+
@notebook = Gtk::Notebook.new
|
37
|
+
@last_page_index = nil
|
38
|
+
@notebook.signal_connect_after("switch-page") do |widget, page, i|
|
39
|
+
max_page_index = widget.n_pages - 1
|
40
|
+
if max_page_index > 0 and i == max_page_index
|
41
|
+
widget.page = @last_page_index
|
42
|
+
end
|
43
|
+
end
|
44
|
+
@notebook.signal_connect("switch-page") do |widget, page, i|
|
45
|
+
@last_page_index ||= i
|
46
|
+
terminal = widget.get_nth_page(i)
|
47
|
+
if terminal.respond_to?(:window_title)
|
48
|
+
@last_page_index = i
|
49
|
+
update_window_title(terminal.window_title)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
@notebook.tab_reorderable = true if @notebook.respond_to?(:tab_reorderable=)
|
53
|
+
@notebook.scrollable = true
|
54
|
+
init_new_tab_label
|
55
|
+
dummy = Gtk::EventBox.new
|
56
|
+
@notebook.append_page(dummy, @new_tab_label)
|
57
|
+
end
|
58
|
+
|
59
|
+
def init_new_tab_label
|
60
|
+
@new_tab_label = Gtk::EventBox.new
|
61
|
+
@new_tab_label.signal_connect("button-press-event") do |widget, event|
|
62
|
+
add_terminal
|
63
|
+
@notebook.page = @last_page_index
|
64
|
+
true
|
65
|
+
end
|
66
|
+
# @new_tab_label.set_size_request(30, -1)
|
67
|
+
image = Gtk::Image.new(Gtk::Stock::NEW, Gtk::IconSize::MENU)
|
68
|
+
image.show
|
69
|
+
@new_tab_label.add(image)
|
70
|
+
@new_tab_label
|
71
|
+
end
|
72
|
+
|
73
|
+
def destroy
|
74
|
+
@window.destroy
|
75
|
+
end
|
76
|
+
|
77
|
+
def add_terminal
|
78
|
+
terminal = Vte::Terminal.new
|
79
|
+
terminal.signal_connect("child-exited") do |widget|
|
80
|
+
@notebook.remove_page(@notebook.page_num(widget))
|
81
|
+
@terminals.delete(widget)
|
82
|
+
destroy if @terminals.empty?
|
83
|
+
end
|
84
|
+
terminal.signal_connect("window-title-changed") do |widget|
|
85
|
+
@notebook.set_tab_label_text(widget, widget.window_title)
|
86
|
+
update_window_title(widget.window_title)
|
87
|
+
end
|
88
|
+
terminal.set_font("Monospace 14")
|
89
|
+
terminal.fork_command
|
90
|
+
terminal.show
|
91
|
+
last = @notebook.n_pages
|
92
|
+
@notebook.insert_page(last - 1, terminal)
|
93
|
+
@terminals << terminal
|
94
|
+
end
|
95
|
+
|
96
|
+
def update_window_title(title)
|
97
|
+
@window.title = title if title
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
multi_term = MultiTerm.new
|
102
|
+
multi_term.run
|
103
|
+
Gtk.main
|
data/sample/terminal.rb
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
=begin
|
3
|
+
terminal.rb - Ruby/VTE sample script.
|
4
|
+
|
5
|
+
Copyright (c) 2006 Ruby-GNOME2 Project Team
|
6
|
+
This program is licenced under the same licence as Ruby-GNOME2.
|
7
|
+
|
8
|
+
$Id: terminal.rb,v 1.2 2006/06/17 13:27:51 mutoh Exp $
|
9
|
+
=end
|
10
|
+
|
11
|
+
require "vte"
|
12
|
+
|
13
|
+
window = Gtk::Window.new("Terminal sample")
|
14
|
+
window.signal_connect("destroy"){Gtk.main_quit}
|
15
|
+
|
16
|
+
terminal = Vte::Terminal.new
|
17
|
+
terminal.set_font("Monospace 16", Vte::TerminalAntiAlias::FORCE_ENABLE)
|
18
|
+
terminal.signal_connect("child-exited") do |widget|
|
19
|
+
Gtk.main_quit
|
20
|
+
end
|
21
|
+
terminal.signal_connect("window-title-changed") do |widget|
|
22
|
+
window.title = terminal.window_title
|
23
|
+
end
|
24
|
+
terminal.fork_command
|
25
|
+
window.add(terminal)
|
26
|
+
window.show_all
|
27
|
+
|
28
|
+
Gtk.main
|
metadata
ADDED
@@ -0,0 +1,104 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: vte
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 379
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 90
|
9
|
+
- 6
|
10
|
+
version: 0.90.6
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- The Ruby-GNOME2 Proejct Team
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2011-01-30 00:00:00 +09:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
name: gtk2
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 379
|
30
|
+
segments:
|
31
|
+
- 0
|
32
|
+
- 90
|
33
|
+
- 6
|
34
|
+
version: 0.90.6
|
35
|
+
type: :runtime
|
36
|
+
version_requirements: *id001
|
37
|
+
description: Ruby/VTE is a Ruby binding of VTE.
|
38
|
+
email: ruby-gnome2-devel-en@lists.sourceforge.net
|
39
|
+
executables: []
|
40
|
+
|
41
|
+
extensions:
|
42
|
+
- ext/vte/extconf.rb
|
43
|
+
extra_rdoc_files: []
|
44
|
+
|
45
|
+
files:
|
46
|
+
- ChangeLog
|
47
|
+
- README
|
48
|
+
- Rakefile
|
49
|
+
- extconf.rb
|
50
|
+
- lib/vte.rb
|
51
|
+
- ext/vte/rbvte-terminal.c
|
52
|
+
- ext/vte/rbvte-terminal.o
|
53
|
+
- ext/vte/rbvte-reaper.c
|
54
|
+
- ext/vte/rbvte.h
|
55
|
+
- ext/vte/Makefile
|
56
|
+
- ext/vte/rbvte-access.c
|
57
|
+
- ext/vte/extconf.rb
|
58
|
+
- ext/vte/rbvte-access.o
|
59
|
+
- ext/vte/rbvte.c
|
60
|
+
- ext/vte/rbvte-reaper.o
|
61
|
+
- ext/vte/vte.so
|
62
|
+
- ext/vte/depend
|
63
|
+
- ext/vte/ruby-vte.pc
|
64
|
+
- ext/vte/rbvte.o
|
65
|
+
- sample/multiterm.rb
|
66
|
+
- sample/terminal.rb
|
67
|
+
has_rdoc: true
|
68
|
+
homepage: http://ruby-gnome2.sourceforge.jp/
|
69
|
+
licenses: []
|
70
|
+
|
71
|
+
post_install_message:
|
72
|
+
rdoc_options: []
|
73
|
+
|
74
|
+
require_paths:
|
75
|
+
- lib
|
76
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
77
|
+
none: false
|
78
|
+
requirements:
|
79
|
+
- - ">="
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
hash: 61
|
82
|
+
segments:
|
83
|
+
- 1
|
84
|
+
- 8
|
85
|
+
- 5
|
86
|
+
version: 1.8.5
|
87
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
88
|
+
none: false
|
89
|
+
requirements:
|
90
|
+
- - ">="
|
91
|
+
- !ruby/object:Gem::Version
|
92
|
+
hash: 3
|
93
|
+
segments:
|
94
|
+
- 0
|
95
|
+
version: "0"
|
96
|
+
requirements: []
|
97
|
+
|
98
|
+
rubyforge_project:
|
99
|
+
rubygems_version: 1.3.7
|
100
|
+
signing_key:
|
101
|
+
specification_version: 3
|
102
|
+
summary: Ruby/VTE is a Ruby binding of VTE.
|
103
|
+
test_files: []
|
104
|
+
|