Method: View.prompt

Defined in:
lib/xiki/view.rb

.prompt(message = "Type something here", options = {}) ⇒ Object

Makes message glow at end of line, and adds “/”, like

foo/Type something here View.prompt @ View.prompt/



1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
# File 'lib/xiki/view.rb', line 1341

def self.prompt message="Type something here", options={}
  ControlLock.disable

  if ! Line.blank?
    Move.to_end
    View << "/" unless Line =~ /\/$/
  end

  self.insert(message, :dont_move=>1)

  left, right = self.cursor, Line.right
  Effects.glow({:what=>[left, right], :reverse=>1}.merge(options))
  self.delete left, right


  return unless options[:timed]

  View.<< message, :dont_move=>1

  $el.elvar.inhibit_quit = true

  # Wait for first, then loop until pause
  c = $el.read_char("")
  key = Keys.to_letter c
  View.delete View.cursor, Line.right   # Delete temporary message
  View << key

  while(c = $el.read_char("", nil, 0.35))
    key = Keys.to_letter c
    if c == 7   # C-g?
      Cursor.restore :before_input
      $el.elvar.inhibit_quit = nil
      $el.keyboard_quit
    end
    View << key
  end
  $el.elvar.inhibit_quit = nil
end