Pastie now auto-senses if line-wrap is a bad or good idea. Feedback?
## mark a section (Learn more)
#Copyright (C) 2006-2007 by Han Dao # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # #You can contract the author at wikipediankiba@gmail.com #PROJECT: Rbgooey #DESCRIPTION: A GUI library for the rubygame library. #FUNCTION OF THIS PART: This is the main class that handle various screen objects, along with fonts, colors, and other basic info. class Main attr_accessor :screen , :font , :bgcolor , :fgcolor , :size , :fname , :background , :x , :y def initialize @screen = screen @background = background @font = font @bgcolor = bgcolor @fgcolor = fgcolor @size = size @fname = fname @x = x @y = y end #setup screen def screen_set width , height , cursor = true @x = width @y = height @screen = Rubygame::Screen.set_mode([width,height],0, [Rubygame::HWSURFACE, Rubygame::DOUBLEBUF]) @screen.show_cursor = cursor @background = Rubygame::Surface.new(@screen.size) end def widtheight x , y @x = x @y = y @screen = Rubygame::Screen.set_mode([x,y],0, [Rubygame::HWSURFACE, Rubygame::DOUBLEBUF]) @background = Rubygame::Surface.new(@screen.size) end def fullscreen @screen = Rubygame::Screen.set_mode([@x,@y],0, [Rubygame::HWSURFACE, Rubygame::DOUBLEBUF, Rubygame::FULLSCREEN]) end def font_set location , size @size = size @fname = location #Load a TTF file and set the size of the TFF file provided @font = TTF.new("#{location}",@size) end def screen_clear @background.blit(@screen, [0,0]) end def background_cleanup @background.draw_filled_box([0,0], [@x,@y] , [0,0,0] ) end end require"rubygems" require"rubygame" string = [] string += Dir.glob('rbgooey/lib/*.rb') string.each do |data| require(data) end include Rubygame context "A new Main object" do setup do @main = Main.new end specify "should have all of their instance variables empty" do @main.screen.should == nil @main.background.should == nil @main.font.should == nil @main.bgcolor.should == nil @main.fgcolor.should == nil @main.size.should == nil @main.y.should == nil end specify "should have variable @screen.size return 800 , 600 when 'set_new(800,600)' is called" do @main.set_new(800,600) @main.screen.size.should == [800,600] end end
This paste will be private.
From the Design Piracy series on my blog: