knjrbfw 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (208) hide show
  1. data/.document +5 -0
  2. data/.rspec +1 -0
  3. data/Gemfile +14 -0
  4. data/Gemfile.lock +32 -0
  5. data/LICENSE.txt +20 -0
  6. data/README.rdoc +19 -0
  7. data/Rakefile +49 -0
  8. data/VERSION +1 -0
  9. data/lib/knj/.gitignore +1 -0
  10. data/lib/knj/arrayext.rb +157 -0
  11. data/lib/knj/autoload/activesupport.rb +2 -0
  12. data/lib/knj/autoload/backups/facets_dictionary.rb +430 -0
  13. data/lib/knj/autoload/backups/parsedate.rb +53 -0
  14. data/lib/knj/autoload/backups/ping.rb +64 -0
  15. data/lib/knj/autoload/cinch.rb +2 -0
  16. data/lib/knj/autoload/erubis.rb +6 -0
  17. data/lib/knj/autoload/facebooker.rb +3 -0
  18. data/lib/knj/autoload/facets_dictionary.rb +7 -0
  19. data/lib/knj/autoload/gd2.rb +2 -0
  20. data/lib/knj/autoload/gettext.rb +9 -0
  21. data/lib/knj/autoload/gtk2.rb +5 -0
  22. data/lib/knj/autoload/json_autoload.rb +7 -0
  23. data/lib/knj/autoload/magick.rb +6 -0
  24. data/lib/knj/autoload/mysql.rb +6 -0
  25. data/lib/knj/autoload/parsedate.rb +1 -0
  26. data/lib/knj/autoload/ping.rb +64 -0
  27. data/lib/knj/autoload/rexml.rb +12 -0
  28. data/lib/knj/autoload/soap.rb +3 -0
  29. data/lib/knj/autoload/sqlite3.rb +6 -0
  30. data/lib/knj/autoload/tmail.rb +6 -0
  31. data/lib/knj/autoload/twitter.rb +2 -0
  32. data/lib/knj/autoload/xmlsimple.rb +6 -0
  33. data/lib/knj/autoload/zip.rb +6 -0
  34. data/lib/knj/autoload.rb +136 -0
  35. data/lib/knj/compiler.rb +53 -0
  36. data/lib/knj/cpufreq.rb +40 -0
  37. data/lib/knj/datarow.rb +256 -0
  38. data/lib/knj/datestamp.rb +91 -0
  39. data/lib/knj/datet.rb +448 -0
  40. data/lib/knj/degulesider.rb +46 -0
  41. data/lib/knj/erb/apache_knjerb.conf +8 -0
  42. data/lib/knj/erb/cache/README +1 -0
  43. data/lib/knj/erb/erb.rb +21 -0
  44. data/lib/knj/erb/erb_1.9.rb +13 -0
  45. data/lib/knj/erb/erb_cache_clean.rb +20 -0
  46. data/lib/knj/erb/erb_fcgi.rb +44 -0
  47. data/lib/knj/erb/erb_fcgi_1.9.rb +44 -0
  48. data/lib/knj/erb/erb_fcgi_jruby.rb +7 -0
  49. data/lib/knj/erb/erb_jruby.rb +22 -0
  50. data/lib/knj/erb/include.rb +248 -0
  51. data/lib/knj/errors.rb +19 -0
  52. data/lib/knj/eruby.rb +224 -0
  53. data/lib/knj/event_filemod.rb +53 -0
  54. data/lib/knj/event_handler.rb +69 -0
  55. data/lib/knj/exchangerates.rb +39 -0
  56. data/lib/knj/ext/webrick.rb +31 -0
  57. data/lib/knj/filesystem.rb +8 -0
  58. data/lib/knj/fs/drivers/filesystem.rb +14 -0
  59. data/lib/knj/fs/drivers/ftp.rb +33 -0
  60. data/lib/knj/fs/drivers/ssh.rb +28 -0
  61. data/lib/knj/fs/fs.rb +36 -0
  62. data/lib/knj/gettext_fallback.rb +17 -0
  63. data/lib/knj/gettext_threadded.rb +77 -0
  64. data/lib/knj/google_sitemap.rb +59 -0
  65. data/lib/knj/gtk2.rb +277 -0
  66. data/lib/knj/gtk2_cb.rb +85 -0
  67. data/lib/knj/gtk2_menu.rb +57 -0
  68. data/lib/knj/gtk2_statuswindow.rb +64 -0
  69. data/lib/knj/gtk2_tv.rb +63 -0
  70. data/lib/knj/hash_methods.rb +37 -0
  71. data/lib/knj/http.rb +190 -0
  72. data/lib/knj/includes/appserver_cli.rb +39 -0
  73. data/lib/knj/ip2location.rb +22 -0
  74. data/lib/knj/ironruby-gtk2/button.rb +19 -0
  75. data/lib/knj/ironruby-gtk2/dialog.rb +44 -0
  76. data/lib/knj/ironruby-gtk2/entry.rb +9 -0
  77. data/lib/knj/ironruby-gtk2/gdk_event.rb +3 -0
  78. data/lib/knj/ironruby-gtk2/gdk_eventbutton.rb +13 -0
  79. data/lib/knj/ironruby-gtk2/gdk_pixbuf.rb +11 -0
  80. data/lib/knj/ironruby-gtk2/gladexml.rb +104 -0
  81. data/lib/knj/ironruby-gtk2/glib.rb +15 -0
  82. data/lib/knj/ironruby-gtk2/gtk2.rb +148 -0
  83. data/lib/knj/ironruby-gtk2/gtk_builder.rb +31 -0
  84. data/lib/knj/ironruby-gtk2/gtk_cellrenderertext.rb +5 -0
  85. data/lib/knj/ironruby-gtk2/gtk_combobox.rb +19 -0
  86. data/lib/knj/ironruby-gtk2/gtk_filechooserbutton.rb +5 -0
  87. data/lib/knj/ironruby-gtk2/gtk_liststore.rb +18 -0
  88. data/lib/knj/ironruby-gtk2/gtk_menu.rb +5 -0
  89. data/lib/knj/ironruby-gtk2/gtk_menuitem.rb +7 -0
  90. data/lib/knj/ironruby-gtk2/gtk_statusicon.rb +8 -0
  91. data/lib/knj/ironruby-gtk2/gtk_treeiter.rb +24 -0
  92. data/lib/knj/ironruby-gtk2/gtk_treeselection.rb +16 -0
  93. data/lib/knj/ironruby-gtk2/gtk_treeview.rb +19 -0
  94. data/lib/knj/ironruby-gtk2/gtk_treeviewcolumn.rb +32 -0
  95. data/lib/knj/ironruby-gtk2/iconsize.rb +3 -0
  96. data/lib/knj/ironruby-gtk2/image.rb +15 -0
  97. data/lib/knj/ironruby-gtk2/label.rb +19 -0
  98. data/lib/knj/ironruby-gtk2/stock.rb +4 -0
  99. data/lib/knj/ironruby-gtk2/tests/test.glade +15 -0
  100. data/lib/knj/ironruby-gtk2/tests/test_2.rb +22 -0
  101. data/lib/knj/ironruby-gtk2/tests/test_ironruby_window.rb +47 -0
  102. data/lib/knj/ironruby-gtk2/vbox.rb +5 -0
  103. data/lib/knj/ironruby-gtk2/window.rb +23 -0
  104. data/lib/knj/jruby-gtk2/builder/test_builder.glade +43 -0
  105. data/lib/knj/jruby-gtk2/builder/test_builder.rb +19 -0
  106. data/lib/knj/jruby-gtk2/builder/test_builder.ui +43 -0
  107. data/lib/knj/jruby-gtk2/builder.rb +27 -0
  108. data/lib/knj/jruby-gtk2/cellrenderertext.rb +12 -0
  109. data/lib/knj/jruby-gtk2/checkbutton.rb +3 -0
  110. data/lib/knj/jruby-gtk2/combobox.rb +29 -0
  111. data/lib/knj/jruby-gtk2/dialog.rb +44 -0
  112. data/lib/knj/jruby-gtk2/eventbutton.rb +21 -0
  113. data/lib/knj/jruby-gtk2/gladexml.rb +99 -0
  114. data/lib/knj/jruby-gtk2/gtk-4.0.jar +0 -0
  115. data/lib/knj/jruby-gtk2/gtk2.rb +246 -0
  116. data/lib/knj/jruby-gtk2/hbox.rb +10 -0
  117. data/lib/knj/jruby-gtk2/iconsize.rb +5 -0
  118. data/lib/knj/jruby-gtk2/image.rb +10 -0
  119. data/lib/knj/jruby-gtk2/liststore.rb +56 -0
  120. data/lib/knj/jruby-gtk2/menu.rb +40 -0
  121. data/lib/knj/jruby-gtk2/progressbar.rb +12 -0
  122. data/lib/knj/jruby-gtk2/statusicon.rb +8 -0
  123. data/lib/knj/jruby-gtk2/stock.rb +8 -0
  124. data/lib/knj/jruby-gtk2/tests/test_glade_window.glade +163 -0
  125. data/lib/knj/jruby-gtk2/tests/test_glade_window.rb +47 -0
  126. data/lib/knj/jruby-gtk2/tests/test_normal_window.rb +17 -0
  127. data/lib/knj/jruby-gtk2/tests/test_trayicon.png +0 -0
  128. data/lib/knj/jruby-gtk2/tests/test_trayicon.rb +18 -0
  129. data/lib/knj/jruby-gtk2/treeview.rb +105 -0
  130. data/lib/knj/jruby-gtk2/vbox.rb +12 -0
  131. data/lib/knj/jruby-gtk2/window.rb +11 -0
  132. data/lib/knj/jruby_compiler.rb +14 -0
  133. data/lib/knj/knj.rb +19 -0
  134. data/lib/knj/knj_controller.rb +13 -0
  135. data/lib/knj/knjdb/dbtime.rb +30 -0
  136. data/lib/knj/knjdb/drivers/mysql/knjdb_mysql.rb +327 -0
  137. data/lib/knj/knjdb/drivers/mysql/knjdb_mysql_columns.rb +130 -0
  138. data/lib/knj/knjdb/drivers/mysql/knjdb_mysql_indexes.rb +30 -0
  139. data/lib/knj/knjdb/drivers/mysql/knjdb_mysql_tables.rb +255 -0
  140. data/lib/knj/knjdb/drivers/sqlite3/knjdb_sqlite3.rb +93 -0
  141. data/lib/knj/knjdb/drivers/sqlite3/knjdb_sqlite3_columns.rb +151 -0
  142. data/lib/knj/knjdb/drivers/sqlite3/knjdb_sqlite3_indexes.rb +29 -0
  143. data/lib/knj/knjdb/drivers/sqlite3/knjdb_sqlite3_tables.rb +300 -0
  144. data/lib/knj/knjdb/libknjdb.rb +438 -0
  145. data/lib/knj/knjdb/libknjdb_java_sqlite3.rb +83 -0
  146. data/lib/knj/knjdb/libknjdb_row.rb +149 -0
  147. data/lib/knj/knjdb/libknjdb_sqlite3_ironruby.rb +69 -0
  148. data/lib/knj/knjdb/mysql-connector-java-5.1.13-bin.jar +0 -0
  149. data/lib/knj/knjdb/sqlitejdbc-v056.jar +0 -0
  150. data/lib/knj/libqt.rb +75 -0
  151. data/lib/knj/libqt_window.rb +10 -0
  152. data/lib/knj/locale_strings.rb +3 -0
  153. data/lib/knj/locales.rb +54 -0
  154. data/lib/knj/maemo/fremantle-calendar/fremantle-calendar.rb +56 -0
  155. data/lib/knj/mail.rb +75 -0
  156. data/lib/knj/mailobj.rb +82 -0
  157. data/lib/knj/mount.rb +115 -0
  158. data/lib/knj/notify.rb +13 -0
  159. data/lib/knj/nvidia_settings.rb +45 -0
  160. data/lib/knj/objects.rb +731 -0
  161. data/lib/knj/opts.rb +38 -0
  162. data/lib/knj/os.rb +158 -0
  163. data/lib/knj/php.rb +717 -0
  164. data/lib/knj/php_parser/arguments.rb +5 -0
  165. data/lib/knj/php_parser/functions.rb +97 -0
  166. data/lib/knj/php_parser/php_parser.rb +99 -0
  167. data/lib/knj/php_parser/tests/test.rb +12 -0
  168. data/lib/knj/php_parser/tests/test_function.php +8 -0
  169. data/lib/knj/php_parser/tests/test_function_run.rb +19 -0
  170. data/lib/knj/power_manager.rb +31 -0
  171. data/lib/knj/rand.rb +10 -0
  172. data/lib/knj/retry.rb +71 -0
  173. data/lib/knj/rhodes/mutex.rb +11 -0
  174. data/lib/knj/rhodes/rhodes.js +3 -0
  175. data/lib/knj/rhodes/rhodes.rb +11 -0
  176. data/lib/knj/rsvgbin.rb +20 -0
  177. data/lib/knj/scripts/degulesider.rb +12 -0
  178. data/lib/knj/scripts/filesearch.rb +51 -0
  179. data/lib/knj/scripts/ip2location.rb +12 -0
  180. data/lib/knj/scripts/keepalive.rb +6 -0
  181. data/lib/knj/scripts/svn_merge.rb +29 -0
  182. data/lib/knj/scripts/upgrade_knjrbfw_checker.rb +41 -0
  183. data/lib/knj/sms.rb +54 -0
  184. data/lib/knj/sshrobot/sshrobot.rb +93 -0
  185. data/lib/knj/strings.rb +65 -0
  186. data/lib/knj/sysuser.rb +27 -0
  187. data/lib/knj/tests/compiler/compiler_test.rb +13 -0
  188. data/lib/knj/tests/compiler/compiler_test_file.rb +62 -0
  189. data/lib/knj/tests/test_degulesider.rb +11 -0
  190. data/lib/knj/tests/test_mount.rb +30 -0
  191. data/lib/knj/tests/test_retry.rb +30 -0
  192. data/lib/knj/thread.rb +32 -0
  193. data/lib/knj/thread2.rb +47 -0
  194. data/lib/knj/threadhandler.rb +130 -0
  195. data/lib/knj/threadpool.rb +177 -0
  196. data/lib/knj/translations.rb +139 -0
  197. data/lib/knj/unix_proc.rb +82 -0
  198. data/lib/knj/web.rb +932 -0
  199. data/lib/knj/webscripts/image.rhtml +82 -0
  200. data/lib/knj/win.rb +4 -0
  201. data/lib/knj/win_registry.rb +60 -0
  202. data/lib/knj/win_tightvnc.rb +127 -0
  203. data/lib/knj/x11vnc.rb +48 -0
  204. data/lib/knj/youtube.rb +38 -0
  205. data/lib/knjrbfw.rb +4 -0
  206. data/spec/knjrbfw_spec.rb +269 -0
  207. data/spec/spec_helper.rb +12 -0
  208. metadata +336 -0
