Closes #16 : Reusable tileset properties widget
This commit is contained in:
@@ -40,11 +40,26 @@ module Tailor
|
|||||||
|
|
||||||
def init_mainpanel
|
def init_mainpanel
|
||||||
@mainPanel = Wx::Panel.new(self)
|
@mainPanel = Wx::Panel.new(self)
|
||||||
@mainPanelSizer = Wx::BoxSizer.new(Wx::HORIZONTAL)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def on_file_new
|
def on_file_new
|
||||||
@tilesetProperties = Tailor::GUI::TilesetProperties.new(@mainPanelSizer, Wx::ID_ANY)
|
@mainPanelSizer = Wx::BoxSizer.new(Wx::VERTICAL)
|
||||||
|
@mainPanel.set_sizer(@mainPanelSizer)
|
||||||
|
@tilesetProperties = Tailor::GUI::TilesetProperties.new(@mainPanel, Wx::ID_ANY)
|
||||||
|
@mainPanelSizer.add(@tilesetProperties)
|
||||||
|
button = Wx::Button.new(@mainPanel, Wx::ID_ANY, "Click me")
|
||||||
|
evt_button(button.get_id()) { |event| on_clickme(event) }
|
||||||
|
@mainPanelSizer.add(button, 0, Wx::EXPAND|Wx::ALL, 2)
|
||||||
|
@mainPanelSizer.set_size_hints(self)
|
||||||
|
end
|
||||||
|
|
||||||
|
def on_clickme(event)
|
||||||
|
puts "Tile X: #{@tilesetProperties.TileX}"
|
||||||
|
puts "Tile Y: #{@tilesetProperties.TileY}"
|
||||||
|
puts "Pad X: #{@tilesetProperties.PadX}"
|
||||||
|
puts "Pad Y: #{@tilesetProperties.PadY}"
|
||||||
|
puts "Space X: #{@tilesetProperties.SpaceX}"
|
||||||
|
puts "Space Y: #{@tilesetProperties.SpaceY}"
|
||||||
end
|
end
|
||||||
|
|
||||||
def on_file_open
|
def on_file_open
|
||||||
@@ -57,6 +72,8 @@ module Tailor
|
|||||||
end
|
end
|
||||||
|
|
||||||
def on_file_close
|
def on_file_close
|
||||||
|
@mainPanel.set_sizer(nil)
|
||||||
|
@mainPanelSizer = nil
|
||||||
end
|
end
|
||||||
|
|
||||||
def on_help_about
|
def on_help_about
|
||||||
|
|||||||
@@ -3,13 +3,12 @@ require 'wx'
|
|||||||
module Tailor
|
module Tailor
|
||||||
module GUI
|
module GUI
|
||||||
class TilesetProperties < Wx::Panel
|
class TilesetProperties < Wx::Panel
|
||||||
def initialize(parent = nil,
|
def create_method( name, &block )
|
||||||
id = Wx::ID_ANY,
|
self.class.send( :define_method, name, &block )
|
||||||
pos = Wx::DEFAULT_POSITION,
|
end
|
||||||
size = Wx::DEFAULT_SIZE,
|
|
||||||
style = Wx::TAB_TRAVERSAL,
|
def initialize(*args)
|
||||||
name = "TilesetProperties")
|
super(*args)
|
||||||
super(parent, id, pos, size, style, name)
|
|
||||||
values = {
|
values = {
|
||||||
"Tile X" => 32,
|
"Tile X" => 32,
|
||||||
"Tile Y" => 32,
|
"Tile Y" => 32,
|
||||||
@@ -19,12 +18,28 @@ module Tailor
|
|||||||
"Space Y" => 0
|
"Space Y" => 0
|
||||||
}
|
}
|
||||||
@sizer = Wx::BoxSizer.new(Wx::VERTICAL)
|
@sizer = Wx::BoxSizer.new(Wx::VERTICAL)
|
||||||
|
self.set_sizer(@sizer)
|
||||||
values.each_pair do |elem, value|
|
values.each_pair do |elem, value|
|
||||||
tmpsizer = Wx::BoxSizer.new(Wx::HORIZONTAL)
|
tmpsizer = Wx::BoxSizer.new(Wx::HORIZONTAL)
|
||||||
Wx::StaticText.new(tmpsizer, Wx::ID_ANY, elem)
|
tmpsizer.add(Wx::StaticText.new(self,
|
||||||
self.send(elem.gsub(/ /, ''), Wx::TextCtrl.new(tmpsizer, Wx::ID_ANY, value.to_s))
|
Wx::ID_ANY,
|
||||||
|
elem),
|
||||||
|
flag = Wx::EXPAND|Wx::ALIGN_LEFT)
|
||||||
|
elemCtrl = Wx::TextCtrl.new(self,
|
||||||
|
Wx::ID_ANY,
|
||||||
|
value.to_s)
|
||||||
|
tmpsizer.add(elemCtrl, flag = Wx::EXPAND|Wx::ALIGN_RIGHT)
|
||||||
|
|
||||||
|
rubyname = elem.gsub(/ /, '')
|
||||||
|
create_method( "@#{rubyname}=".to_sym ) { |val|
|
||||||
|
elemCtrl.set_value(val)
|
||||||
|
}
|
||||||
|
create_method( "#{rubyname}".to_sym ) {
|
||||||
|
elemCtrl.get_value
|
||||||
|
}
|
||||||
@sizer.add(tmpsizer)
|
@sizer.add(tmpsizer)
|
||||||
end
|
end
|
||||||
|
@sizer.set_size_hints(self)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user