Class: ExampleApp::GlassPanel
- Inherits:
-
Zif::UI::NinePanel
- Object
- Zif::Sprite
- Zif::CompoundSprite
- Zif::UI::NinePanel
- ExampleApp::GlassPanel
- Defined in:
- app/ui/panels/glass_panel.rb
Overview
The Kenney UI Space pack has transparent panels with optional cut corners. This is a normal nine slice where each corner has two options.
Constant Summary collapse
- SPRITES_PATH =
'sprites/kenney-uipack-space/danhealy-modified'.freeze
- CUT_CORNER =
"#{SPRITES_PATH}/glass_cut_corner.png".freeze
- ROUND_CORNER =
"#{SPRITES_PATH}/glass_round_corner.png".freeze
- WIDTH =
16
Constants inherited from Zif::Sprite
Instance Attribute Summary collapse
-
#cuts ⇒ Object
Returns the value of attribute cuts.
Attributes inherited from Zif::UI::NinePanel
Attributes inherited from Zif::CompoundSprite
Attributes inherited from Zif::Sprite
#a, #angle, #b, #g, #h, #logical_x, #logical_y, #name, #path, #r, #render_target, #source_h, #source_w, #source_x, #source_y, #w, #x, #y, #z_index
Attributes included from Zif::Clickable
#on_mouse_changed, #on_mouse_down, #on_mouse_up
Attributes included from Zif::Actions::Animatable
#animation_sequences, #cur_animation
Attributes included from Zif::Actions::Actionable
Instance Method Summary collapse
- #change_cuts(cut_corners) ⇒ Object
-
#initialize(width, height, cut_corners = [false, false, false, false], name = Zif.unique_name('glass_panel')) ⇒ GlassPanel
constructor
A new instance of GlassPanel.
- #resize_height(height) ⇒ Object
- #resize_width(width) ⇒ Object
Methods inherited from Zif::UI::NinePanel
#height, #height=, #lower_left_corner, #lower_left_corner=, #lower_left_edge, #lower_left_edge=, #lower_right_corner, #lower_right_corner=, #lower_right_edge, #lower_right_edge=, #resize, #sprites, #upper_left_corner, #upper_left_corner=, #upper_left_edge, #upper_left_edge=, #upper_right_corner, #upper_right_corner=, #upper_right_edge, #upper_right_edge=, #width, #width=
Methods inherited from Zif::CompoundSprite
Methods inherited from Zif::Sprite
#blend, #blend=, #center, #center_x, #center_y, #clicked?, #color, #color=, #dup_and_assign, #exclude_from_serialize, #hide, #rect, rect_array_to_hash, rect_array_to_source_hash, #rect_hash, rect_hash_to_source_hash, #show, #source_as_rect_hash, #source_center, #source_is_set?, #source_rect, #source_rect_hash, #source_wh, #source_xy, #to_h, #view_actual_size!, #wh, #xy, #zoom_factor
Methods included from Zif::Clickable
Methods included from Zif::Actions::Animatable
#new_basic_animation, #new_tiled_animation, #register_animation_sequence, #run_animation_sequence, #stop_animating
Methods included from Zif::Actions::Actionable
#bounce_forever_around, #delayed_action, #fade_in, #fade_out, #fade_out_and_in_forever, #new_action, #perform_actions, #run_action, #running_actions?, #stop_action
Methods included from Zif::Serializable
#exclude_from_serialize, #inspect, #serialize, #to_s
Methods included from Zif::Assignable
Constructor Details
#initialize(width, height, cut_corners = [false, false, false, false], name = Zif.unique_name('glass_panel')) ⇒ GlassPanel
Returns a new instance of GlassPanel.
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'app/ui/panels/glass_panel.rb', line 12 def initialize(width, height, cut_corners=[false, false, false, false], name=Zif.unique_name('glass_panel')) super(name) self.upper_left_corner = Zif::Sprite.new.tap do |s| s.x = 0 s.w = WIDTH s.h = WIDTH end self.upper_right_corner = Zif::Sprite.new.tap do |s| s.w = WIDTH s.h = WIDTH s.flip_horizontally = true end self.lower_right_corner = Zif::Sprite.new.tap do |s| s.y = 0 s.w = WIDTH s.h = WIDTH s.flip_vertically = true s.flip_horizontally = true end self.lower_left_corner = Zif::Sprite.new.tap do |s| s.x = 0 s.y = 0 s.w = WIDTH s.h = WIDTH s.flip_vertically = true end self.upper_edge = Zif::Sprite.new.tap do |s| s.x = WIDTH s.h = WIDTH s.path = "#{SPRITES_PATH}/glass_side.png" end self.right_edge = Zif::Sprite.new.tap do |s| s.y = WIDTH s.w = WIDTH s.path = "#{SPRITES_PATH}/glass_side_right.png" end self.lower_edge = Zif::Sprite.new.tap do |s| s.x = WIDTH s.y = 0 s.h = WIDTH s.path = "#{SPRITES_PATH}/glass_side.png" s.flip_vertically = true end self.left_edge = Zif::Sprite.new.tap do |s| s.x = 0 s.y = WIDTH s.w = WIDTH s.path = "#{SPRITES_PATH}/glass_side_right.png" s.flip_horizontally = true end @fill = Zif::Sprite.new.tap do |s| s.x = WIDTH s.y = WIDTH s.path = "#{SPRITES_PATH}/glass_center.png" end resize(width, height) change_cuts(cut_corners) end |
Instance Attribute Details
#cuts ⇒ Object
Returns the value of attribute cuts.
10 11 12 |
# File 'app/ui/panels/glass_panel.rb', line 10 def cuts @cuts end |
Instance Method Details
#change_cuts(cut_corners) ⇒ Object
81 82 83 84 85 86 87 |
# File 'app/ui/panels/glass_panel.rb', line 81 def change_cuts(cut_corners) @cuts = cut_corners lower_left_corner.path = cut_corners[0] ? CUT_CORNER : ROUND_CORNER lower_right_corner.path = cut_corners[1] ? CUT_CORNER : ROUND_CORNER upper_right_corner.path = cut_corners[2] ? CUT_CORNER : ROUND_CORNER upper_left_corner.path = cut_corners[3] ? CUT_CORNER : ROUND_CORNER end |
#resize_height(height) ⇒ Object
102 103 104 105 106 107 108 109 110 111 112 113 |
# File 'app/ui/panels/glass_panel.rb', line 102 def resize_height(height) return if @h == height @h = height upper_left_corner.y = @h - WIDTH upper_right_corner.y = @h - WIDTH upper_edge.y = @h - WIDTH right_edge.h = @h - 2 * WIDTH left_edge.h = @h - 2 * WIDTH @fill.h = @h - 2 * WIDTH end |
#resize_width(width) ⇒ Object
89 90 91 92 93 94 95 96 97 98 99 100 |
# File 'app/ui/panels/glass_panel.rb', line 89 def resize_width(width) return if @w == width @w = width upper_right_corner.x = @w - WIDTH lower_right_corner.x = @w - WIDTH upper_edge.w = @w - 2 * WIDTH right_edge.x = @w - WIDTH lower_edge.w = @w - 2 * WIDTH @fill.w = @w - 2 * WIDTH end |