Skip to content

Commit

Permalink
Create password_entry.rb
Browse files Browse the repository at this point in the history
First release for standalone password_entry.rb
  • Loading branch information
rubyFeedback authored Jan 19, 2025
1 parent b790e15 commit ae5d182
Showing 1 changed file with 68 additions and 0 deletions.
68 changes: 68 additions & 0 deletions examples2/password_entry.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# ============================================================================ #
# This example (password_entry.rb) shall demonstrate the following functionality
# (6 components), as well as their implementation-status in regards to
# this file:
#
# :new_entry # [DONE]
# :entry_on_changed # [DONE]
# :entry_read_only # [DONE]
# :entry_set_read_only # [DONE]
# :entry_set_text # [DONE]
# :entry_text # [DONE]
#
# Note that password-entry is a subclass of uiEntry.
# ============================================================================ #
require 'libui'
LibUI.init # Initialize LibUI.

main_window = LibUI.new_window('password_entry.rb', 800, 440, 1)

hbox = LibUI.new_horizontal_box
LibUI.box_set_padded(hbox, 1)

_ = LibUI.new_password_entry # Create a new password-entry here.
LibUI.box_append(hbox, _, 1) # Add the password-entry here.
@old_entry_text = 'foobar' # Use a very short password here.
LibUI.entry_set_text(_, @old_entry_text)

puts 'The password-entry will be set to read-onlyn ext, via '\
'LibUI.entry_set_read_only().'

LibUI.entry_set_read_only(_, 1) # We have to use 1 rather than true here, unfortunately.
puts
puts "Is this entry read-only? #{LibUI.entry_read_only(_)}"\
" # note that a 1 here means yes/true"
puts
puts 'The text for the current entry in use is as follows:'
puts
puts " → #{LibUI.entry_text(_)}"
puts
puts 'Making the entry no longer read-only next:'
puts
LibUI.entry_set_read_only(_, 0) # We have to use 1 rather than true here, unfortunately.

callback_proc = proc { |pointer|
new_text = LibUI.entry_text(pointer).to_s
puts
puts "The old entry-text was: '#{@old_entry_text}'"
puts "The new entry-text is: '#{new_text}'"
@old_entry_text = new_text
puts
puts 'Note that this callback can be modified to'
puts 'allow for the search functionality'
puts
puts 'Interestingly the output shows the real password,'
puts 'so be careful with this.'
}
LibUI.entry_on_changed(_, callback_proc)

LibUI.window_set_child(main_window, hbox)
LibUI.control_show(main_window)

LibUI.window_on_closing(main_window) {
LibUI.quit
1
}

LibUI.main
LibUI.uninit

0 comments on commit ae5d182

Please sign in to comment.