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.



965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
# File 'lib/minigl/forms.rb', line 965

def draw(alpha = 0xff, z_index = 0, color = 0xffffff, disabled_color = 0x808080)
  @z_index = z_index
  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