Method: MiniGL::TextField#draw

Defined in:
lib/minigl/forms.rb

#draw(alpha = 0xff, z_index = 0, color = 0xffffff, disabled_color = 0x808080) ⇒ Object

Draws the text field in the screen.

Parameters:

alpha

The opacity with which the text field will be drawn. Allowed values vary between 0 (fully transparent) and 255 (fully opaque).

z_index

The z-order to draw the object. Objects with larger z-orders will be drawn on top of the ones with smaller z-orders.

color

Color to apply a filter to the image.

disabled_color

Color to apply a filter to the image when the field is disabled.



943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
# File 'lib/minigl/forms.rb', line 943

def draw(alpha = 0xff, z_index = 0, color = 0xffffff, disabled_color = 0x808080)
  return unless @visible

  color = (alpha << 24) | ((@enabled or @disabled_img) ? color : disabled_color)
  text_color = (alpha << 24) | (@enabled ? @text_color : @disabled_text_color)
  img = ((@enabled or @disabled_img.nil?) ? @img : @disabled_img)
  img.draw @x, @y, z_index, @scale_x, @scale_y, color
  @font.draw_text @text, @text_x, @text_y, z_index, @scale_x, @scale_y, text_color

  if @anchor1 and @anchor2
    selection_color = ((alpha / 2) << 24) | @selection_color
    G.window.draw_quad @nodes[@anchor1], @text_y, selection_color,
                       @nodes[@anchor2] + 1, @text_y, selection_color,
                       @nodes[@anchor2] + 1, @text_y + @font.height * @scale_y, selection_color,
                       @nodes[@anchor1], @text_y + @font.height * @scale_y, selection_color, z_index
  end

  if @cursor_visible
    if @cursor_img
      @cursor_img.draw @nodes[@cur_node] - (@cursor_img.width * @scale_x) / 2, @text_y, z_index, @scale_x, @scale_y
    else
      cursor_color = alpha << 24
      G.window.draw_quad @nodes[@cur_node], @text_y, cursor_color,
                         @nodes[@cur_node] + 1, @text_y, cursor_color,
                         @nodes[@cur_node] + 1, @text_y + @font.height * @scale_y, cursor_color,
                         @nodes[@cur_node], @text_y + @font.height * @scale_y, cursor_color, z_index
    end
  end
end