[ANN] Ruby-Wise 0.6.15

Hi!

Ruby-Wise is a native WIdget SEt for Ruby. Currently it can only use X11
(help would be appreciated for other platforms or bindings to toolkits :).

http://members.chello.nl/k.vangelder/ruby/wise/

Ruby-Wise aims at an API that is very friendly to program with, yet allows
advanced features as well. As an example:

require 'wise’
Wise::Label.new(nil, :text=>“Hello, world!”)
Wise::main_thread()

where you’ll notice the lack of any function calls like pack() or show(),
(well, a Label is meant to be shown, right? if you wanna hide it, specify
:map=>false in the call, or call unmap() later).

Ruby-Wise features:

  • basic Window that can do ‘everything’, OO derivation of other widgets,
    this allows for instance cut’n’paste from all text from all widgets,
  • basic widgets: Label, Button, Menu, Choice, Toggle, Input, Multi
    (multi-line label),
  • super widgets: Date, Dialog, Integer (integer input),
  • easy ‘callback’ by means of procs for Buttons, Choice, Toggle and Input
    widgets,
  • a few layout managers, easiest way to use them is using widgets like
    VList or HList,
  • general popup, tooltips,

The best way to acquint yourself with Wise is reading the supplied
test.rb file, which uses many of those widgets, including comments on the
how and why.

Get Wise from http://members.chello.nl/k.vangelder/ruby/wise/

Ruby-Wise is Alpha software, many things have to be worked out (Ruby-side
of handling events, adding images, more widgets) but is rather usable. For
an example of what is already possible, see http://rvv.rubyforge.org/ (and
yes, perhaps I should move Ruby-Wise to RubyForge as well :slight_smile:

Have fun!
Kero.

PS: even shorter would be (not currently featured in Ruby-Wise!)

require 'wise’
Wise::Label.new(“Hello, world!”)
Wise::main_thread()

which makes perfect sense, since a label is about a String
displayed on a screen (and there is no parent window involved; if there
were, Label.new(parent, “text”) would suffice, or perhaps
Label.new(“text”, :parent=>parent). Comments?