Skip to content

Commit

Permalink
Dependency renamed to Toolkit and textfield class started
Browse files Browse the repository at this point in the history
  • Loading branch information
lancecarlson committed May 7, 2008
1 parent b5abdfe commit b80a9c8
Show file tree
Hide file tree
Showing 8 changed files with 46 additions and 22 deletions.
2 changes: 1 addition & 1 deletion anvil-gui-fox/lib/anvil-gui-fox.rb
Expand Up @@ -4,4 +4,4 @@
require File.join(File.dirname(__FILE__), "anvil-gui-fox", file)
end

require 'anvil-gui'
require 'anvil-gui' unless Anvil::GUI.const_defined? "Initializer"
2 changes: 1 addition & 1 deletion anvil-gui/lib/anvil-gui.rb
@@ -1,3 +1,3 @@
%w(initializer dependency view window).each do |file|
%w(initializer toolkit view window).each do |file|
require File.join(File.dirname(__FILE__), "anvil-gui", file)
end
15 changes: 8 additions & 7 deletions anvil-gui/lib/anvil-gui/initializer.rb
@@ -1,24 +1,25 @@
module Anvil
module GUI
class Initializer
attr_reader :app, :dependency
attr_reader :app, :toolkit

def initialize(toolkit)
@toolkit = toolkit
@dependency = Dependency.new @toolkit

@toolkit = initialize_toolkit(toolkit)
check_existance

@app = initialize_app
end

def check_existance
unless @dependency.exists?
puts "#{@dependency.name} is missing, please install the #{@dependency.package} gem."
unless @toolkit.exists?
puts "#{@toolkit.name} is missing, please install the #{@toolkit.package} gem."
exit
end
end

def initialize_toolkit(toolkit)
Toolkit.new self, toolkit
end

def initialize_app
load_gui_constant(@toolkit, "App").new
end
Expand Down
21 changes: 21 additions & 0 deletions anvil-gui/lib/anvil-gui/text_field.rb
@@ -0,0 +1,21 @@
module Anvil
module GUI
class TextField
attr_accessor :text

def initialize(toolkit)
@toolkit = toolkit
@name = name
@real_window = create
end

def create
load_gui_constant(@toolkit, "TextField").new @toolkit.initializer.app, @name
end

def button(name, options = {})
load_gui_constant(@toolkit, "Button").new @real_window, name
end
end
end
end
@@ -1,9 +1,10 @@
module Anvil
module GUI
class Dependency
attr_reader :name
class Toolkit
attr_reader :name, :initializer

def initialize(name)
def initialize(initializer, name)
@initializer = initializer
@name = name
require_package
end
Expand Down
8 changes: 4 additions & 4 deletions anvil-gui/lib/anvil-gui/view.rb
Expand Up @@ -3,14 +3,14 @@ module GUI
def window(name, options = {}, &block)
# Setting default GUI Toolkit to FOX for now. Need to change later
toolkit_name = options[:toolkit] = :Fox
toolkit = initialize_toolkit(toolkit_name)
window = Window.new toolkit, name
initializer = initialize_toolkit(toolkit_name)
window = Window.new initializer.toolkit, name
window.instance_eval(&block) if block
toolkit.run_app
initializer.run_app
end

def load_gui_constant(toolkit, constant)
eval("#{toolkit.dependency.constant}::#{constant}")
eval("#{toolkit.constant}::#{constant}")
end

private
Expand Down
2 changes: 1 addition & 1 deletion anvil-gui/lib/anvil-gui/window.rb
Expand Up @@ -8,7 +8,7 @@ def initialize(toolkit, name)
end

def create
load_gui_constant(@toolkit, "Window").new @toolkit.app, @name
load_gui_constant(@toolkit, "Window").new @toolkit.initializer.app, @name
end

def button(name, options = {})
Expand Down
11 changes: 6 additions & 5 deletions anvil-gui/spec/anvil-gui/view_spec.rb
@@ -1,11 +1,12 @@
require File.join(File.dirname(__FILE__), "..", "spec_helper")

include Anvil::GUI

describe Anvil::GUI, "window" do
it "should be friggin cool" do
window "Test Window" do
button "Click me!"
describe "The DSL for" do
describe Anvil::GUI, "window" do
it "should be friggin cool" do
window "Test Window" do
button "Click me!"
end
end
end
end

0 comments on commit b80a9c8

Please sign in to comment.