knjrbfw 0.0.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 (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