Class: Shoes::TextBlock
- Inherits:
-
Common::UIElement
- Object
- Common::UIElement
- Shoes::TextBlock
- Includes:
- Common::Clickable, Common::Hover, Common::LinkFinder, Common::Translate, TextBlockDimensionsDelegations
- Defined in:
- shoes-core/lib/shoes/text_block.rb
Constant Summary collapse
- STYLES =
used in TextBlock specs only
{ font: DEFAULT_TEXTBLOCK_FONT }.freeze
Constants included from TextBlockDimensionsDelegations
Shoes::TextBlockDimensionsDelegations::DELEGATED_METHODS
Constants included from Common::Style
Common::Style::DEFAULT_STYLES, Common::Style::STYLE_GROUPS
Instance Attribute Summary collapse
-
#contents ⇒ Object
readonly
Returns the value of attribute contents.
-
#cursor ⇒ Object
Returns the value of attribute cursor.
-
#text ⇒ Object
Returns the value of attribute text.
-
#text_styles ⇒ Object
readonly
Returns the value of attribute text_styles.
- #textcursor(line_height = 0) ⇒ Object
Attributes included from Common::Hover
Attributes included from Common::Clickable
Attributes inherited from Common::UIElement
#app, #dimensions, #gui, #parent
Instance Method Summary collapse
- #add_to_parent(text) ⇒ Object
- #adjust_current_position(current_position) ⇒ Object
- #centered? ⇒ Boolean
- #contents_alignment(current_position = nil) ⇒ Object
- #create_dimensions(*_) ⇒ Object
- #in_bounds?(*args) ⇒ Boolean
- #links ⇒ Object
- #remove ⇒ Object
- #replace(*texts) ⇒ Object
- #takes_up_space? ⇒ Boolean
- #textcursor? ⇒ Boolean
- #to_s ⇒ Object
Methods included from Common::Translate
#clear_translate, #translate_left, #translate_top
Methods included from Common::LinkFinder
Methods included from Common::Hover
#add_mouse_hover_control, #apply_style_from_hover_class, #apply_style_from_pre_hover, create_hover_class, #eval_hover_block, #hover, #hover_class, #hovered?, #leave, #mouse_hovered, #mouse_left
Methods included from Common::Clickable
#click, #pass_coordinates?, #register_click, #release
Methods inherited from Common::UIElement
#after_initialize, #before_initialize, #create_backend, #handle_block, #initialize, #needs_rotate?, #painted?, #redraw_height, #redraw_left, #redraw_top, #redraw_width, #update_fill, #update_stroke
Methods included from Common::Style
#applicable_app_styles, #create_style_hash, included, #style, #style_init
Methods included from Common::SafelyEvaluate
Methods included from Common::Positioning
Methods included from Common::Visibility
#hidden?, #hidden_from_view?, #hide, #outside_parent_view?, #show, #toggle, #visible?
Methods included from Common::Inspect
Methods included from Common::Attachable
Constructor Details
This class inherits a constructor from Shoes::Common::UIElement
Instance Attribute Details
#contents ⇒ Object (readonly)
Returns the value of attribute contents.
19 20 21 |
# File 'shoes-core/lib/shoes/text_block.rb', line 19 def contents @contents end |
#cursor ⇒ Object
Returns the value of attribute cursor.
21 22 23 |
# File 'shoes-core/lib/shoes/text_block.rb', line 21 def cursor @cursor end |
#text ⇒ Object
Returns the value of attribute text.
19 20 21 |
# File 'shoes-core/lib/shoes/text_block.rb', line 19 def text @text end |
#text_styles ⇒ Object (readonly)
Returns the value of attribute text_styles.
19 20 21 |
# File 'shoes-core/lib/shoes/text_block.rb', line 19 def text_styles @text_styles end |
#textcursor(line_height = 0) ⇒ Object
89 90 91 |
# File 'shoes-core/lib/shoes/text_block.rb', line 89 def textcursor(line_height = 0) @textcursor ||= app.textcursor(line_height) end |
Instance Method Details
#add_to_parent(text) ⇒ Object
30 31 32 33 34 35 36 37 38 |
# File 'shoes-core/lib/shoes/text_block.rb', line 30 def add_to_parent(text) handle_styles @style # Important to use accessor and do this after the backend exists, but # before we place ourselves in the parent container! self.text = Array(text) super end |
#adjust_current_position(current_position) ⇒ Object
85 86 87 |
# File 'shoes-core/lib/shoes/text_block.rb', line 85 def adjust_current_position(current_position) @gui.adjust_current_position(current_position) end |
#centered? ⇒ Boolean
97 98 99 |
# File 'shoes-core/lib/shoes/text_block.rb', line 97 def centered? style[:align] == CENTER end |
#contents_alignment(current_position = nil) ⇒ Object
81 82 83 |
# File 'shoes-core/lib/shoes/text_block.rb', line 81 def contents_alignment(current_position = nil) @gui.contents_alignment(current_position) end |
#create_dimensions(*_) ⇒ Object
26 27 28 |
# File 'shoes-core/lib/shoes/text_block.rb', line 26 def create_dimensions(*_) @dimensions = TextBlockDimensions.new @parent, @style end |
#in_bounds?(*args) ⇒ Boolean
40 41 42 |
# File 'shoes-core/lib/shoes/text_block.rb', line 40 def in_bounds?(*args) @gui.in_bounds?(*args) end |
#links ⇒ Object
101 102 103 |
# File 'shoes-core/lib/shoes/text_block.rb', line 101 def links find_links(contents) end |
#remove ⇒ Object
48 49 50 51 52 53 |
# File 'shoes-core/lib/shoes/text_block.rb', line 48 def remove super links.each do |link| @app.remove_mouse_hover_control(link) end end |
#replace(*texts) ⇒ Object
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'shoes-core/lib/shoes/text_block.rb', line 59 def replace(*texts) opts = texts.pop if texts.last.is_a?(Hash) if opts style(opts) handle_styles(opts) end # Order here matters as well--backend#replace shouldn't rely on DSL state # but the texts that it's passed if it needs information at this point. @gui.replace(*texts) @text = texts.map(&:to_s).join @contents = texts @text_styles = gather_text_styles(self, texts) self end |
#takes_up_space? ⇒ Boolean
44 45 46 |
# File 'shoes-core/lib/shoes/text_block.rb', line 44 def takes_up_space? @style[:align] != "right" end |
#textcursor? ⇒ Boolean
93 94 95 |
# File 'shoes-core/lib/shoes/text_block.rb', line 93 def textcursor? @textcursor end |
#to_s ⇒ Object
77 78 79 |
# File 'shoes-core/lib/shoes/text_block.rb', line 77 def to_s text end |