@@ -0,0 +1,148 @@
1
+ require "gdk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f"
2
+ require "gtk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f"
3
+ require "glade-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f"
4
+
5
+
6
+ #Hack Gtk
7
+ RealGtk = Gtk
8
+ RealGtk::Application.init
9
+
10
+ Gtk = Module.new do
11
+ @all = {
12
+ "Gtk" => [
13
+ "Button", "CellRendererText", "ComboBox", "Dialog", "Entry", "Label", "ListStore", "Window", "ProgressBar",
14
+ "VBox", "HBox", "Image", "IconSize", "StatusIcon", "Menu", "MenuItem", "Builder", "CheckButton",
15
+ "FileChooserButton", "TreeView", "TreeViewColumn", "TreeSelection", "TreePath"
16
+ ],
17
+ "Gdk" => [
18
+ "Pixbuf", "Event", "EventButton"
19
+ ]
20
+ }
21
+ @events = {"Gtk" => {}}
22
+
23
+ def self.all; return @all; end;
24
+ def self.events; return @events; end
25
+
26
+ def self.main
27
+ RealGtk::Application.run
28
+ end
29
+
30
+ def self.main_quit
31
+ RealGtk::Application.quit
32
+ end
33
+
34
+ def self.takeob=(newob)
35
+ @takeob = newob
36
+ end
37
+
38
+ def self.takeob
39
+ return @takeob
40
+ end
41
+ end
42
+
43
+
44
+ #Hack Gdk
45
+ RealGdk = Module.const_get("Gdk")
46
+ Gdk = Module.new
47
+ module Gdk
48
+ #nothing here yet.
49
+ end
50
+
51
+
52
+
53
+ Gtk.all.each do |parentclass, classes|
54
+ classes.each do |classname|
55
+ Kernel.const_get(parentclass).const_set(classname, Class.new do
56
+ attr_reader :ob
57
+ attr_writer :ob
58
+
59
+ def initialize(*paras)
60
+ if Gtk.takeob
61
+ @ob = Gtk.takeob
62
+ if !@ob
63
+ raise "Gtk.takeob was not set correctly: " + @ob.class.to_s
64
+ end
65
+
66
+ print "Spawning '#{self.class.to_s}' from default takeob.\n"
67
+
68
+ Gtk.takeob = nil
69
+ else
70
+ splitted = self.class.to_s.split("::")
71
+ realclass = "Real#{splitted.first}"
72
+ classob = Kernel.const_get(realclass).const_get(splitted.last)
73
+
74
+ if !classob
75
+ raise "Class does not exist: " + realclass + "::" + splitted.last
76
+ end
77
+
78
+ print "Spawning '#{self.class.to_s}' from default constructor.\n"
79
+
80
+ @ob = classob.new(*paras)
81
+
82
+ if !@ob
83
+ raise "Object was not spawned: #{self.class.to_s}, #{@ob.class.to_s}, #{realclass}::#{splitted.last}"
84
+ end
85
+ end
86
+ end
87
+
88
+ def signal_connect(signal, &block)
89
+ classname = self.class.to_s.split("::")
90
+
91
+ if Gtk.events[classname[0]] and Gtk.events[classname[0]][classname[1]] and Gtk.events[classname[0]][classname[1]][signal]
92
+ ironevent = Gtk.events[classname[0]][classname[1]][signal]
93
+ end
94
+
95
+ if !ironevent
96
+ raise "No iron-event '#{signal}' for '#{self.class.to_s}'"
97
+ end
98
+
99
+ print "Connected signal '#{signal}' to '#{self.class.to_s}'\n"
100
+
101
+ if !@ob.respond_to?(ironevent)
102
+ #puts @ob.methods.sort
103
+ raise "RealGtk::" + classname[1] + " does not respond to: #{ironevent}."
104
+ end
105
+
106
+ @ob.send(ironevent) do |*args|
107
+ print "Called signal '#{signal}' on '#{self.class.to_s}'\n"
108
+ block.call
109
+ end
110
+ end
111
+
112
+ def method_missing(*paras)
113
+ newparas = []
114
+ first = true
115
+ paras.each do |para|
116
+ if first
117
+ first = false
118
+ else
119
+ splitted = para.class.to_s.split("::")
120
+
121
+ if splitted.first == "Gtk"
122
+ para = para.ob
123
+ elsif splitted.first == "Gdk"
124
+ para = para.ob
125
+ end
126
+
127
+ newparas << para
128
+ end
129
+ end
130
+
131
+ #print "Respond to '#{@ob.class.to_s}' -> '#{paras[0].to_s}'\n"
132
+ if @ob.respond_to?(paras[0].to_s)
133
+ #print "Send '#{@ob.class.to_s}' -> '#{paras[0].to_s}'\n"
134
+ return @ob.send(paras[0], *newparas)
135
+ end
136
+
137
+ #puts @ob.methods.sort
138
+ raise "No such method on #{self.class.name}: #{paras[0]}"
139
+ end
140
+ end
141
+ )
142
+ end
143
+ end
144
+
145
+ files = ["gladexml", "gtk_combobox", "gtk_cellrenderertext", "window", "vbox", "stock", "label", "image", "iconsize", "entry", "dialog", "button", "gtk_builder", "gdk_pixbuf", "gdk_event", "gdk_eventbutton", "gtk_filechooserbutton", "gtk_liststore", "gtk_statusicon", "gtk_menuitem", "gtk_menu", "gtk_treeiter", "gtk_treeview", "gtk_treeviewcolumn", "gtk_treeselection", "glib"]
146
+ files.each do |file|
147
+ require File.dirname(__FILE__) + "/" + file
148
+ end
@@ -0,0 +1,31 @@
1
+ class Gtk::Builder
2
+ def initialize
3
+
4
+ end
5
+
6
+ def add_from_file(filename)
7
+ cont = File.read(filename).gsub("<interface>", "<glade-interface>").gsub("</interface>", "</glade-interface>")
8
+ cont = cont.gsub("<object", "<widget").gsub("</object>", "</widget>")
9
+ cont = cont.gsub("<requires lib=\"gtk+\" version=\"2.16\"\/>", "")
10
+ cont = cont.gsub("<requires lib=\"gtk+\" version=\"2.14\"\/>", "")
11
+ cont = cont.gsub("<child type=\"label\">", "<child>")
12
+ cont = cont.gsub("<child type=\"tab\">", "<child>")
13
+
14
+ @glade = GladeXML.new(cont)
15
+ end
16
+
17
+ def connect_signals(&block)
18
+ @glade.block = block
19
+ @glade.auto_connect(@glade.data)
20
+ end
21
+
22
+ def [](key)
23
+ return @glade[key]
24
+ end
25
+
26
+ alias get_object []
27
+
28
+ def objects
29
+ return []
30
+ end
31
+ end
@@ -0,0 +1,5 @@
1
+ class Gtk::CellRendererText
2
+ def initialize(*paras)
3
+ @ob = RealGtk::CellRendererText.new
4
+ end
5
+ end
@@ -0,0 +1,19 @@
1
+ class Gtk::ComboBox
2
+ def pack_start(widget, val)
3
+ @ob.pack_start(widget.ob, val)
4
+ @ob.add_attribute(widget.ob, "text", 0)
5
+ end
6
+
7
+ def add_attribute(*paras)
8
+ #this should not do anything.
9
+ end
10
+
11
+ def model=(newmodel)
12
+ @model = newmodel
13
+ @ob.model = newmodel.ob
14
+ end
15
+
16
+ def model
17
+ return @model
18
+ end
19
+ end
@@ -0,0 +1,5 @@
1
+ class Gtk::FileChooserButton
2
+ def filename=(newfilename)
3
+ @ob.set_filename(newfilename)
4
+ end
5
+ end
@@ -0,0 +1,18 @@
1
+ class Gtk::ListStore
2
+ def initialize(*args)
3
+ args_cons = []
4
+ args.each do |col_name|
5
+ args_cons << System::String.to_clr_type
6
+ end
7
+
8
+ @ob = RealGtk::ListStore.new(*args_cons)
9
+ end
10
+
11
+ def append
12
+ Gtk.takeob = @ob.append
13
+ retob = Gtk::TreeIter.new
14
+ retob.liststore = self
15
+
16
+ return retob
17
+ end
18
+ end
@@ -0,0 +1,5 @@
1
+ class Gtk::Menu
2
+ def popup(*paras)
3
+ @ob.popup
4
+ end
5
+ end
@@ -0,0 +1,7 @@
1
+ Gtk.events["Gtk"]["MenuItem"] = {
2
+ "activate" => "activated"
3
+ }
4
+
5
+ class Gtk::MenuItem
6
+ #nothing here yet.
7
+ end
@@ -0,0 +1,8 @@
1
+ Gtk.events["Gtk"]["StatusIcon"] = {
2
+ "activate" => "activate",
3
+ "popup-menu" => "popup_menu"
4
+ }
5
+
6
+ class Gtk::StatusIcon
7
+ #nothing here yet.
8
+ end
@@ -0,0 +1,24 @@
1
+ class Gtk::TreeIter
2
+ def initialize(*paras)
3
+ if Gtk.takeob
4
+ print "TreeIter from takeob.\n"
5
+ @ob = Gtk.takeob
6
+ Gtk.takeob = nil
7
+ else
8
+ print "TreeIter from constructor.\n"
9
+ @ob = RealGtk::TreeIter.new(*paras)
10
+ end
11
+ end
12
+
13
+ def liststore=(newliststore)
14
+ @liststore = newliststore
15
+ end
16
+
17
+ def []=(key, value)
18
+ return @liststore.ob.method(:set_value).overload(RealGtk::TreeIter, Fixnum, System::String).call(@ob, key, value)
19
+ end
20
+
21
+ def [](key)
22
+ return @liststore.ob.get_value(@ob, key)
23
+ end
24
+ end
@@ -0,0 +1,16 @@
1
+ Gtk.events["Gtk"]["TreeSelection"] = {
2
+ "changed" => "changed"
3
+ }
4
+
5
+ class Gtk::TreeSelection
6
+ def selected_rows
7
+ ret = []
8
+ sel_rows = @ob.GetSelectedRows
9
+ sel_rows.each do |tpath|
10
+ Gtk.takeob = tpath
11
+ ret << Gtk::TreePath.new
12
+ end
13
+
14
+ return ret
15
+ end
16
+ end
@@ -0,0 +1,19 @@
1
+ class Gtk::TreeView
2
+ def selection
3
+ if !@selection
4
+ Gtk.takeob = @ob.selection
5
+ @selection = Gtk::TreeSelection.new
6
+ end
7
+
8
+ return @selection
9
+ end
10
+
11
+ def model=(newmodel)
12
+ @model = newmodel
13
+ @ob.model = newmodel.ob
14
+ end
15
+
16
+ def model
17
+ return @model
18
+ end
19
+ end
@@ -0,0 +1,32 @@
1
+ class Gtk::TreeViewColumn
2
+ def initialize(title, renderer, *paras)
3
+ @title = title
4
+ @renderer = renderer
5
+
6
+ if Gtk.takeob
7
+ @ob = Gtk.takeob
8
+ if !@ob
9
+ raise "Gtk.takeob was not set correctly: " + @ob.class.to_s
10
+ end
11
+
12
+ Gtk.takeob = nil
13
+ else
14
+ splitted = self.class.to_s.split("::")
15
+ realclass = "Real#{splitted.first}"
16
+ classob = Kernel.const_get(realclass).const_get(splitted.last)
17
+
18
+ if !classob
19
+ raise "Class does not exist: " + realclass + "::" + splitted.last
20
+ end
21
+
22
+ @ob = classob.new
23
+
24
+ if !@ob
25
+ raise "Object was not spawned: #{self.class.to_s}, #{@ob.class.to_s}, #{realclass}::#{splitted.last}"
26
+ end
27
+
28
+ @ob.pack_start(renderer.ob, true)
29
+ #@ob.add_attribute(renderer.ob, "text", 0)
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,3 @@
1
+ class Gtk::IconSize
2
+ DIALOG = RealGtk::IconSize.Dialog
3
+ end
@@ -0,0 +1,15 @@
1
+ class Gtk::Image
2
+ def initialize(*paras)
3
+ if Gtk.takeob
4
+ @ob = Gtk.takeob
5
+ Gtk.takeob = nil
6
+ else
7
+ splitted = self.class.to_s.split("::")
8
+ @ob = RealGtk.const_get(splitted.last).new(*paras)
9
+ end
10
+
11
+ if !@ob
12
+ raise "Object was not spawned: #{self.class.to_s}"
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,19 @@
1
+ class Gtk::Label
2
+ def initialize(title = "")
3
+ if Gtk.takeob
4
+ @ob = Gtk.takeob
5
+ Gtk.takeob = nil
6
+ else
7
+ splitted = self.class.to_s.split("::")
8
+ @ob = RealGtk.const_get(splitted.last).new(title)
9
+ end
10
+
11
+ if !@ob
12
+ raise "Object was not spawned: #{self.class.to_s}"
13
+ end
14
+ end
15
+
16
+ def label=(newlabel)
17
+ @ob.label_prop = newlabel
18
+ end
19
+ end
@@ -0,0 +1,4 @@
1
+ module Gtk::Stock
2
+ OK = RealGtk::Stock.Ok
3
+ DIALOG_WARNING = RealGtk::Stock.DialogWarning
4
+ end
@@ -0,0 +1,15 @@
1
+ <?xml version="1.0"?>
2
+ <glade-interface>
3
+ <!-- interface-requires gtk+ 2.8 -->
4
+ <!-- interface-naming-policy project-wide -->
5
+ <widget class="GtkWindow" id="window">
6
+ <child>
7
+ <widget class="GtkButton" id="button1">
8
+ <property name="label" translatable="yes">button</property>
9
+ <property name="visible">True</property>
10
+ <property name="can_focus">True</property>
11
+ <property name="receives_default">True</property>
12
+ </widget>
13
+ </child>
14
+ </widget>
15
+ </glade-interface>
@@ -0,0 +1,22 @@
1
+ require "knj/autoload"
2
+
3
+ class MainWindow
4
+ def initialize
5
+ button = Gtk::Button.new("Test")
6
+
7
+ button.signal_connect("clicked") do
8
+ Gtk.main_quit
9
+ end
10
+
11
+ win = Gtk::Window.new
12
+ win.add button
13
+ win.show_all
14
+ end
15
+
16
+ def on_button1_clicked(object, event)
17
+ print "hmm\n"
18
+ end
19
+ end
20
+
21
+ main_window = MainWindow.new
22
+ Gtk.main
@@ -0,0 +1,47 @@
1
+ require "gtk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f"
2
+ require "glade-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f"
3
+
4
+ RealGtk = Gtk
5
+ RealGtk::Application.init
6
+
7
+ Gtk = Class.new do
8
+ class Window
9
+ def initialize(title = "")
10
+ @ob = RealGtk::Window.new(title)
11
+ end
12
+
13
+ def add(widget)
14
+ @ob.add(widget.ob)
15
+ end
16
+
17
+ def show_all
18
+ @ob.show_all
19
+ end
20
+ end
21
+
22
+ class Button
23
+ def initialize(title = nil)
24
+ @ob = RealGtk::Button.new(title)
25
+ end
26
+
27
+ def ob
28
+ return @ob
29
+ end
30
+
31
+ def signal_connect(signal, &block)
32
+ @ob.send(signal) do |sender, e|
33
+ block.call
34
+ end
35
+ end
36
+ end
37
+
38
+ def self.main
39
+ RealGtk::Application.run
40
+ end
41
+
42
+ def self.main_quit
43
+ RealGtk::Application.quit
44
+ end
45
+ end
46
+
47
+ require "test_2.rb"
@@ -0,0 +1,5 @@
1
+ class Gtk::VBox
2
+ def pack_start(widget, arg1 = false, arg2 = false)
3
+ @ob.PackStart(widget.ob)
4
+ end
5
+ end
@@ -0,0 +1,23 @@
1
+ Gtk.events["Gtk"]["Window"] = {
2
+ "destroy" => "destroyed"
3
+ }
4
+
5
+ class Gtk::Window
6
+ def initialize(title = "")
7
+ if Gtk.takeob
8
+ @ob = Gtk.takeob
9
+ Gtk.takeob = nil
10
+ else
11
+ splitted = self.class.to_s.split("::")
12
+ @ob = RealGtk.const_get(splitted.last).new(title)
13
+ end
14
+
15
+ if !@ob
16
+ raise "Object was not spawned: #{self.class.to_s}"
17
+ end
18
+ end
19
+
20
+ def add(widget)
21
+ @ob.add(widget.ob)
22
+ end
23
+ end
@@ -0,0 +1,43 @@
1
+ <?xml version="1.0"?>
2
+ <glade-interface>
3
+ <!-- interface-requires gtk+ 2.8 -->
4
+ <!-- interface-naming-policy project-wide -->
5
+ <widget class="GtkWindow" id="window1">
6
+ <signal name="destroy" handler="on_window1_destroy"/>
7
+ <child>
8
+ <widget class="GtkHBox" id="hbox1">
9
+ <property name="visible">True</property>
10
+ <child>
11
+ <widget class="GtkButton" id="button1">
12
+ <property name="label" translatable="yes">button</property>
13
+ <property name="visible">True</property>
14
+ <property name="can_focus">True</property>
15
+ <property name="receives_default">True</property>
16
+ </widget>
17
+ <packing>
18
+ <property name="position">0</property>
19
+ </packing>
20
+ </child>
21
+ <child>
22
+ <widget class="GtkLabel" id="label1">
23
+ <property name="visible">True</property>
24
+ <property name="label" translatable="yes">label</property>
25
+ </widget>
26
+ <packing>
27
+ <property name="position">1</property>
28
+ </packing>
29
+ </child>
30
+ <child>
31
+ <widget class="GtkEntry" id="entry1">
32
+ <property name="visible">True</property>
33
+ <property name="can_focus">True</property>
34
+ <property name="invisible_char">&#x25CF;</property>
35
+ </widget>
36
+ <packing>
37
+ <property name="position">2</property>
38
+ </packing>
39
+ </child>
40
+ </widget>
41
+ </child>
42
+ </widget>
43
+ </glade-interface>
@@ -0,0 +1,19 @@
1
+ require "knj/autoload"
2
+
3
+ class TestWindow
4
+ def initialize
5
+ @gui = Gtk::Builder.new
6
+ @gui.add_from_file("test_builder.ui")
7
+ @gui.connect_signals(){|h|method(h)}
8
+
9
+ @gui["window1"].show_all
10
+ end
11
+
12
+ def on_window1_destroy
13
+ Gtk.main_quit
14
+ end
15
+ end
16
+
17
+ TestWindow.new
18
+
19
+ Gtk.main
@@ -0,0 +1,43 @@
1
+ <?xml version="1.0"?>
2
+ <interface>
3
+ <!-- interface-requires gtk+ 2.8 -->
4
+ <!-- interface-naming-policy project-wide -->
5
+ <object class="GtkWindow" id="window1">
6
+ <signal name="destroy" handler="on_window1_destroy"/>
7
+ <child>
8
+ <object class="GtkHBox" id="hbox1">
9
+ <property name="visible">True</property>
10
+ <child>
11
+ <object class="GtkButton" id="button1">
12
+ <property name="label" translatable="yes">button</property>
13
+ <property name="visible">True</property>
14
+ <property name="can_focus">True</property>
15
+ <property name="receives_default">True</property>
16
+ </object>
17
+ <packing>
18
+ <property name="position">0</property>
19
+ </packing>
20
+ </child>
21
+ <child>
22
+ <object class="GtkLabel" id="label1">
23
+ <property name="visible">True</property>
24
+ <property name="label" translatable="yes">label</property>
25
+ </object>
26
+ <packing>
27
+ <property name="position">1</property>
28
+ </packing>
29
+ </child>
30
+ <child>
31
+ <object class="GtkEntry" id="entry1">
32
+ <property name="visible">True</property>
33
+ <property name="can_focus">True</property>
34
+ <property name="invisible_char">&#x25CF;</property>
35
+ </object>
36
+ <packing>
37
+ <property name="position">2</property>
38
+ </packing>
39
+ </child>
40
+ </object>
41
+ </child>
42
+ </object>
43
+ </interface>
@@ -0,0 +1,27 @@
1
+ class Gtk::Builder
2
+ def initialize
3
+
4
+ end
5
+
6
+ def add_from_file(filename)
7
+ cont = File.read(filename).gsub("<interface>", "<glade-interface>").gsub("</interface>", "</glade-interface>")
8
+ cont = cont.gsub("<object", "<widget").gsub("</object>", "</widget>")
9
+ cont = cont.gsub("<requires lib=\"gtk+\" version=\"2.16\"\/>", "")
10
+ cont = cont.gsub("<requires lib=\"gtk+\" version=\"2.14\"\/>", "")
11
+ cont = cont.gsub("<child type=\"label\">", "<child>")
12
+ cont = cont.gsub("<child type=\"tab\">", "<child>")
13
+
14
+ @glade = GladeXML.new(cont)
15
+ end
16
+
17
+ def connect_signals(&block)
18
+ @glade.block = block
19
+ @glade.auto_connect(@glade.data)
20
+ end
21
+
22
+ def [](key)
23
+ return @glade[key]
24
+ end
25
+
26
+ alias get_object []
27
+ end
@@ -0,0 +1,12 @@
1
+ class Gtk::CellRendererText
2
+ def initialize
3
+ if Gtk.takeob
4
+ @ob = Gtk.takeob
5
+ Gtk.takeob = nil
6
+ end
7
+ end
8
+
9
+ def init(tcol)
10
+ @ob = org.gnome.gtk.CellRendererText.new(tcol.ob)
11
+ end
12
+ end
@@ -0,0 +1,3 @@
1
+ class Gtk::CheckButton
2
+ #nothing here yet... once there were something here... but that was a long long time ago...
3
+ end