mirror of
https://github.com/cyberarm/cyberarm_engine.git
synced 2025-12-16 13:12:34 +00:00
Using Element margin now
This commit is contained in:
@@ -1,8 +1,15 @@
|
||||
module CyberarmEngine
|
||||
class Button < Label
|
||||
def draw
|
||||
@text.draw
|
||||
draw_text
|
||||
draw_button
|
||||
end
|
||||
|
||||
def draw_text
|
||||
@text.draw
|
||||
end
|
||||
|
||||
def draw_button
|
||||
$window.draw_rect(relative_x, relative_y, width, height, @options[:element_background], @z+1)
|
||||
|
||||
if mouse_over? && $window.button_down?(Gosu::MsLeft)
|
||||
|
||||
@@ -69,7 +69,7 @@ module CyberarmEngine
|
||||
end
|
||||
|
||||
def draw
|
||||
Gosu.clip_to(@x, @y, @width + @spacing_x, @height + @spacing_y) do
|
||||
Gosu.clip_to(@x, @y, @width, @height) do
|
||||
background
|
||||
|
||||
Gosu.translate(@scroll_x, @scroll_y) do
|
||||
@@ -116,7 +116,7 @@ module CyberarmEngine
|
||||
end
|
||||
|
||||
def background
|
||||
Gosu.draw_rect(@x, @y, @width + @spacing_x, @height + @spacing_y, @background_color, @z)
|
||||
Gosu.draw_rect(@x, @y, @width, @height, @background_color, @z)
|
||||
end
|
||||
|
||||
def recalculate
|
||||
@@ -126,27 +126,35 @@ module CyberarmEngine
|
||||
@packing_x = 0
|
||||
@packing_y = 0
|
||||
|
||||
@spacing_x = 0
|
||||
@spacing_y = 0
|
||||
|
||||
@spacer = 1
|
||||
|
||||
@width = @origin_width
|
||||
@height= @origin_height
|
||||
|
||||
padded_margin = 0
|
||||
@elements.reverse.each do |e|
|
||||
if defined?(e.margin)
|
||||
padded_margin = e.margin
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
@elements.each do |element|
|
||||
flow(element) if @mode == :flow
|
||||
stack(element) if @mode == :stack
|
||||
|
||||
margin = 0
|
||||
margin = element.margin if defined?(element.margin)
|
||||
case @mode
|
||||
when :flow
|
||||
@width += element.width unless @origin_width.nonzero?
|
||||
@height = element.height if element.height > @height unless @origin_height.nonzero?
|
||||
@width += element.width + margin unless @origin_width.nonzero?
|
||||
@height = element.height + margin if element.height + margin > @height + margin unless @origin_height.nonzero?
|
||||
when :stack
|
||||
@width = element.width if element.width > @width unless @origin_width.nonzero?
|
||||
@height += element.height unless @origin_height.nonzero?
|
||||
@width = element.width + margin if element.width + margin > @width + margin unless @origin_width.nonzero?
|
||||
@height += element.height + margin unless @origin_height.nonzero?
|
||||
end
|
||||
end
|
||||
|
||||
@width += padded_margin unless @origin_width.nonzero?
|
||||
@height += padded_margin unless @origin_height.nonzero?
|
||||
end
|
||||
|
||||
def flow(element)
|
||||
@@ -158,8 +166,8 @@ module CyberarmEngine
|
||||
end
|
||||
element.recalculate
|
||||
|
||||
@packing_x += element.width + @spacer
|
||||
@spacing_x += @spacer
|
||||
@packing_x += element.margin if defined?(element.margin)
|
||||
@packing_x += element.width
|
||||
end
|
||||
|
||||
def stack(element)
|
||||
@@ -171,8 +179,8 @@ module CyberarmEngine
|
||||
element.y = @packing_y
|
||||
element.recalculate
|
||||
|
||||
@packing_y += element.height + @spacer
|
||||
@spacing_y += @spacer
|
||||
@packing_y += element.margin if defined?(element.margin)
|
||||
@packing_y += element.height
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -21,10 +21,11 @@ module CyberarmEngine
|
||||
|
||||
def draw
|
||||
Gosu.clip_to(relative_x, relative_y, width, height) do
|
||||
super
|
||||
|
||||
draw_text
|
||||
Gosu.draw_rect(caret_position, @text.y, @caret_width, @caret_height, @caret_color, @z + 40) if @show_caret
|
||||
end
|
||||
|
||||
draw_button
|
||||
end
|
||||
|
||||
def update
|
||||
@@ -69,8 +70,10 @@ module CyberarmEngine
|
||||
end
|
||||
end
|
||||
|
||||
def width
|
||||
@options[:edit_line_width]
|
||||
def recalculate
|
||||
super
|
||||
|
||||
@width = @options[:edit_line_width]
|
||||
end
|
||||
|
||||
def value
|
||||
|
||||
@@ -16,7 +16,7 @@ module CyberarmEngine
|
||||
checkmark: "√", # √
|
||||
|
||||
padding: 20,
|
||||
margin: 0,
|
||||
margin: 2,
|
||||
|
||||
element_background: Gosu::Color.rgb(12,12,12),
|
||||
|
||||
@@ -91,11 +91,11 @@ module CyberarmEngine
|
||||
end
|
||||
|
||||
def relative_x
|
||||
@parent.x + @parent.scroll_x + @x
|
||||
@parent.x + @parent.scroll_x + @x + @margin
|
||||
end
|
||||
|
||||
def relative_y
|
||||
@parent.y + @parent.scroll_y + @y
|
||||
@parent.y + @parent.scroll_y + @y + @margin
|
||||
end
|
||||
|
||||
def recalculate
|
||||
|
||||
Reference in New Issue
Block a user