Minimalist fruit basket program in Ruby

  • From: Jamal Mazrui <empower@xxxxxxxxx>
  • To: programmingblind@xxxxxxxxxxxxx
  • Date: Tue, 13 Nov 2007 18:08:19 -0500 (EST)

From the archive at
http://www.EmpowermentZone.com/rb_fruit.zip

This fruit basket program is written in Ruby:  an open source, dynamic
language available at
http://ruby-lang.org

The program uses WxWidgets:  a cross-platform GUI library with Ruby
bindings at
http://WxRuby.RubyForge.net
The calling syntax is made more Ruby-like by a layer of wrappers called
WxSugar.  The batch file, run.bat, executes the program with the Ruby
interpreter for Windows, rubyw.exe.

I have done a Ruby fruit basket program before -- with assistance from Jay
McCarthy.  This one tries to be as simple, short, and readable as possible
using knowledge gained since then.

Jamal

# Content of rb_fruit.rbw
# Fruit basket program in Ruby
# Public domain by Jamal Mazrui

# Load Wx wrappers
require "wx"
require "wx_sugar"

# Import Wx namespace
include Wx

# Define Wx application
App.run do
dlg = Dialog.new(nil, :title => "Fruit Basket")

# Define layout grid
dlg.arrange_grid( :cols => 3, :rows => 2) do
dlg.add(StaticText[:label => "&Fruit:"])
txtFruit = dlg.add(TextCtrl)
btnAdd = dlg.add(Button[:label => "&Add"])
btnAdd.set_default

dlg.add(StaticText[:label => "&Basket:"])
lstBasket = dlg.add(ListBox)
btnDelete = dlg.add(Button[:label => "&Delete"])

# Define Add event handler
dlg.evt_button(btnAdd.get_id) do
sFruit = txtFruit.get_value
if sFruit == ""
message_box("No fruit to add!", "Alert")
else
lstBasket.append(sFruit)
iFruit = lstBasket.get_count - 1
lstBasket.set_selection(iFruit)
txtFruit.clear
end
end

# Define Delete event handler
dlg.evt_button(btnDelete.get_id) do
iFruit = lstBasket.get_selection
if iFruit == -1
message_box("No fruit to Delete!", "Alert")
else
lstBasket.delete(iFruit)
iFruit = iFruit - 1 if iFruit == lstBasket.get_count
lstBasket.set_selection(iFruit)
end
end

end # grid

# Define Close event handler
dlg.evt_close do
exit if message_box("Close program?", "Confirm", YES_NO) == YES
end

# Activate dialog
dlg.show
end # app

# End of rb_fruit.rbw




__________
View the list's information and change your settings at 
//www.freelists.org/list/programmingblind

Other related posts: