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