Class: LCDProc::Widgets::String

Inherits:
Object
  • Object
show all
Includes:
LCDProc::Widget
Defined in:
lib/lcdproc/widgets/string.rb

Constant Summary collapse

@@widget_count =
0

Instance Attribute Summary collapse

Attributes included from LCDProc::Widget

#id, #screen, #type, #visible

Instance Method Summary collapse

Methods included from LCDProc::Widget

add_support, #attach_to, #detach, #hide, new, #show, supported_types

Constructor Details

#initialize(id = "StringWidget_#{@@widget_count}", text = "Hello", col = 1, row = 1) ⇒ String

Creates a new String widget which can then be displayed anywhere on the screen.

  • :id - A unique string which identifies this widget. Defaults to “StringWidget_” + a sequence number.

  • :text - The text that you wish to display on the screen. Default to “Hello”.

  • :col - The column in which you wish to display the text on screen. Defaults to 1.

  • :row - The row in which you wish to display the text on screen. Defaults to 1.

Example:

w = String.new

or

w = String.new( 'Test', 'This is a string', 1, 5 )


54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/lcdproc/widgets/string.rb', line 54

def initialize( id = "StringWidget_#{@@widget_count}", text = "Hello", col = 1, row = 1 )
  if id.nil?
    id = "StringWidget_#{@@widget_count}"
  end
  
  @id = id
  @type = :string
  @screen = nil
  @visible = false
  
  @widget_text = text
  @x = col
  @y = row
  
  @@widget_count += 1
end

Instance Attribute Details

#widget_textObject

Returns the value of attribute widget_text.



35
36
37
# File 'lib/lcdproc/widgets/string.rb', line 35

def widget_text
  @widget_text
end

#xObject

Returns the value of attribute x.



35
36
37
# File 'lib/lcdproc/widgets/string.rb', line 35

def x
  @x
end

#yObject

Returns the value of attribute y.



35
36
37
# File 'lib/lcdproc/widgets/string.rb', line 35

def y
  @y
end

Instance Method Details

#updateObject

Sends to command to the LCDd server to update the widget on screen



73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
# File 'lib/lcdproc/widgets/string.rb', line 73

def update
  if @screen
    response = @screen.client.send_command( Command.new( "widget_set #{@screen.id} #{self.id} #{@x} #{@y} \"#{@widget_text}\"" ) )
    
    if response.successful?
      @screen.client.add_message( "Widget '#{@id}' was successfully updated" )
      return true
    else
      @screen.client.add_message( "Error: Widget '#{@id}' was NOT successfully updated (#{response.message})" )
      return true
    end
  else
    @screen.client.add_message( "Error: Cannot update Widget '#{@id}' until it is attached to a screen" )
    return false
  end
end