From: Aleksi Niemel<aleksi.niemela / cinnober.com> Subject: [ruby-talk:04208] Gtk Wins and scrolls Date: Tue, 25 Jul 2000 13:18:18 +0200 > Two questions about Gtk, both probably quite simple: > > 1) > How one can get Gtk work on Win? Could someone confirm it's working well and > briefly explain the setup? [...] > I suspect the problem is in rather old ruby-gtk-0.23-cygwin, because the > date on the list for it seems to be 2000-03-20 while the gtk-1.3 has been > compiled at 2000-04-15. Could that be the reason? > > Actually I'm even more suspicious the problem is about version > incompatibility because http://www.ruby-lang.org/gtk/en/index.html says: > > Ruby/GTK works with Ruby 1.4.x and GTK+ 1.2.x. > > So perhaps the dll load should fail, as the GTK shipped with Windows > installation kit for GIMP seems to be the version 1.3 instead of 1.2. > > If this is the case, when can we expect an update for Gtk-cygwin? as you are saying above, current version of ruby/gtk is only for gtk 1.2. patch is always welcome, i suppose :) > 2) > I'm really newbie with gtk so enlight me. How should I scroll a window > containing text box to certain location? do you want to scroll a window? or you want to move cursor position in the text widget? i'm attaching an example for scrolling a window widget. let me know if you just want to move the cursor. :) best regards, -- yashi
require 'gtk' # three bottons top = Gtk::Button.new('top') mid = Gtk::Button.new('middle') btm = Gtk::Button.new('bottom') hb = Gtk::HBox.new(true, 0) [top, mid, btm].each do |e| hb.pack_start(e, true, true, 0) end # text area t = Gtk::Text.new t.insert(nil, nil, nil, File.open(__FILE__).read) sw = Gtk::ScrolledWindow.new sw.add t # botton callbacks top.signal_connect('clicked') do adj = sw.get_vadjustment adj.value = adj.lower end mid.signal_connect('clicked') do adj = sw.get_vadjustment adj.value = (adj.upper - adj.lower) / 2 end btm.signal_connect('clicked') do adj = sw.get_vadjustment adj.value = adj.upper end vb = Gtk::VBox.new(false, 0) vb.pack_start(hb, false, true, 0) vb.pack_start(sw, true, true, 0) w = Gtk::Window.new w.add vb w.signal_connect('delete-event') do Gtk.main_quit end w.show_all Gtk.main