All pastes #126568 Raw Edit

Someone

public ruby v1 · immutable
·published 2006-08-11 16:35 UTC
rendered paste body
#!/usr/bin/ruby=begin+----------------+|~~~~~~~~~~~~~~~~||[         ][~~~]||Hp:             ||Atk:            ||Def:            ||Lvl:            ||Xp:             |+----------------+=end# This initializes our libraryrequire 'gtk2'require 'creature_xml'$creature = CreatureXML.new#---------------------------------------## Event handlers#---------------------------------------#def delete_event( widget, event )   puts "delete event occurred."   # Change true to false and the main window will be destroyed with   # a "delete_event".   return falseend# Another callbackdef destroy( widget )   Gtk.main_quitend#---------------------------------------## Window handlers and window decor#---------------------------------------## This is called in all Ruby-GNOME2 applications.Gtk.init# Create a new window.window = Gtk::Window.new( Gtk::Window::TOPLEVEL )# Sets the window title.window.set_title( "Stendhal creature browser" )# Sets the border width of the window.window.set_border_width( 10 )window.signal_connect( "delete_event" ) { # Called when the window is being closed   delete_event( nil, nil )}window.signal_connect( "destroy" ) { # Called if delete_event returned False   destroy( nil )}#---------------------------------------## Actual GUI devlopment#---------------------------------------#container = Gtk::VBox.newname_directions = Gtk::Label.new("Please enter the name of the creature you wish to look up: ")name_box = Gtk::ComboBox.new(true) # true - The items in the list are only strings$creature.get_all_creatures.each_key{ |key|	name_box.append_text key}name_btn = Gtk::Button.new("Update")name_image = Gtk::Image.new(Gtk::Stock::REFRESH, Gtk::IconSize::BUTTON)name_btn.set_image(name_image)name_hbox = Gtk::HBox.newstats_container = Gtk::VBox.newhp_text = Gtk::Label.new("")atk_text = Gtk::Label.new("")def_text = Gtk::Label.new("")lvl_text = Gtk::Label.new("")xp_text = Gtk::Label.new("")stats_container.pack_start hp_textstats_container.pack_start atk_textstats_container.pack_start def_textstats_container.pack_start lvl_textstats_container.pack_start xp_textcontainer.pack_start name_directionsname_hbox.pack_start name_boxname_hbox.pack_start name_btncontainer.pack_start name_hboxcontainer.pack_start stats_containername_btn.signal_connect("clicked") do	stats_container.hide	stats = $creature.get_creature_stats(name_box.active)	hp_text.set_text("Health: #{stats[0]}")	atk_text.set_text("Attack: #{stats[1]}")	def_text.set_text("Defense: #{stats[2]}")	lvl_text.set_text("Level: #{stats[5]}")	xp_text.set_text("Experience gained: #{stats[4]}")	stats_container.showendwindow.add( container )# "show" time!container.showname_directions.showname_box.showname_btn.showname_hbox.showhp_text.showatk_text.showdef_text.showlvl_text.showxp_text.showwindow.show# All Ruby-GNOME2 applications must have a Gtk.main. Control ends here# and waits for an event to occur ( like a key press or mouse event ).Gtk.main